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