[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [PATCH] Changes for using md on top isw format for F12

Hans de Goede wrote:
Can you please make a list with what else needs to be done
besides these anaconda patches to get the iswmd support
in a testable condition.

Here are the pieces that remain unresolved upstream based on the experience of setting up my Fedora MythTV box to boot off of Intel(R) Matrix raid1:

1/ initramfs: I am currently cheating by using "mdadm -As" to assemble the array in the initramfs environment, and ignoring whether raid is enabled in the bios. For dracut, assuming dracut is the initramfs solution in F12, this needs to be an automatic assembly as disks are discovered. The trick will be detecting when it is safe to permit degraded assembly without adding unnecessary stalls to the non-raid boot path. I have done some initial investigations in this area, but got sidetracked.

After the rootfs is mounted, but before calling init, I specify a command like the following to restart mdmon in the new namespace "mdmon /proc/mdstat /sysroot" Where the /proc/mdstat parameter tells mdmon to monitor all active container devices and the /sysroot parameter tells mdmon to terminiate any other instances in the current namespace and chroot to /sysroot.

Mdmon mildly complains at this point that it cannot write its pid file or control socket to /var/run/mdadm. However, it polls /proc/mounts waiting for the remount-rootfs-rw event. Once it sees that occur it will drop a control socket and pid file. Sending SIGHUP has the same effect.

2/ sysvinit-tools: I am using a modified killall5 binary that borrows from the Debian version. This version allows some pids to be omitted from the killall. This is needed to maintain mdmon across the remount-rootfs-ro event. We need mdmon alive across this event to handle the final dirty-to-clean transition of the array.

3/ initscripts: With the modified killall5 in hand the halt script is modified to pick up mdmon pids from /var/run/mdadm and specify them to be omitted. Once all process are stopped and the rootfs is read-only the script calls "mdadm --wait-clean --scan" to trigger and wait for all external metadata arrrays to be marked clean. For native md arrays --wait-clean returns immediately as the kernel handles this final metadata update.

A few more details on these new parameters (--detail-platform, --wait-clean, mdmon, etc) can be found in the mdadm and mdmon man pages for mdadm-3.0. It goes without saying that any helpful feedback on those man pages is more than welcome.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]