Bug#432585: mdadm: FTR report on raid level synonyms and initramfs hooks
Andrew Sackville-West
andrew at farwestbilliards.com
Tue Jul 10 18:53:12 UTC 2007
Package: mdadm
Version: 2.5.6-9
Severity: normal
this problem is documented in:
http://lists.debian.org/debian-user/2007/03/msg05310.html
http://lists.debian.org/debian-user/2007/04/msg00923.html
http://lists.debian.org/debian-user/2007/05/msg01661.html
http://lists.debian.org/debian-user/2007/07/msg00856.html
with discussion and possible resolution. The problem boils down to a conflict between the manpage descriptions of
usage of 'level=' parameters and how they are handled by initramfs hooks. The man pages imply that using various
synonyms (eg. level=1 instead of level=raid1) are acceptable, but the initramfs hooks do not properly handle the
synonyms resulting in arrays not starting during a boot.
There are two sources for determining the MD modules to insert during boot. The first /scripts/local-top/mdadm sets
all possible values for MD_MODULES. This is then modified by source /conf/md.conf which includes a new assignment for
MD_MODULES based on information gathered from mdadm.conf using /usr/share/initramfs/hooks/mdadm at the time the
initrd is built. This hook script does not properly handle all the possible scenarious for level= values in
mdadm.conf resulting in erroneous information in /conf/md.conf and MD_MODULES being assigned a garbage value.
Ultimately this leads to failed modprobes during the boot and arrays are not properly started.
I see two possible resolutions:
1) remove ambiguity in the mdadm and mdadm.conf man pages (less than ideal as the md utilities obviously handle the
various synonyms and we'd end up with man pages that do not fully document the available options)
or
2) fix up the initramfs/hooks/mdadm script to handle all the synonyms. (preferred in my opinion, as the other md
utilities still properly handle the various synonyms)
thanks
A
ps: information below shows running kernel 2.6.18-3-xen-686 but this
problem is known to exist in 2.6.18-4 as well. I honestly can't remember
why I'm running 2.6.18-3, but i'm quite sure its unrelated to this
problem (except that maybe I only fixed the one initrd, can't recall)
Shell: /bin/sh linked to /bin/bash
-- Package-specific info:
--- mount output
/dev/md1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
procbususb on /proc/bus/usb type usbfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/md0 on /boot type ext3 (rw)
/dev/mapper/mommadisk-music on /home/andrew/music type ext3 (rw)
/dev/mapper/mommadisk-video on /home/andrew/video type ext3 (rw)
/dev/mapper/mommadisk-photos on /home/andrew/photos type ext3 (rw)
/dev/mapper/mommadisk-backup on /home/backup/backup type ext3 (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
--- mdadm.conf
DEVICE /dev/hd[aceg][1256] /dev/md11 /dev/md12
MAILADDR root
ARRAY /dev/md1 level=raid5 num-devices=4 UUID=b7213aca:e6636191:f83021d0:4dfb9941 devices=/dev/hd[aceg]5
ARRAY /dev/md0 level=raid1 num-devices=4 UUID=8c7aacfb:edb6f0ee:fe6d33d7:40b96f38 devices=/dev/hd[aceg]1
ARRAY /dev/md11 level=raid1 num-devices=2 UUID=abc053e7:32092950:8b13dc7d:db065753 devices=/dev/hd[ac]2
ARRAY /dev/md12 level=raid1 num-devices=2 UUID=d0a76b21:c02f7ee7:5eb963fc:fa01d8ad devices=/dev/hd[eg]2
ARRAY /dev/md10 level=raid0 num-devices=2 UUID=3cd26907:67ab0336:62bebf19:fd833d2b devices=/dev/md1[12]
ARRAY /dev/md2 level=raid5 num-devices=4 UUID=2f322698:75bf8431:69ddde7a:1129b942 devices=/dev/hd[aceg]6
--- /proc/mdstat:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4]
md2 : active raid5 hdg6[0] hde6[3] hdc6[2] hda6[1]
452719296 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
md10 : active raid0 md11[0] md12[1]
497664 blocks 64k chunks
md12 : active raid1 hda2[0] hdc2[1]
248896 blocks [2/2] [UU]
md11 : active raid1 hde2[0] hdg2[1]
248896 blocks [2/2] [UU]
md0 : active raid1 hda1[0] hde1[3] hdg1[2] hdc1[1]
248896 blocks [4/4] [UUUU]
md1 : active raid5 hde5[0] hdc5[3] hda5[2] hdg5[1]
14650944 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
unused devices: <none>
--- /proc/partitions:
major minor #blocks name
3 0 156290904 hda
3 1 249007 hda1
3 2 249007 hda2
3 3 1 hda3
3 5 4883728 hda5
3 6 150906546 hda6
22 0 156290904 hdc
22 1 249007 hdc1
22 2 249007 hdc2
22 3 1 hdc3
22 5 4883728 hdc5
22 6 150906546 hdc6
33 0 156290904 hde
33 1 249007 hde1
33 2 249007 hde2
33 3 1 hde3
33 5 4883728 hde5
33 6 150906546 hde6
34 0 156290904 hdg
34 1 249007 hdg1
34 2 249007 hdg2
34 3 1 hdg3
34 5 4883728 hdg5
34 6 150906546 hdg6
9 1 14650944 md1
9 0 248896 md0
9 11 248896 md11
9 12 248896 md12
9 10 497664 md10
9 2 452719296 md2
253 0 20971520 dm-0
253 1 209715200 dm-1
253 2 9437184 dm-2
253 3 3145728 dm-3
253 4 53477376 dm-4
253 5 4194304 dm-5
253 6 131072 dm-6
253 7 4194304 dm-7
253 8 131072 dm-8
253 9 4194304 dm-9
253 10 131072 dm-10
253 11 4194304 dm-11
253 12 131072 dm-12
--- initrd.img-2.6.18-3-xen-686:
14823 blocks
sbin/mdadm
scripts/local-top/mdadm
lib/modules/2.6.18-3-xen-686/kernel/drivers/md/dm-snapshot.ko
lib/modules/2.6.18-3-xen-686/kernel/drivers/md/raid0.ko
lib/modules/2.6.18-3-xen-686/kernel/drivers/md/md-mod.ko
lib/modules/2.6.18-3-xen-686/kernel/drivers/md/dm-mirror.ko
lib/modules/2.6.18-3-xen-686/kernel/drivers/md/multipath.ko
lib/modules/2.6.18-3-xen-686/kernel/drivers/md/raid456.ko
lib/modules/2.6.18-3-xen-686/kernel/drivers/md/linear.ko
lib/modules/2.6.18-3-xen-686/kernel/drivers/md/dm-mod.ko
lib/modules/2.6.18-3-xen-686/kernel/drivers/md/raid1.ko
lib/modules/2.6.18-3-xen-686/kernel/drivers/md/xor.ko
lib/modules/2.6.18-3-xen-686/kernel/drivers/md/raid10.ko
etc/mdadm
etc/mdadm/mdadm.conf
--- /proc/modules:
dm_mirror 19280 0 - Live 0xde121000
dm_snapshot 15520 0 - Live 0xde12c000
dm_mod 50232 27 dm_mirror,dm_snapshot, Live 0xde15a000
raid456 115728 2 - Live 0xde169000
xor 14376 1 raid456, Live 0xde127000
raid1 21120 3 - Live 0xde0f9000
raid0 7744 1 - Live 0xde0da000
multipath 8288 0 - Live 0xde0f5000
linear 5760 0 - Live 0xde0dd000
md_mod 70548 11 raid456,raid1,raid0,multipath,linear, Live 0xde137000
--- volume detail:
--- /proc/cmdline
root=/dev/md1 ro console=tty0 pciback.hide=(0000:02:08.0)
--- grub:
module /vmlinuz-2.6.18-4-xen-686 root=/dev/md1 ro console=tty0 pciback.hide=(0000:02:08.0)
module /vmlinuz-2.6.18-4-xen-686 root=/dev/md1 ro console=tty0 pciback.hide=(0000:02:08.0)
module /vmlinuz-2.6.18-3-xen-686 root=/dev/md1 ro console=tty0 pciback.hide=(0000:02:08.0)
module /vmlinuz-2.6.18-3-xen-686 root=/dev/md1 ro console=tty0 pciback.hide=(0000:02:08.0)
kernel /vmlinuz-2.6.18-3-686 root=/dev/md1 ro
kernel /vmlinuz-2.6.18-3-686 root=/dev/md1 ro single
kernel /vmlinuz-2.6.17-2-686 root=/dev/md1 ro
kernel /vmlinuz-2.6.17-2-686 root=/dev/md1 ro single
kernel /vmlinuz-2.6.18-3-686 root=/dev/md1 ro
kernel /vmlinuz-2.6.18-3-686 root=/dev/md1 ro
-- System Information:
Debian Release: 4.0
APT prefers testing
APT policy: (500, 'testing'), (500, 'stable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-3-xen-686
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)
Versions of packages mdadm depends on:
ii debconf [debconf-2.0] 1.5.11 Debian configuration management sy
ii libc6 2.3.6.ds1-13 GNU C Library: Shared libraries
ii lsb-base 3.1-23.1 Linux Standard Base 3.1 init scrip
ii makedev 2.3.1-83 creates device files in /dev
Versions of packages mdadm recommends:
ii exim4-daemon-heavy [mail-tran 4.63-17 exim MTA (v4) daemon with extended
ii module-init-tools 3.3-pre4-2 tools for managing Linux kernel mo
-- debconf information:
mdadm/autostart: true
* mdadm/mail_to: root
mdadm/initrdstart_msg_errmd:
* mdadm/initrdstart: all
mdadm/initrdstart_msg_errconf:
mdadm/initrdstart_notinconf: false
mdadm/initrdstart_msg_errexist:
mdadm/initrdstart_msg_intro:
* mdadm/autocheck: true
mdadm/initrdstart_msg_errblock:
* mdadm/start_daemon: true
More information about the pkg-mdadm-devel
mailing list