From b3cf4b9613f04294d56165f884e05076498715dc Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Tue, 14 Jun 2005 02:59:32 +0000 Subject: Lots of little manpage updates. Signed-off-by: Neil Brown --- ChangeLog | 1 + md.4 | 83 +++++++++++++++++++++--------- mdadm.8 | 166 ++++++++++++++++++++++++++++++++++------------------------- mdadm.conf.5 | 2 +- 4 files changed, 157 insertions(+), 95 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5359e09..88fbcba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -28,6 +28,7 @@ Changes Prior to 1.12.0 release - Replace sprintf calls with snprintf (to quiet diet-libc) - Add man page for mdassemble - Fix compilation with tinyc + - Lot of minor manpage updates Changes Prior to 1.11.0 release - Fix embarassing bug which causes --add to always fail. diff --git a/md.4 b/md.4 index 4643dd2..80d0c51 100644 --- a/md.4 +++ b/md.4 @@ -16,7 +16,7 @@ Array of Independent Devices. .B md supports RAID levels 1 (mirroring) 4 (striped array with parity device), 5 (striped array with distributed parity information) and 6 -(striped array with distributed dual redundancy information.) If a +(striped array with distributed dual redundancy information.) If some number of underlying devices fails while using one of these levels, the array will continue to function; this number is one for RAID levels 4 and 5, two for RAID level 6, and all but one (N-1) for @@ -24,12 +24,13 @@ RAID level 1. .PP .B md also supports a number of pseudo RAID (non-redundant) configurations -including RAID0 (striped array), LINEAR (catenated array) and -MULTIPATH (a set of different interfaces to the same device). +including RAID0 (striped array), LINEAR (catenated array), +MULTIPATH (a set of different interfaces to the same device), +and FAULTY (a layer over a single device that sythesises errors). .SS MD SUPER BLOCK -With the exception of Legacy Arrays described below, each device that -is incorporated into an MD array has a +Though it is possible to create an array without using per-device +superblocks (see below), each device in an MD array will normally have a .I super block written towards the end of the device. This superblock records information about the structure and state of the array so that the @@ -53,17 +54,21 @@ UUID a 128 bit Universally Unique Identifier that identifies the array that this device is part of. -.SS LEGACY ARRAYS -Early versions of the -.B md -driver only supported Linear and Raid0 configurations and so -did not use an MD superblock (as there is no state that needs to be -recorded). While it is strongly recommended that all newly created -arrays utilise a superblock to help ensure that they are assembled -properly, the -.B md -driver still supports legacy linear and raid0 md arrays that -do not have a superblock. +.SS NO-SUPERBLOCK ARRAYS + +It is possible for some md arrays to be created without a superblock. +This allows the whole of each device to participate in the array, but +requires some external mechanism to determine what devices should be +arranged into which arrays. + +FAULTY arrays are an obvious candidate for not having a superblock as +there is nothing useful to go in the superblock. MUTIPATH arrays can also be +usefully made without superblocks as there are likely to be other ways +to detect that two paths connect to the same real devices. + +Other array type can work without superblocks are RAID1, RAID0, and LINEAR. +However these should only be made without a superblock if you are sure +that you know what you are doing. .SS LINEAR @@ -73,7 +78,7 @@ drive together to form one large virtual drive. One advantage of this arrangement over the more common RAID0 arrangement is that the array may be reconfigured at a later time with an extra drive and so the array is made bigger without disturbing the -data that is on the array. However this cannot be done on a live +data that is on the array. However this cannot yet be done on a live array. @@ -160,10 +165,10 @@ in a MULTIPATH md array. However there are multiple access points (paths) to this device, and one of these paths might fail, so there are some similarities. -A MULTIPATH array is composed of a number of logical different +A MULTIPATH array is composed of a number of logically different devices, often fibre channel interfaces, that all refer the the same real device. If one of these interfaces fails (e.g. due to cable -problems), the multipath driver to attempt to redirect requests to +problems), the multipath driver will attempt to redirect requests to another interface. .SS FAULTY @@ -173,7 +178,7 @@ superblock, so the md array created provides direct access to all of the data in the component device. The FAULTY module may be requested to simulate faults to allow testing -of other md levels or of filesystem. Faults can be chosen to trigger +of other md levels or of filesystems. Faults can be chosen to trigger on read requests or write requests, and can be transient (a subsequent read/write at the address will probably succeed) or persistant (subsequent read/write of the same address will fail). Further, read @@ -181,9 +186,9 @@ faults can be "fixable" meaning that they persist until a write request at the same address. Fault types can be requested with a period. In this case the fault -will recur repeatedly after the given number of request of the -relevant time. For example if persistent read faults have a period of -100, then ever 100th read request would generate a fault, and the +will recur repeatedly after the given number of requests of the +relevant type. For example if persistent read faults have a period of +100, then every 100th read request would generate a fault, and the faulty sector would be recorded so that subsequent reads on that sector would also fail. @@ -191,7 +196,7 @@ There is a limit to the number of faulty sectors that are remembered. Faults generated after this limit is exhausted are treated as transient. -It list of faulty sectors can be flushed, and the active list of +The list of faulty sectors can be flushed, and the active list of failure modes can be cleared. .SS UNCLEAN SHUTDOWN @@ -199,7 +204,7 @@ failure modes can be cleared. When changes are made to a RAID1, RAID4, RAID5 or RAID6 array there is a possibility of inconsistency for short periods of time as each update requires are least two block to be written to different devices, and -these writes probably wont happen at exactly the same time. +these writes probably won't happen at exactly the same time. Thus if a system with one of these arrays is shutdown in the middle of a write operation (e.g. due to power failure), the array may not be consistent. @@ -215,6 +220,11 @@ the parity block has the correct data. This process, known as "resynchronising" or "resync" is performed in the background. The array can still be used, though possibly with reduced performance. +In 2.6 Linux kernels, an md array is marked clean after a short period +(around 20 milliseconds) of no write activity, and then marked dirty +before any subsequent write is attempted. This means that unclean +shutdowns are much less likely with a 2.6 kernel. + If a RAID4, RAID5 or RAID6 array is degraded (missing at least one drive) when it is restarted after an unclean shutdown, it cannot recalculate parity, and so it is possible that data might be @@ -256,14 +266,37 @@ then that partition will normally be inspected to see if it is part of an MD array, and if any full arrays are found, they are started. This kernel paramenter disables this behaviour. +.TP +.B raid=partitionable +.TP +.B raid=part +These are available in 2.6 and later kernels only. They indicate that +autodetected MD arrays should be created as partitionable arrays, with +a different major device number to the original non-partitionable md +arrays. The device number is listed as +.I mdp +in +.IR /proc/devices . + + .TP .BI md= n , dev , dev ,... +.TP +.BI md=d n , dev , dev ,... This tells the md driver to assemble .B /dev/md n from the listed devices. It is only necessary to start the device holding the root filesystem this way. Other arrays are best started once the system is booted. +In 2.6 kernels, the +.B d +immediately after the +.B = +indicates that a partitionable device (e.g. +.BR /dev/md/d0 ) +should be created rather than the original non-partitionable device. + .TP .BI md= n , l , c , i , dev... This tells the md driver to assemble a legacy RAID0 or LINEAR array diff --git a/mdadm.8 b/mdadm.8 index 72c0174..744b9b4 100644 --- a/mdadm.8 +++ b/mdadm.8 @@ -34,49 +34,51 @@ md devices, and .BR FAULTY . -.B MULTIPATH is not a Software RAID mechanism, but does involve +.B MULTIPATH +is not a Software RAID mechanism, but does involve multiple devices. For .B MULTIPATH each device is a path to one common physical storage device. -.B FAULTY is also no true RAID, and it only involves one device. It +.B FAULTY +is also not true RAID, and it only involves one device. It provides a layer over a true device that can be used to inject faults. -.B mdadm -is a program that can be used to create, manage, and monitor -MD devices. As -such it provides a similar set of functionality to the -.B raidtools -packages. -The key differences between -.B mdadm -and -.B raidtools -are: -.IP \(bu 4 -.B mdadm -is a single program and not a collection of programs. -.IP \(bu 4 -.B mdadm -can perform (almost) all of its functions without having a -configuration file and does not use one by default. Also -.B mdadm -helps with management of the configuration -file. -.IP \(bu 4 -.B mdadm -can provide information about your arrays (through Query, Detail, and Examine) -that -.B raidtools -cannot. -.P -.I mdadm -does not use -.IR /etc/raidtab , -the -.B raidtools -configuration file, at all. It has a different configuration file -with a different format and an different purpose. +'''.B mdadm +'''is a program that can be used to create, manage, and monitor +'''MD devices. As +'''such it provides a similar set of functionality to the +'''.B raidtools +'''packages. +'''The key differences between +'''.B mdadm +'''and +'''.B raidtools +'''are: +'''.IP \(bu 4 +'''.B mdadm +'''is a single program and not a collection of programs. +'''.IP \(bu 4 +'''.B mdadm +'''can perform (almost) all of its functions without having a +'''configuration file and does not use one by default. Also +'''.B mdadm +'''helps with management of the configuration +'''file. +'''.IP \(bu 4 +'''.B mdadm +'''can provide information about your arrays (through Query, Detail, and Examine) +'''that +'''.B raidtools +'''cannot. +'''.P +'''.I mdadm +'''does not use +'''.IR /etc/raidtab , +'''the +'''.B raidtools +'''configuration file, at all. It has a different configuration file +'''with a different format and an different purpose. .SH MODES mdadm has 7 major modes of operation: @@ -92,7 +94,15 @@ information so as to assemble a faulty array. .TP .B Build -Build a legacy array without per-device superblocks. +Build an array that doesn't have per-device superblocks. For these +sorts of arrays, +.I mdadm +cannot differentiate between initial creation and subsequent assembly +of an array. It also cannot perform any checks that appropriate +devices have been requested. Because of this, the +.B Build +mode should only be used together with a complete understanding of +what you are doing. .TP .B Create @@ -167,8 +177,8 @@ Change the size or shape of an active array. .TP .BR -h ", " --help -Display help message or, after above option, mode specific help -message. +Display general help message or, after one of the above options, a +mode specific help message. .TP .B --help-options @@ -183,7 +193,7 @@ Print version information for mdadm. .BR -v ", " --verbose Be more verbose about what is happening. This can be used twice to be extra-verbose. -This currently only affects +The extra verbosity currently only affects .B --detail --scan and .BR "--examine --scan" . @@ -263,7 +273,7 @@ raid5, 5, raid6, 6, multipath, mp, fautly. Obviously some of these are synonymo When used with .IR --build , -only linear, raid0, 0, stripe are valid. +only linear, stripe, raid0, 0, raid1, multipath, mp, and faulty are valid. .TP .BR -p ", " --parity= @@ -356,7 +366,7 @@ using .BR --grow . The size can be given as .B max -which means to choose the largest size that fits all on all current drives. +which means to choose the largest size that fits on all current drives. .TP .BR --assume-clean @@ -398,7 +408,7 @@ later) to be used. "yes" requires the named md device to have a 'standard' format, and the type and minor number will be determined from this. See DEVICE NAMES below. -The argumentment can also come immediately after +The argument can also come immediately after "-a". e.g. "-ap". If @@ -423,7 +433,7 @@ e.g. "/dev/scratch3". If the md device name is in a 'standard' format as described in DEVICE NAMES, then it will be created, if necessary, with the appropriate number based on that name. If the device name is not in one of these -formats, then a unused minor number will be allocted. The minor +formats, then a unused minor number will be allocated. The minor number will be considered unused if there is no active array for that number, and there is no entry in /dev for that number and with a non-standard name. @@ -536,7 +546,7 @@ same as --fail. .TP .B --sparc2.2 -In an array was created on a 2.2 Linux kernel patched with RAID +If an array was created on a 2.2 Linux kernel patched with RAID support, the superblock will have been created incorrectly, or at least incompatibly with 2.4 and later kernels. Using the .B --sparc2.2 @@ -621,6 +631,8 @@ Check arrays only once. This will generate .B NewArray events and more significantly .B DegradedArray +and +.B SparesMissing events. Running .in +5 .B " mdadm --monitor --scan -1" @@ -633,7 +645,7 @@ Generate a .B TestMessage alert for every array found at startup. This alert gets mailed and passed to the alert program. This can be used for testing that alert -message to get through successfully. +message do get through successfully. .SH ASSEMBLE MODE @@ -738,7 +750,7 @@ When using this option to create a partitionable array, the device files for the first 4 partitions are also created. If a different number is required it can be simply appended to the auto option. e.g. "auto=part8". Partition names are created by appending a digit -string to the device name, with an intervening "_p" if the device name +string to the device name, with an intervening "p" if the device name ends with a digit. The @@ -761,13 +773,14 @@ Usage: .PP This usage is similar to .BR --create . -The difference is that it creates a legacy array without a superblock. With +The difference is that it creates an array without a superblock. With these arrays there is no difference between initially creating the array and subsequently assembling the array, except that hopefully there is useful data there in the second case. -The level may only be 0, raid0, or linear. All devices must be listed -and the array will be started once complete. +The level may raid0, linear, multipath, or faulty, or one of their +synonyms. All devices must be listed and the array will be started +once complete. .SH CREATE MODE @@ -785,7 +798,7 @@ Usage: This usage will initialise a new md array, associate some devices with it, and activate the array. -This the +If the .B --auto option is given (as described in more detail in the section on Assemble mode), then the md device will be created with a suitable @@ -985,7 +998,7 @@ As well as reporting events, may move a spare drive from one array to another if they are in the same .B spare-group -and if the destination array has a failed drive but not spares. +and if the destination array has a failed drive but no spares. If any devices are listed on the command line, .B mdadm @@ -1161,7 +1174,7 @@ Currently the only support available is to change the "size" attribute for arrays with redundancy, and the raid-disks attribute of RAID1 arrays. -Normally when an array is build the "size" it taken from the smallest +Normally when an array is built the "size" it taken from the smallest of the drives. If all the small drives in an arrays are, one at a time, removed and replaced with larger drives, then you could have an array of large drives with only a small amount used. In this @@ -1185,7 +1198,7 @@ are to be removed from the array must already be vacant. That is, the devices that which were in those slots must be failed and removed. When the number of devices is increased, any hot spares that are -present may be activated immediately. +present will be activated immediately. .SH EXAMPLES @@ -1329,7 +1342,14 @@ Partition numbers should be indicated by added "pMM" to these, thus "/dev/md/d1p .B mdadm was previously known as .BR mdctl . - +.P +.B mdadm +is completely separate from the +.B raidtools +package, and does not use the +.I /etc/raidtab +configuration file at all. + .SH SEE ALSO For information on the various levels of RAID, check out: @@ -1338,24 +1358,32 @@ RAID, check out: .UR http://ostenfeld.dk/~jakob/Software-RAID.HOWTO/ http://ostenfeld.dk/~jakob/Software-RAID.HOWTO/ .UE +'''.PP +'''for new releases of the RAID driver check out: +''' +'''.IP +'''.UR ftp://ftp.kernel.org/pub/linux/kernel/people/mingo/raid-patches +'''ftp://ftp.kernel.org/pub/linux/kernel/people/mingo/raid-patches +'''.UE +'''.PP +'''or +'''.IP +'''.UR http://www.cse.unsw.edu.au/~neilb/patches/linux-stable/ +'''http://www.cse.unsw.edu.au/~neilb/patches/linux-stable/ +'''.UE .PP -for new releases of the RAID driver check out: - +The lastest version of +.I mdadm +should always be available from .IP -.UR ftp://ftp.kernel.org/pub/linux/kernel/people/mingo/raid-patches -ftp://ftp.kernel.org/pub/linux/kernel/people/mingo/raid-patches +.UR http://www.kernel.org/pub/linux/utils/raid/mdadm/ +http://www.kernel.org/pub/linux/utils/raid/mdadm/ .UE .PP -or -.IP -.UR http://www.cse.unsw.edu.au/~neilb/patches/linux-stable/ -http://www.cse.unsw.edu.au/~neilb/patches/linux-stable/ -.URk -.PP -.BR mdadm.conf (5), -.BR md (4). +.IR mdadm.conf (5), +.IR md (4). .PP .IR raidtab (5), .IR raid0run (8), .IR raidstop (8), -.IR mkraid (8) +.IR mkraid (8). diff --git a/mdadm.conf.5 b/mdadm.conf.5 index 9739010..a276cdf 100644 --- a/mdadm.conf.5 +++ b/mdadm.conf.5 @@ -194,7 +194,7 @@ ARRAY /dev/md1 superminor=1 .br # /dev/md2 is made from precisey these two devices .br -ARRAY /dev/md2 devices=/dev/hda1,/dev/hda2 +ARRAY /dev/md2 devices=/dev/hda1,/dev/hdb1 # /dev/md4 and /dev/md5 are a spare-group and spares .br -- cgit