慢逻辑卷检测

我最近遇到了一些与testing服务器有关的问题。 它是几天前安装的,一直工作到昨天,重启后没有唤醒。 Bootloader没有find根设备。 错误:

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

我在恢复shell,装入设备,chroot进入系统启动,一切正常,所以我只是增加了rootdelay到90s,并重新启动。 所以它工作了一天。 但现在我得到同样的错误,其次是:

 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分钟,然后写入退出INT intramfsshell,启动继续照常和计算机变得function齐全。

在消息中,有几十行:

 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卷组。 两个磁盘都通过了简短的智能testing。 内存也传递了一个memtest86 +通行证。 并在2天前testing了24小时。

Debian bug #583917看起来有点类似,但是Ubuntu有mdadm的老版本。

另一件我怀疑是lvm。 当我在intramfs shell中执行cat / proc / modules时,有十几个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 ### 

感谢您的答案!

问候,Andraz

我遇到了这个最近从Ubuntu Januty升级到Ubuntu Karmic的机器。 我也有两个卷组,其中一个卷组有大约20个逻辑卷,另一个卷组有一个根和一些快照。

我的问题是增加一个LVM快照,在LVM子系统的初始化时间超过内核等待根文件系统可用的时间。

解决的办法是在/boot/grub/menu.lst的内核行添加一个“rootdelay = 180”参数(这个function是我仍然在使用grub的原因之一)。

这确实有延长启动时间的效果,但在长时间运行的服务器上,我不觉得这是一个重大的问题。

你的磁盘智能能力? 如果是的话,你可以看看吗? 这对我来说似乎是一个磁盘失败。 (或者也许RAM失败)

我相信当涉及到快照时,LVM必须做某种GC。 当你在vg_virt上移除testingLV时,是否还有许多快照?

好吧,我想我解决了它。

我有两个卷组,主机系统为vg_mru,虚拟系统为vg_virt。 我最近testing了一些LVM快照function,包括尝试覆盖其容量的快照。 我还没有确切的原因,但删除vg_virt上的所有testing逻辑卷解决了它。