]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - mdadm.8
mdadm-1.2.0
[thirdparty/mdadm.git] / mdadm.8
diff --git a/mdadm.8 b/mdadm.8
index b896e28c0ff9772a0d7778e2836be531cfd8f3c5..a04f7a029c590eebbe97ad70244944339d217758 100644 (file)
--- a/mdadm.8
+++ b/mdadm.8
@@ -1,5 +1,5 @@
 .\" -*- nroff -*-
-.TH MDADM 8
+.TH MDADM 8 "" v1.2.0
 .SH NAME
 mdadm \- manage MD devices
 .I aka
@@ -14,10 +14,11 @@ RAID devices are virtual devices created from two or more
 real block devices. This allows multiple devices (typically disk
 drives or partitions there-of) to be combined into a single device to
 hold (for example) a single filesystem.
-Some RAID levels included redundancy and so can survive some degree of
+Some RAID levels include redundancy and so can survive some degree of
 device failure.
 
-Linux Software RAID devices are implemented through the md (Multiple Devices) device driver.
+Linux Software RAID devices are implemented through the md (Multiple
+Devices) device driver.
 
 Currently, Linux supports
 .B LINEAR
@@ -26,14 +27,16 @@ md devices,
 (striping),
 .B RAID1
 (mirroring),
-.B RAID4
+.BR RAID4 ,
+.BR RAID5 ,
 and
-.B RAID5.
-
-Recent kernels (2002) also support a mode known as
 .BR MULTIPATH .
-.B mdadm
-only provides limited support for MULTIPATH as yet.
+
+.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 mdadm
 is a program that can be used to create, manage, and monitor
@@ -52,7 +55,9 @@ 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.  Also mdadm helps with management of the configuration
+configuration file and does not use one by default.  Also
+.B mdadm
+helps with management of the configuration
 file.
 .IP \(bu 4
 .B mdadm
@@ -60,6 +65,14 @@ 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 6 major modes of operation:
@@ -95,7 +108,11 @@ superblocks, erasing old superblocks and stopping active arrays.
 
 .TP
 .B "Follow or Monitor"
-Monitor one or more md devices and act on any state changes.
+Monitor one or more md devices and act on any state changes.  This is
+only meaningful for raid1, raid5 or multipath arrays as only these have
+interesting state.  raid0 or linear never have missing, spare, or
+failed drives, so there is nothing to monitor.  
+
 
 .SH OPTIONS
 
@@ -103,7 +120,7 @@ Available options are:
 
 .TP
 .BR -A ", " --assemble
-Assemble aexisting array.
+Assemble a pre-existing array.
 
 .TP
 .BR -B ", " --build
@@ -136,7 +153,13 @@ mode.
 
 .TP
 .BR -h ", " --help
-Display help message or, after above option, mode specific help message.
+Display help message or, after above option, mode specific help
+message.
+
+.TP
+.B --help-options
+Display more detailed help about command line parsing and some commonly
+used options.
 
 .TP
 .BR -V ", " --version
@@ -162,6 +185,20 @@ the exact meaning of this option in different contexts.
 .BR -c ", " --config=
 Specify the config file.  Default is
 .BR /etc/mdadm.conf .
+If the config file given is
+.B partitions
+then nothing will be read, but
+.I mdadm
+will act as though the config file contained exactly
+.B "DEVICE partitions"
+and will read
+.B /proc/partitions
+to find a list of devices to scan.
+If the word
+.B none
+is given for the config file, then
+.I mdadm
+will act as though the config file were empty.
 
 .TP
 .BR -s ", " --scan
@@ -196,26 +233,38 @@ Specify rounding factor for linear array (==chunk size)
 .TP
 .BR -l ", " --level=
 Set raid level.  Options are: linear, raid0, 0, stripe, raid1, 1, mirror, raid5, 4,
-raid5, 5.  Obviously some of these are synonymous.
+raid5, 5, multipath, mp.  Obviously some of these are synonymous.
 Only the first 4 are valid when Building.
 
 .TP
 .BR -p ", " --parity=
 Set raid5 parity algorithm. Options are:
-{left,right}-{,a}symmetric, la, ra, ls, rs.  The default is left-symmetric.
+left-asymmetric,
+left-symmetric,
+right-asymmetric,
+right-symmetric,
+la, ra, ls, rs.  The default is left-symmetric.
 
 .TP
 .BR --layout=
 same as --parity
 
 .TP
-.BR -n ", " --raid-disks=
-number of active devices in array.
+.BR -n ", " --raid-devices=
+Specify the number of active devices in the array.  This, plus the
+number of spare devices (see below) must equal the number of
+.I component-devices
+(including "\fBmissing\fP" devices)
+that are listed on the command line.
 
 .TP
-.BR -x ", " --spare-disks=
-number of spare (eXtra) disks in initial array.  Spares can be added
-and removed later.
+.BR -x ", " --spare-devices=
+Specify the number of spare (eXtra) devices in the initial array.
+Spares can also be added
+and removed later.  The number of component devices listed
+on the command line must equal the number of raid devices plus the
+number of spare devices. 
+
 
 .TP
 .BR -z ", " --size=
@@ -238,9 +287,19 @@ excluded
 .BR -m ", " --super-minor=
 Minor number of device that array was created for.  Devices which
 don't have this minor number are excluded.  If you create an array as
-/dev/md1, then all superblock will contain the minor number 1, even if
+/dev/md1, then all superblocks will contain the minor number 1, even if
 the array is later assembled as /dev/md2.
 
+Giving the literal word "dev" for
+.B --super-minor
+will cause
+.I mdadm
+to use the minor number of the md device that is being assembled.
+e.g. when assembling
+.BR /dev/md0 ,
+.M --super-minor=dev
+will look for super blocks with a minor number of 0.
+
 .TP
 .BR -f ", " --force
 Assemble the array even if some superblocks appear out-of-date
@@ -255,6 +314,33 @@ With
 .B --run
 an attempt will be made to start it anyway.
 
+.TP
+.BR -U ", " --update=
+Update the superblock on each device while assembling the array.  The
+argument given to this flag can be either
+.B sparc2.2
+or
+.BR super-minor .
+
+The
+.B sparc2.2
+option will  adjust the superblock of an array what was created on a Sparc
+machine running a patched 2.2 Linux kernel.  This kernel got the
+alignment of part of the superblock wrong.  You can use the
+.B "--examine --sparc2.2"
+option to
+.I mdadm
+to see what effect this would have.
+
+The
+.B super-minor
+option will update the
+.B "prefered minor"
+field on each superblock to match the minor number of the array being
+assembled.  This is not need on 2.6 and later kernels as they make
+this adjustment automatically.
+
+
 .SH For Manage mode:
 
 .TP
@@ -264,7 +350,7 @@ hotadd listed devices.
 
 .TP
 .BR -r ", " --remove
-remove listed devices.  The must not be active.  i.e. they should
+remove listed devices.  They must not be active.  i.e. they should
 be failed or spare devices.
 
 .TP
@@ -275,6 +361,20 @@ mark listed devices as faulty.
 .BR --set-faulty
 same as --fail.
 
+.SH For Examine mode:
+
+.TP
+.B --sparc2.2
+In 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
+flag with
+.B --examine
+will fix the superblock before displaying it.  If this appears to do
+the right thing, then the array can be successfully assembled using
+.BR "--assemble --update=sparc2.2" .
+
 .SH For Misc mode:
 
 .TP
@@ -317,12 +417,28 @@ Give a delay in seconds.
 polls the md arrays and then waits this many seconds before polling
 again.  The default is 60 seconds.
 
+.TP
+.BR -f ", " --daemonise
+Tell
+.B mdadm
+to run as a background daemon if it decides to monitor anything.  This
+causes it to fork and run in the child, and to disconnect form the
+terminal.  The process id of the child is written to stdout.
+This is useful with
+.B --scan
+which will only continue monitoring if a mail address or alert program
+is found in the config file.
+
 .SH ASSEMBLE MODE
 
 .HP 12
 Usage:
 .B mdadm --assemble
-.I device options...
+.I md-device options-and-component-devices...
+.HP 12
+Usage:
+.B mdadm --assemble --scan
+.I  md-devices-and-options...
 .HP 12
 Usage:
 .B mdadm --assemble --scan
@@ -333,26 +449,38 @@ This usage assembles one or more raid arrays from pre-existing components.
 For each array, mdadm needs to know the md device, the identity of the
 array, and a number of component-devices. These can be found in a number of ways.
 
-The md device is either given before 
+In the first usage example (without the
+.BR --scan )
+the first device given is the md device.
+In the second usage example, all devices listed are treated as md
+devices and assembly is attempted.
+In the third (where no devices are listed) all md devices that are
+listed in the configuration file are assembled.
+
+If precisely one device is listed, but
+.B --scan
+is not given, that
+.I mdadm
+acts as though
 .B --scan
-or is found from the config file. In the latter case, multiple md devices
-can be started with a single mdadm command.
+was given and identify information is extracted from the configuration file.
 
 The identity can be given with the 
 .B --uuid
 option, with the
 .B --super-minor
-option, can be found in in the config file, or will be taken from the
+option, can be found  in the config file, or will be taken from the
 super block on the first component-device listed on the command line.
 
 Devices can be given on the 
 .B --assemble
-command line or from the config file. Only devices which have an md
-superblock which contains the right identity will be considered for any device.
+command line or in the config file. Only devices which have an md
+superblock which contains the right identity will be considered for
+any array.
 
 The config file is only used if explicitly named with 
 .B --config
-or requested with 
+or requested with (a possibly implicit)
 .B --scan. 
 In the later case,
 .B /etc/mdadm.conf
@@ -363,9 +491,9 @@ If
 is not given, then the config file will only be used to find the
 identity of md arrays.
 
-Normally the array will be started after it is assembled.  However is
+Normally the array will be started after it is assembled.  However if
 .B --scan
-is not given and insufficient drives were lists to start a complete
+is not given and insufficient drives were listed to start a complete
 (non-degraded) array, then the array is not started (to guard against
 usage errors).  To insist that the array be started in this case (as
 may work for RAID1 or RAID5), give the
@@ -381,7 +509,7 @@ Usage:
 .I device
 .BI --chunk= X
 .BI --level= Y
-.BI --raid-disks= Z
+.BI --raid-devices= Z
 .I devices
 
 .PP
@@ -404,7 +532,7 @@ Usage:
 .BI --chunk= X
 .BI --level= Y
 .br
-.BI --raid-disks= Z
+.BI --raid-devices= Z
 .I  devices
 
 .PP
@@ -412,7 +540,7 @@ This usage will initialise a new md array, associate some devices with
 it, and activate the array.
 
 As devices are added, they are checked to see if they contain raid
-superblocks or filesystems. They are also check to see if the variance in
+superblocks or filesystems. They are also checked to see if the variance in
 device size exceeds 1%.
 
 If any discrepancy is found, the array will not automatically be run, though
@@ -420,6 +548,17 @@ the presence of a
 .B --run
 can override this caution.
 
+To create a "degraded" array in which some devices are missing, simply
+give the word "\fBmissing\fP"
+in place of a device name.  This will cause
+.B mdadm
+to leave the corresponding slot in the array empty.
+For a RAID4 or RAID5 array at most one slot can be
+"\fBmissing\fP".
+For a RAID1 array, only one real device needs to be given.  All of the
+others can be
+"\fBmissing\fP".
+
 '''If the 
 '''.B --size
 '''option is given, it is not necessary to list any component-devices in this command.
@@ -451,14 +590,14 @@ This usage will allow individual devices in an array to be failed,
 removed or added.  It is possible to perform multiple operations with
 on command. For example:
 .br
-mdadm /dev/md0 -f /dev/hda1 -r /dev/hda1 /a /dev/hda1
+.B "  mdadm /dev/md0 -f /dev/hda1 -r /dev/hda1 -a /dev/hda1"
 .br
 will firstly mark
 .B /dev/hda1
 as faulty in
 .B /dev/md0
 and will then remove it from the array and finally add it back
-in as a spare.  However only one md array can be affect by a single
+in as a spare.  However only one md array can be affected by a single
 command. 
 
 .SH MISC MODE
@@ -480,17 +619,21 @@ The information discovered is reported.
 
 .TP
 --detail
-The device should be an active md device.  mdadm will display
-a detailed description of the array.
+The device should be an active md device.
+.B   mdadm
+will display a detailed description of the array.
 .B --brief
-will cause the output to be less detailed and format to be
+or
+.B --scan
+will cause the output to be less detailed and the format to be
 suitable for inclusion in
 .BR /etc/mdadm.conf .
 
 .TP
 --examine
-The device should be a component of an md array.  mdadm will
-read the md superblock of the device and display the contents.
+The device should be a component of an md array.
+.B mdadm
+will read the md superblock of the device and display the contents.
 If
 .B --brief
 is given, or
@@ -500,7 +643,7 @@ are grouped together and reported in a single entry suitable
 for inclusion in
 .BR /etc/mdadm.conf .
 
-Have
+Having
 .B --scan
 without listing any devices will cause all devices listed in the
 config file to be examined.
@@ -525,6 +668,19 @@ This will change a
 .B readonly
 array back to being read/write.
 
+.TP
+--scan
+For all operations except
+.BR --examine ,
+.B --scan
+will cause the operation to be applied to all arrays listed in
+.BR /proc/mdstat .
+For
+.BR --examine,
+.B --scan
+causes all devices listed in the config file to be examined.
+
+
 .SH MONITOR MODE
 
 .HP 12
@@ -541,6 +697,13 @@ noticed.
 will never exit once it decides that there are arrays to be checked,
 so it should normally be run in the background.
 
+As well as reporting events,
+.B mdadm
+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.
+
 If any devices are listed on the command line,
 .B mdadm
 will only monitor those devices. Otherwise all arrays listed in the
@@ -551,9 +714,14 @@ is given, then any other md devices that appear in
 will also be monitored.
 
 The result of monitoring the arrays is the generation of events.
-These events are passed to a separate program (is specified) and may
-be mail to a given E-mail address.
+These events are passed to a separate program (if specified) and may
+be mailed to a given E-mail address.
 
+When passing event to program, the program is run once for each event
+and is given 2 or 3 command-line arguements.  The first is the
+name of the event (see below).  The second is the name of the
+md device which is affected, and the third is the name of a related
+device if relevant, such as a component device that has failed.
 
 If
 .B --scan
@@ -564,7 +732,7 @@ will not monitor anything.
 Without
 .B --scan
 .B mdadm
-will continue monitoring along as something was found to monitor.  If
+will continue monitoring along as something was found to monitor.  If
 no program or email is given, then each event is reported to
 .BR stdout .
 
@@ -573,7 +741,7 @@ The different events are:
 .RS 4
 .TP
 .B DeviceDisappeared
-An md array which previously was configured appear to no longer be
+An md array which previously was configured appears to no longer be
 configured.
 
 .TP
@@ -643,7 +811,7 @@ be labelled with the same
 in the configuration file.  The
 .B spare-group
 name can be any string. It is only necessary that different spare
-groups use different name.
+groups use different names.
 
 When
 .B mdadm
@@ -656,9 +824,93 @@ first.
 If the removal succeeds but the adding fails, then it is added back to
 the original array.
 
+.SH EXAMPLES
+
+.B "  mdadm --query /dev/name-of-device"
+.br
+This will find out if a given device is a raid array, or is part of
+one, and will provide brief information about the device.
+
+.B "  mdadm --assemble --scan"
+.br
+This will assemble and start all arrays listed in the standard confile
+file.  This command will typically go in a system startup file.
+
+.B "  mdadm --stop --scan"
+.br
+This will shut down all array that can be shut down (i.e. are not
+currently in used).  This will typically going in a system shutdown script.
+
+.B "  mdadm --follow --scan --delay=120"
+.br
+If (and only if) there is an Email address or program given in the
+standard config file, then
+monitor the status of all arrays listed in that file by
+polling them ever 2 minutes.
+
+.B "  mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/hd[ac]1"
+.br
+Create /dev/md0 as a RAID1 array consisting of /dev/hda1 and /dev/hdc1.
+
+.br
+.B "  echo 'DEVICE /dev/hd*[0-9] /dev/sd*[0-9]' > mdadm.conf"
+.br
+.B "  mdadm --detail --scan >> mdadm.conf"
+.br
+This will create a prototype config file that describes currently
+active arrays that are known to be made from partitions of IDE or SCSI drives.
+This file should be reviewed before being used as it may
+contain unwanted detail.
+
+.B "  echo 'DEVICE /dev/hd[a-z] /dev/sd*[a-z]' > mdadm.conf"
+.br
+.B "  mdadm --examine --scan --config=mdadm.conf >> mdadm.conf"
+.ber
+This will find what arrays could be assembled from existign IDE and
+SCSI whole drives (not partitions) and store the information is the
+format of a config file.
+This file is very likely to contain unwanted detail, particularly
+the
+.B devices=
+entries.  It should be reviewed and edited before being used as an
+actual config file.
+
+.B "  mdadm --examine --brief --scan --config=partitions"
+.br
+.B "  mdadm -Ebsc partitions"
+.br
+Create a list of devices by reading
+.BR /proc/partitions ,
+scan these for RAID superblocks, and printout a brief listing of all
+that was found.
+
+.B "  mdadm -Ac partitions -m 0 /dev/md0"
+.br
+Scan all partitions and devices listed in
+.BR /proc/partitions
+and assemble
+.B /dev/md0
+out of all such devices with a RAID superblock with a minor number of 0.
+
+.B "  mdadm --monitor --scan --daemonise > /var/run/mdadm"
+.br
+If config file contains a mail address or alert program, run mdadm in
+the background in monitor mode monitoring all md devices.  Also write
+pid of mdadm daemon to
+.BR /var/run/mdadm .
+
+.B "  mdadm --create --help"
+.br
+Providew help about the Create mode.
+
+.B "  mdadm --config --help"
+.br
+Provide help about the format of the config file.
+
+.B "  mdadm --help"
+.br
+Provide general help.
 
-'''.SH BUGS
-'''no known bugs.
 
 .SH FILES
 
@@ -668,9 +920,13 @@ If you're using the
 .B /proc 
 filesystem,
 .B /proc/mdstat
-gives you informations about md devices status.
-This file is not currently used by
-.BR mdadm .
+lists all active md devices with information about them.
+.B mdadm
+uses this to find arrays when
+.B --scan
+is given in Misc mode, and to monitor array reconstruction
+on Monitor mode.
+
 
 .SS /etc/mdadm.conf
 
@@ -681,10 +937,11 @@ they contain MD super block, and gives identifying information
 for more details.
 
 
-.SH TODO
-
-Finish and document Follow mode.
-
+.SH NOTE
+.B mdadm
+was previously known as
+.BR mdctl .
 .SH SEE ALSO
 For information on the various levels of
 RAID, check out: