Re: [PATCH] Wait for mdraid arrays to become clean before reboot / halt

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

 



On Wed, 2009-09-30 at 20:14 +0200, Hans de Goede wrote:
> Hi,
> 
> On 09/30/2009 08:00 PM, David Lehman wrote:
> > On Wed, 2009-09-30 at 16:52 +0200, Hans de Goede wrote:
> >> With the new external metadata mdraid support we need to wait for raid
> >> sets to become clean (iow for mdmon to have finished updating the metadata)
> >> before rebooting. Otherwise we get a full array sync on the first boot after
> >> installation.

Along with your other patch to touch /dev/.in_sysinit to prevent mdadm's
udev rules from trying to assemble things, this should be okay. I guess.

Dave

> >> ---
> >>   loader/shutdown.c |    5 +++++
> >>   scripts/mk-images |    4 ++++
> >>   2 files changed, 9 insertions(+), 0 deletions(-)
> >
> > So this moves mdadm into the initrd? This will have repercussions, like
> > the mdadm udev rules will suddenly be able to find mdadm and do whatever
> > they're supposed to do. I doubt we we want that.
> >
> 
> Good point,
> 
> Well:
> /lib/udev/rules.d/64-md-raid.rules
> 
> Is harmless, it only does an import of information into the udev db, this
> has some duplication with what 70-anaconda.rules does, but nothing harmfull
> 
> /lib/udev/rules.d/65-md-incremental.rules
> 
> OTOH, will cause incremental assembly of mdraid arrays, note though, that
> we could stop it from doing that by touching /dev/.in_sysinit, something
> which we may want to do anyways, otherwise the first udev trigger we do
> will cause the same issue on installs from live-cd's
> 
> Note that for non live cd's a better solution might be to simply not
> put /lib/udev/rules.d/65-md-incremental.rules in the image at all
> (and I don't believe we need /lib/udev/rules.d/64-md-raid.rules either).
> 
> Regards,
> 
> Hans
> 
> 
> 
> 
> 
> > Dave
> >>
> >> diff --git a/loader/shutdown.c b/loader/shutdown.c
> >> index 6ae4048..6a32e79 100644
> >> --- a/loader/shutdown.c
> >> +++ b/loader/shutdown.c
> >> @@ -58,6 +58,8 @@ static void performTerminations(int doKill) {
> >>   }
> >>
> >>   static void performUnmounts(int doKill) {
> >> +	int ignore;
> >> +
> >>   	if (testing || !doKill)
> >>   		return;
> >>
> >> @@ -66,6 +68,9 @@ static void performUnmounts(int doKill) {
> >>
> >>   	printf("unmounting filesystems...\n");
> >>   	unmountFilesystems();
> >> +
> >> +	printf("waiting for mdraid sets to become clean...\n");
> >> +	ignore = system("/sbin/mdadm --wait-clean --scan");
> >>   }
> >>
> >>   static void performReboot(reboot_action rebootAction) {
> >> diff --git a/scripts/mk-images b/scripts/mk-images
> >> index 00854d3..cfe62d3 100755
> >> --- a/scripts/mk-images
> >> +++ b/scripts/mk-images
> >> @@ -759,6 +759,10 @@ makeinitrd() {
> >>         cp -a org.freedesktop.nm_dispatcher.service $MBD_DIR/usr/share/dbus-1/system-services
> >>       )
> >>
> >> +    # mdadm
> >> +    instbin $IMGPATH /usr/sbin/mdadm $MBD_DIR /sbin/mdadm
> >> +    instbin $IMGPATH /usr/sbin/mdmon $MBD_DIR /sbin/mdmon
> >> +
> >>       # Misc
> >>       instbin $IMGPATH /usr/sbin/dmidecode $MBD_DIR /sbin/dmidecode
> >>       instbin $IMGPATH /usr/bin/egrep $MBD_DIR /sbin/egrep
> >
> > _______________________________________________
> > Anaconda-devel-list mailing list
> > Anaconda-devel-list@xxxxxxxxxx
> > https://www.redhat.com/mailman/listinfo/anaconda-devel-list
> 
> _______________________________________________
> Anaconda-devel-list mailing list
> Anaconda-devel-list@xxxxxxxxxx
> https://www.redhat.com/mailman/listinfo/anaconda-devel-list

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list

[Index of Archives]     [Kickstart]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]
  Powered by Linux