[linux-lvm] Strange LVM2 on RAID Behaviour
Lucas Barbuto
lucas at stabat.com
Tue Dec 14 03:22:19 UTC 2004
Hi All,
I'm having a weird problem with LVM2 on top of Linux software RAID-1.
I've installed Debian Sarge recently, using the new Debian Installer and
I've configured it with LVM2 on top of RAID-1.
I'm running the 2.6.8-1 kernel from the Sarge installer with their
initrd. I've got two 80GB SATA hard drives, partitioned as in [1].
I've got /boot on it's own RAID-1 device (md0 = sda1 + sdb1), becuase
GRUB didn't support kernel on an LV (and still doesn't without patches
AFAIK). Then I've got md1 (= sda2 + sdb2) and md2 (= sda3 + sdb3)
combined to for a volume group, vg0. Then I've got md3 (= sda4 + sdb4)
which is used by vg1. I've created all my logical volumes including
root and swap in vg0. In vg1 I've got a single LV using up the entire VG.
So here's the problem: When I boot my system, everything works great,
except that md3 comes up degraded, missing sda4. dmesg contains the
following:
> devfs_mk_dir: invalid argument.<4>devfs_mk_dev: could not append to parent for /disc
repeated 112 times right at the top (I don't think this has anything to
do with it, but I don't know), and:
> md: md3 stopped.
> md: bind<sdb4>
> md: could not lock unknown-block(8,4).
> md: md_import_device returned -16
> raid1: raid set md3 active with 1 out of 2 mirrors
> md: md0 stopped.
> md: bind<sdb1>
> md: bind<sda1>
> raid1: raid set md0 active with 2 out of 2 mirrors
It doesn't mention md1 and md2. When I try to hot-add sda4 into md3 I
get more "could not lock" errors:
> lbarbuto at saturn:~$ sudo mdadm /dev/md3 -a /dev/sda4
> md: trying to hot-add unknown-block(8,4) to md3 ...
> md: could not lock unknown-block(8,4).
> md: md_import_device returned -16
If I remove the LV from vg1, I can now hot-add the RAID member device
back in and it happily starts syncing.
So, I'm obviously not an expert on this stuff, but I assume that LVM is
scanning devices on boot and taking over sda4 before the RAID starts.
So I tried adding a filter to /etc/lvm/lvm.conf:
> filter = [ "a|^/dev/md|", "r|.*|" ]
To ignore all but md devices --- this makes no difference. So now I am
stuck and I don't know what else to try. Can someone give me some
advice? This is the third list I've tried posting on, sorry if you've
read this before.
[1] partitions
> lbarbuto at saturn:~$ cat /proc/partitions
> major minor #blocks name
>
> 8 0 117220824 sda
> 8 1 32098 sda1
> 8 2 39062047 sda2
> 8 3 39062047 sda3
> 8 4 39062047 sda4
> 8 16 117220824 sdb
> 8 17 32098 sdb1
> 8 18 39062047 sdb2
> 8 19 39062047 sdb3
> 8 20 39062047 sdb4
> 9 1 39061952 md1
> 9 2 39061952 md2
> 9 0 32000 md0
> 9 3 39061952 md3
> 253 1 4194304 dm-1
> 253 2 4194304 dm-2
> 253 3 1048576 dm-3
> 253 4 4194304 dm-4
> 253 5 2097152 dm-5
> 253 6 4194304 dm-6
> 253 7 16777216 dm-7
> 253 8 16777216 dm-8
> 253 9 24641536 dm-9
Thanks,
--
Lucas
More information about the linux-lvm
mailing list