]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - mdadm.conf.5
Check all member devices in enough_fd
[thirdparty/mdadm.git] / mdadm.conf.5
index 87a8c1bade0aadbbbb6a0abacf327a45b3bd98d9..9f31c734a1e287197e70a619fa8bc7f6482ebaec 100644 (file)
@@ -63,7 +63,7 @@ will cause
 .I mdadm
 to look for assembled CONTAINER arrays and included them as a source
 for assembling further arrays.
-.PP
+
 The word
 .I partitions
 will cause
@@ -86,7 +86,7 @@ DEVICE /dev/hda* /dev/hdc*
 .br
 DEV    /dev/sd*
 .br
-DEVICE /dev/discs/disc*/disc
+DEVICE /dev/disk/by-path/pci*
 .br
 DEVICE partitions
 
@@ -109,13 +109,12 @@ which matches the rest of the line will never be automatically assembled.
 If no device name is given,
 .I mdadm
 will use various heuristics to determine an appropriate name.
-.PP
+
 Subsequent words identify the array, or identify the array as a member
 of a group. If multiple identities are given,
 then a component device must match ALL identities to be considered a
 match.  Each identity word has a tag, and equals sign, and some value.
 The tags are:
-
 .RS 4
 .TP
 .B uuid=
@@ -160,6 +159,7 @@ this is mainly for compatibility with the output of
 .TP
 .B spares=
 The value is a number of spare devices to expect the array to have.
+The sole use of this keyword and value is as follows:
 .B mdadm \-\-monitor
 will report an array if it is found to have fewer than this number of
 spares when
@@ -225,12 +225,12 @@ Specify that this array is a member array of some container.  The
 value given can be either a path name in /dev, or a UUID of the
 container array.
 
-.IP
+.TP
 .B member=
 Specify that this array is a member array of some container.  Each
 type of container has some way to enumerate member arrays, often a
 simple sequence number.  The value identifies which member of a
-container the array is.  It will usually accompany a 'container=' word.
+container the array is.  It will usually accompany a "container=" word.
 .RE
 
 .TP
@@ -336,47 +336,65 @@ to suppress this symlink creation.
 The
 .B homehost
 line gives a default value for the
-.B --homehost=
-option to mdadm.  There should be exactly one other word on the line.
+.B \-\-homehost=
+option to mdadm.  There should normally be only one other word on the line.
 It should either be a host name, or one of the special words
-.B <system>
+.BR <system>,
+.B <none>
 and
 .BR <ignore> .
 If
 .B <system>
 is given, then the
 .BR gethostname ( 2 )
-systemcall is used to get the host name.
+systemcall is used to get the host name.  This is the default.
 
 If
 .B <ignore>
 is given, then a flag is set so that when arrays are being
-auto-assemble the checking of the recorded
+auto-assembled the checking of the recorded
 .I homehost
 is disabled.
+If
+.B <ignore>
+is given it is also possible to give an explicit name which will be
+used when creating arrays.  This is the only case when there can be
+more that one other word on the
+.B HOMEHOST
+line.
+
+If
+.B <none>
+is given, then the default of using
+.BR gethostname ( 2 )
+is over-ridden and no homehost name is assumed.
 
 When arrays are created, this host name will be stored in the
 metadata.  When arrays are assembled using auto-assembly, arrays which
 do not record the correct homehost name in their metadata will be
-assembled using a 'foreign' name.  A 'foreign' name alway ends with a
-digit string (possibly preceded by an underscore) to differentiate it
+assembled using a "foreign" name.  A "foreign" name alway ends with a
+digit string preceded by an underscore to differentiate it
 from any possible local name. e.g.
 .B /dev/md/1_1
 or
-.BR /dev/md/home0 .
+.BR /dev/md/home_0 .
 .TP
 .B AUTO
 A list of names of metadata format can be given, each preceded by a
 plus or minus sign.  Also the word
+.I homehost
+is allowed as is
 .I all
-preceded by plus or minus is allowed and is usually last.
+preceded by plus or minus sign.
+.I all
+is usually last.
 
 When
 .I mdadm
-is auto-assembling an array, with via
-.I --assemble
+is auto-assembling an array, either via
+.I \-\-assemble
 or
-.I --incremental
+.I \-\-incremental
 and it finds metadata of a given type, it checks that metadata type
 against those listed in this line.  The first match wins, where
 .I all
@@ -386,10 +404,20 @@ assembly is allowed.  If the match was preceded by a minus sign, the
 auto assembly is disallowed.  If no match is found, the auto assembly
 is allowed.
 
+If the metadata indicates that the array was created for
+.I this
+host, and the word
+.I homehost
+appears before any other match, then the array is treated as a valid
+candidate for auto-assembly.
+
 This can be used to disable all auto-assembly (so that only arrays
 explicitly listed in mdadm.conf or on the command line are assembled),
 or to disable assembly of certain metadata types which might be
-handled by other software.
+handled by other software.  It can also be used to disable assembly of
+all foreign arrays - normally such arrays are assembled but given a
+non-deterministic name in
+.BR /dev/md/ .
 
 The known metadata types are
 .BR 0.90 ,
@@ -397,6 +425,86 @@ The known metadata types are
 .BR ddf ,
 .BR imsm .
 
+.TP
+.B POLICY
+This is used to specify what automatic behavior is allowed on devices 
+newly appearing in the system and provides a way of marking spares that can
+be moved to other arrays as well as the migration domains.
+.I Domain
+can be defined through
+.I policy
+line by specifying a domain name for a number of paths from
+.BR /dev/disk/by-path/ .
+A device may belong to several domains. The domain of an array is a union
+of domains of all devices in that array.  A spare can be automatically
+moved from one array to another if the set of the destination array's
+.I domains
+contains all the
+.I domains
+of the new disk or if both arrays have the same
+.IR spare-group .
+
+To update hot plug configuration it is necessary to execute
+.B mdadm \-\-udev\-rules
+command after changing the config file
+
+Key words used in the
+.I POLICY
+line and supported values are:
+
+.RS 7
+.TP
+.B domain=
+any arbitrary string
+.TP
+.B metadata=
+0.9 1.x ddf or imsm
+.TP
+.B path=
+file glob matching anything from
+.B /dev/disk/by-path
+.B type=
+either 
+.B disk
+or
+.BR part .
+.TP
+.B action=
+include, re-add, spare, spare-same-slot, or force-spare
+
+.P
+The
+.I action
+item determines the automatic behavior allowed for devices matching the
+.I path
+and
+.I type
+in the same line.  If a device matches several lines with different
+.I  actions
+then the most permissive will apply. The ordering of policy lines
+is irrelevant to the end result.
+.TP
+.B include
+allows adding a disk to an array if metadata on that disk matches that array
+.TP
+.B re-add
+will include the device in the array if it appears to be a current member
+or a member that was recently removed
+.TP
+.B spare
+as above and additionally: if the device is bare it can
+become a spare if there is any array that it is a candidate for based
+on domains and metadata.
+.TP
+.B spare\-same\-slot
+as above and additionally if given slot was used by an array that went
+degraded recently and the device plugged in has no metadata then it will
+be automatically added to that array (or it's container)
+.TP
+.B force-spare
+as above and the disk will become a spare in remaining cases
+.RE
+
 .SH EXAMPLE
 DEVICE /dev/sd[bcdjkl]1
 .br
@@ -435,7 +543,25 @@ ARRAY /dev/md5 uuid=19464854:03f71b1b:e0df2edd:246cc977
 ARRAY /dev/md/home UUID=9187a482:5dde19d9:eea3cc4a:d646ab8b
 .br
            auto=part
-
+.br
+POLICY domain=domain1 metadata=imsm path=pci-0000:00:1f.2-scsi-*
+.br
+           action=spare
+.br
+POLICY domain=domain1 metadata=imsm path=pci-0000:04:00.0-scsi-[01]*
+.br
+           action=include
+.br
+# One domain comprising of devices attached to specified paths is defined.
+.br
+# Bare device matching first path will be made an imsm spare on hot plug.
+.br
+# If more than one array is created on devices belonging to domain1 and
+.br
+# one of them becomes degraded, then any imsm spare matching any path for
+.br
+# given domain name can be migrated.
+.br
 MAILADDR root@mydomain.tld
 .br
 PROGRAM /usr/sbin/handle\-mdadm\-events
@@ -444,7 +570,7 @@ CREATE group=system mode=0640 auto=part\-8
 .br
 HOMEHOST <system>
 .br
-AUTO +1.x -all
+AUTO +1.x homehost -all
 
 .SH SEE ALSO
 .BR mdadm (8),