Назад | Перейти на главную страницу

Обнаружение медленного логического тома

В последнее время у меня возникают проблемы с тестовым сервером. Он был установлен несколько дней назад и работал нормально до вчерашнего дня, пока не просыпался после перезагрузки. Загрузчик не нашел корневое устройство. Ошибка:

Gave up waiting for root device.
ALERT! /dev/mapper/vg_mru-lv_mru_root does not exists. dropping to shell!

Я загрузился в оболочке восстановления, смонтировал устройства, подключился к системе, и все прошло нормально, поэтому я просто увеличил время rootdelay до 90 и перезагрузился. Так что это сработало в другой день. Но теперь я получаю ту же ошибку, за которой следует:

udevd[112]: worker [119] unexpectedly returned with status 0x0100
udevd[112]: worker[119] failed while handling '/devices/virtual/block/md0'
udevd[112]: worker [120] unexpectedly returned with status 0x0100
udevd[112]: worker[120] failed while handling '/devices/virtual/block/md1'

Если я подожду около 5 минут, а затем напишу exit int intramfs shell, загрузка продолжится как обычно, и компьютер станет полностью работоспособным.

В сообщениях таких строк несколько десятков:

Sep 30 21:58:48 mru-server kernel: [ 1038.291536] lost page write due to I/O error on dm-15

и

Sep 29 10:02:16 mru-server kernel: [    0.845246] ACPI Warning: Incorrect checksum in table [OEMB] - A4, should be 9F (20090903/tbutils-314)

Компьютер под управлением ubuntu 10.04, 2 диска 1TD, зеркально отображаемых в raid1, два устройства raid md0 и md1, каждое из которых содержит одну группу томов LVM. Оба диска прошли короткое с.м.р. тест. Память также прошла один проход memtest86 +. И это было проверено 24 часа 2 дня назад.

Ошибка Debian # 583917 выглядит как-то похоже, но в Ubuntu установлена ​​более старая версия mdadm.

Еще я подозреваю, что lvm. Когда я использую cat / proc / modules в оболочке intramfs, появляется дюжина модулей raid, но нет модуля lvm.

При необходимости я могу предоставить вам дополнительные данные.

grub.cfg

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
  set saved_entry=${prev_saved_entry}
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z ${boot_once} ]; then
    saved_entry=${chosen}
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi
}
insmod raid
insmod mdraid
insmod lvm
insmod ext2
set root='(vg_mru-lv_mru_usr)'
search --no-floppy --fs-uuid --set 48111d09-5c3d-48e4-be9d-0ab141c8cb4a
if loadfont /share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  insmod gfxterm
  insmod vbe
  if terminal_output gfxterm ; then true ; else
    # For backward compatibility with versions of terminal.mod that don't
    # understand terminal_output
    terminal gfxterm
  fi
fi
insmod raid
insmod mdraid
insmod lvm
insmod ext2
set root='(vg_mru-lv_mru_boot)'
search --no-floppy --fs-uuid --set 4523fbba-a68d-413a-9606-c68094438879
set locale_dir=($root)/grub/locale
set lang=en
insmod gettext
if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, with Linux 2.6.32-25-server' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod raid
    insmod mdraid
    insmod lvm
    insmod ext2
    set root='(vg_mru-lv_mru_boot)'
    search --no-floppy --fs-uuid --set 4523fbba-a68d-413a-9606-c68094438879
    linux   /vmlinuz-2.6.32-25-server root=/dev/mapper/vg_mru-lv_mru_root ro   rootdelay=90
    initrd  /initrd.img-2.6.32-25-server
}
menuentry 'Ubuntu, with Linux 2.6.32-25-server (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod raid
    insmod mdraid
    insmod lvm
    insmod ext2
    set root='(vg_mru-lv_mru_boot)'
    search --no-floppy --fs-uuid --set 4523fbba-a68d-413a-9606-c68094438879
    echo    'Loading Linux 2.6.32-25-server ...'
    linux   /vmlinuz-2.6.32-25-server root=/dev/mapper/vg_mru-lv_mru_root ro single 
    echo    'Loading initial ramdisk ...'
    initrd  /initrd.img-2.6.32-25-server
}
menuentry 'Ubuntu, with Linux 2.6.32-24-server' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod raid
    insmod mdraid
    insmod lvm
    insmod ext2
    set root='(vg_mru-lv_mru_boot)'
    search --no-floppy --fs-uuid --set 4523fbba-a68d-413a-9606-c68094438879
    linux   /vmlinuz-2.6.32-24-server root=/dev/mapper/vg_mru-lv_mru_root ro   rootdelay=90
    initrd  /initrd.img-2.6.32-24-server
}
menuentry 'Ubuntu, with Linux 2.6.32-24-server (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod raid
    insmod mdraid
    insmod lvm
    insmod ext2
    set root='(vg_mru-lv_mru_boot)'
    search --no-floppy --fs-uuid --set 4523fbba-a68d-413a-9606-c68094438879
    echo    'Loading Linux 2.6.32-24-server ...'
    linux   /vmlinuz-2.6.32-24-server root=/dev/mapper/vg_mru-lv_mru_root ro single 
    echo    'Loading initial ramdisk ...'
    initrd  /initrd.img-2.6.32-24-server
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
    insmod raid
    insmod mdraid
    insmod lvm
    insmod ext2
    set root='(vg_mru-lv_mru_boot)'
    search --no-floppy --fs-uuid --set 4523fbba-a68d-413a-9606-c68094438879
    linux16 /memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    insmod raid
    insmod mdraid
    insmod lvm
    insmod ext2
    set root='(vg_mru-lv_mru_boot)'
    search --no-floppy --fs-uuid --set 4523fbba-a68d-413a-9606-c68094438879
    linux16 /memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

Спасибо за ответы!

С уважением, Андраз

Я столкнулся с этим недавно при обновлении машины с Ubuntu Januty до Ubuntu Karmic. У меня тоже было 2 группы томов, одна из которых содержала около 20 логических томов, а вторая - с root и некоторыми снимками.

Моя проблема заключалась в добавлении еще одного снимка LVM, что привело к тому, что время инициализации подсистемы LVM прошло больше времени, чем ядро ​​будет ждать, пока станет доступна корневая файловая система.

Решением было добавить параметр «rootdelay = 180» в строку ядра в /boot/grub/menu.lst (эта возможность - одна из причин, по которой я все еще использую устаревшие версии grub).

Это действительно увеличивает время загрузки, но на долго работающем сервере я не считаю это серьезной проблемой.

Хорошо, думаю, я решил это.

У меня есть две группы томов: vg_mru для хост-системы и vg_virt для виртуальных систем. Недавно я тестировал некоторые функции снимков LVM, в том числе пытался перезаписать снимки сверх их емкости. У меня пока нет точной причины, но удаление всех тестовых логических томов на vg_virt решило ее.

Я считаю, что LVM должен делать какой-то сборщик мусора, когда задействованы снимки. Когда вы удалили тестовый LV на vg_virt, осталось много снимков?

Поддерживает ли ваш диск S.M.A.R.T? Если да, не могли бы вы его посмотреть? Мне это кажется отказом диска. (Или, может быть, сбой ОЗУ)