The reader is assumed to be familiar with the various types of raid
implementations, their advantages and drawbacks. This is not a tutorial,
just a set of instructions on how to implement root mounted raid on a linux
of the information necessary to become familiar with linux raid is listed
here directly or by reference, please read it before send e-mail questions.
As of this writing, the problem of stopping a root mounted RAID device has
not yet been solved in a satisfactory way. A work-around proposed by Ed
Welbon and implemented by Bohumil Chalupa is incorporated into this document
which eliminates the need for a long ckraid at each boot for raid1 and raid5
devices. Without the workaround, it is necessary to ckraid the md device
each time the system is re-booted. On a large array this can cause a severe
availability performance degradation. On my 6 gig RAID1 device running on a
Pentium 166 with 128 megs of ram, it takes well over half an hour to ckraid
after each re-boot. It takes over an hour on my 13 gig RAID5 array with a
20mb/sec scsi adaptor.
The workaround stores the status of the array at
shutdown on the real boot device and compares it to a reference status
placed there when the system is first built. If the status's match at
reboot, the superblock on the array is rebuilt on the next boot, otherwise
the operator is notified of the status error and the rescue system is left
running with all the raid tools available.
Rebuilding the superblock causes
the system to ignore that the array was powered down without mdstop by
marking all the drives as OK, as if nothing happened. This only works if
all the drives are OK at shutdown. If the array was operating with a bad
drive, the operator must remove the bad drive prior to restarting the md
device or the data can be corrupted.
None of this applies to raid0 which
does not have to be mdstopped before shutdown.
Final proposed solutions to this problem include a finalrd similar to
initrd, and mdrootstop which writes the clean flags to the array
during shutdown when it is mounted read only. I am sure there are others.
In the mean time, the problem has been by-passed for now
Please let me know when this problem is solved more cleanly!!!
The writings and e-mail from the following individuals helped to make this
document possible. Many of the ideas were stolen from the helpful work of
others, I have just tried to put it all in COOKBOOK form so that it is
straightforward to use. My thanks to:
Linas Vepstas for the RAID howto that explained most of this to me.
Gadi Oxman for answering my dumb 'newbie' questions.
Ed Welbon for the execellent initrd.md package that inspired me to write this.
Bohumil Chalupa for implementing the
re-boot 'workaround' that allowsroot-mounted-raid to
work in a production environment.
Keith W. for
his explaination of setting up root raid with RedHat.
and many others who contributed to this work in one way or another.
Permission to use, copy, distribute this document for any
purpose is hereby granted, provided that the author's / editor's
name and this notice appear in all copies and/or supporting
documents; and that an unmodified version of this document is
made freely available. This document is distributed in the hope
that it will be useful, but WITHOUT ANY WARRANTY, either
expressed or implied. While every effort has been taken to
ensure the accuracy of the information documented herein, the
author / editor / maintainer assumes NO RESPONSIBILITY for any
errors, or for any damages, direct or consequential, as a result
of the use of the information documented herein.