The solution is a reliable UUID-based raid assembly mechanism.

One that does not depend on ARRAY definitions in mdadm.conf. At the same
time making sure never to create devices named equal to the legacy
'standard' non-uniqe and non-persistent naming scheme /dev/md0 etc.
causing much havoc.

Without direct support for this in mdadm I finaly think I figured a way
with current mdadm features to realize this:

A) Hotplug Action
/lib/udev/rules.d/85-mdadm.rules needs to take care of mdadm.conf when a new 
raid member appears, and do tree things:

1) grep --invert-match ARRAY mdadm.conf > 
/var/run/mdadm/mdadm-udev-event-<eventID>.conf
(prior existence of /var/run/mdadm/ is required by mdadm --incremental anyway, 
see Bug #550131) 

2) echo "ARRAY uuid=${<uuid-variable-from-udev>} name=${<uuid-variable-
from-udev>}-md # ARRAY lines are dynamicaly rewritten on udev events" >>
/var/run/mdadm/mdadm-udev-event-<eventID>.conf

3) mdadm --incremental --config=/var/run/mdadm/mdadm-udev-
event-<eventID>.conf $env{DEVNAME}


B) Degrading Action
For arrays required during the boot process a watchdog like script or program 
like mountall needs to --run arrays degraded if they haven't come up after a 
timeout. (See https://wiki.ubuntu.com/ReliableRaid for more details.) But as 
mdadm --run /dev/<md-device> is not supported to start *only a specific* array 
degraded (i.e. to start only the rootfs degraded after a timeout in initramfs 
#251646) use this:

mdadm --remove <incomplete-md-device> 
<arbitrary-member-device-of-incomplete-array>
mdadm --incremental --run <arbitrary-member-device-of-incomplete-array>


PS: With this, to enable partitionable arrays just change the CREATE line in 
/etc/mdadm/mdadm.conf to contain auto=part.



** Summary changed:

- Installing mdadm package breaks bootup (with old superblocks around).
+ Installing mdadm or outdated mdadm.conf breaks bootup

-- 
Installing mdadm or outdated mdadm.conf breaks bootup
https://bugs.launchpad.net/bugs/158918
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to