1534 lines
		
	
	
		
			41 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			1534 lines
		
	
	
		
			41 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From e9dd5644843e2013a7dd1a8a5da2b9fa35837416 Mon Sep 17 00:00:00 2001
 | |
| From: Lukasz Florczak <lukasz.florczak@linux.intel.com>
 | |
| Date: Fri, 18 Mar 2022 09:26:04 +0100
 | |
| Subject: [PATCH 06/83] mdadm: Respect config file location in man
 | |
| 
 | |
| Default config file location could differ depending on OS (e.g. Debian family).
 | |
| This patch takes default config file into consideration when creating mdadm.man
 | |
| file as well as mdadm.conf.man.
 | |
| 
 | |
| Rename mdadm.conf.5 to mdadm.conf.5.in. Now mdadm.conf.5 is generated automatically.
 | |
| 
 | |
| Signed-off-by: Lukasz Florczak <lukasz.florczak@linux.intel.com>
 | |
| Acked-by: Coly Li <colyli@suse.de>
 | |
| Signed-off-by: Jes Sorensen <jsorensen@fb.com>
 | |
| ---
 | |
|  .gitignore      |   1 +
 | |
|  Makefile        |   7 +-
 | |
|  mdadm.8.in      |  16 +-
 | |
|  mdadm.conf.5    | 706 ------------------------------------------------
 | |
|  mdadm.conf.5.in | 706 ++++++++++++++++++++++++++++++++++++++++++++++++
 | |
|  5 files changed, 721 insertions(+), 715 deletions(-)
 | |
|  delete mode 100644 mdadm.conf.5
 | |
|  create mode 100644 mdadm.conf.5.in
 | |
| 
 | |
| diff --git a/.gitignore b/.gitignore
 | |
| index 217fe76d..8d791c6f 100644
 | |
| --- a/.gitignore
 | |
| +++ b/.gitignore
 | |
| @@ -3,6 +3,7 @@
 | |
|  /*-stamp
 | |
|  /mdadm
 | |
|  /mdadm.8
 | |
| +/mdadm.conf.5
 | |
|  /mdadm.udeb
 | |
|  /mdassemble
 | |
|  /mdmon
 | |
| diff --git a/Makefile b/Makefile
 | |
| index 2a51d813..bf126033 100644
 | |
| --- a/Makefile
 | |
| +++ b/Makefile
 | |
| @@ -227,7 +227,12 @@ raid6check : raid6check.o mdadm.h $(CHECK_OBJS)
 | |
|  
 | |
|  mdadm.8 : mdadm.8.in
 | |
|  	sed -e 's/{DEFAULT_METADATA}/$(DEFAULT_METADATA)/g' \
 | |
| -	-e 's,{MAP_PATH},$(MAP_PATH),g'  mdadm.8.in > mdadm.8
 | |
| +	-e 's,{MAP_PATH},$(MAP_PATH),g' -e 's,{CONFFILE},$(CONFFILE),g' \
 | |
| +	-e 's,{CONFFILE2},$(CONFFILE2),g'  mdadm.8.in > mdadm.8
 | |
| +
 | |
| +mdadm.conf.5 : mdadm.conf.5.in
 | |
| +	sed -e 's,{CONFFILE},$(CONFFILE),g' \
 | |
| +	-e 's,{CONFFILE2},$(CONFFILE2),g'  mdadm.conf.5.in > mdadm.conf.5
 | |
|  
 | |
|  mdadm.man : mdadm.8
 | |
|  	man -l mdadm.8 > mdadm.man
 | |
| diff --git a/mdadm.8.in b/mdadm.8.in
 | |
| index e2a42425..8b21ffd4 100644
 | |
| --- a/mdadm.8.in
 | |
| +++ b/mdadm.8.in
 | |
| @@ -267,13 +267,13 @@ the exact meaning of this option in different contexts.
 | |
|  .TP
 | |
|  .BR \-c ", " \-\-config=
 | |
|  Specify the config file or directory.  Default is to use
 | |
| -.B /etc/mdadm.conf
 | |
| +.B {CONFFILE}
 | |
|  and
 | |
| -.BR /etc/mdadm.conf.d ,
 | |
| +.BR {CONFFILE}.d ,
 | |
|  or if those are missing then
 | |
| -.B /etc/mdadm/mdadm.conf
 | |
| +.B {CONFFILE2}
 | |
|  and
 | |
| -.BR /etc/mdadm/mdadm.conf.d .
 | |
| +.BR {CONFFILE2}.d .
 | |
|  If the config file given is
 | |
|  .B "partitions"
 | |
|  then nothing will be read, but
 | |
| @@ -2014,9 +2014,9 @@ The config file is only used if explicitly named with
 | |
|  or requested with (a possibly implicit)
 | |
|  .BR \-\-scan .
 | |
|  In the later case,
 | |
| -.B /etc/mdadm.conf
 | |
| +.B {CONFFILE}
 | |
|  or
 | |
| -.B /etc/mdadm/mdadm.conf
 | |
| +.B {CONFFILE2}
 | |
|  is used.
 | |
|  
 | |
|  If
 | |
| @@ -3344,7 +3344,7 @@ uses this to find arrays when
 | |
|  is given in Misc mode, and to monitor array reconstruction
 | |
|  on Monitor mode.
 | |
|  
 | |
| -.SS /etc/mdadm.conf
 | |
| +.SS {CONFFILE} (or {CONFFILE2})
 | |
|  
 | |
|  The config file lists which devices may be scanned to see if
 | |
|  they contain MD super block, and gives identifying information
 | |
| @@ -3352,7 +3352,7 @@ they contain MD super block, and gives identifying information
 | |
|  .BR mdadm.conf (5)
 | |
|  for more details.
 | |
|  
 | |
| -.SS /etc/mdadm.conf.d
 | |
| +.SS {CONFFILE}.d (or {CONFFILE2}.d)
 | |
|  
 | |
|  A directory containing configuration files which are read in lexical
 | |
|  order.
 | |
| diff --git a/mdadm.conf.5 b/mdadm.conf.5
 | |
| deleted file mode 100644
 | |
| index 74a21c5f..00000000
 | |
| --- a/mdadm.conf.5
 | |
| +++ /dev/null
 | |
| @@ -1,706 +0,0 @@
 | |
| -.\" Copyright Neil Brown and others.
 | |
| -.\"   This program is free software; you can redistribute it and/or modify
 | |
| -.\"   it under the terms of the GNU General Public License as published by
 | |
| -.\"   the Free Software Foundation; either version 2 of the License, or
 | |
| -.\"   (at your option) any later version.
 | |
| -.\" See file COPYING in distribution for details.
 | |
| -.TH MDADM.CONF 5
 | |
| -.SH NAME
 | |
| -mdadm.conf \- configuration for management of Software RAID with mdadm
 | |
| -.SH SYNOPSIS
 | |
| -/etc/mdadm.conf
 | |
| -.SH DESCRIPTION
 | |
| -.PP
 | |
| -.I mdadm
 | |
| -is a tool for creating, managing, and monitoring RAID devices using the
 | |
| -.B md
 | |
| -driver in Linux.
 | |
| -.PP
 | |
| -Some common tasks, such as assembling all arrays, can be simplified
 | |
| -by describing the devices and arrays in this configuration file.
 | |
| -
 | |
| -.SS SYNTAX
 | |
| -The file should be seen as a collection of words separated by white
 | |
| -space (space, tab, or newline).
 | |
| -Any word that beings with a hash sign (#) starts a comment and that
 | |
| -word together with the remainder of the line is ignored.
 | |
| -
 | |
| -Spaces can be included in a word using quotation characters.  Either
 | |
| -single quotes
 | |
| -.RB ( ' )
 | |
| -or double quotes (\fB"\fP)
 | |
| -may be used.  All the characters from one quotation character to
 | |
| -next identical character are protected and will not be used to
 | |
| -separate words to start new quoted strings.  To include a single quote
 | |
| -it must be between double quotes.  To include a double quote it must
 | |
| -be between single quotes.
 | |
| -
 | |
| -Any line that starts with white space (space or tab) is treated as
 | |
| -though it were a continuation of the previous line.
 | |
| -
 | |
| -Empty lines are ignored, but otherwise each (non continuation) line
 | |
| -must start with a keyword as listed below.  The keywords are case
 | |
| -insensitive and can be abbreviated to 3 characters.
 | |
| -
 | |
| -The keywords are:
 | |
| -.TP
 | |
| -.B DEVICE
 | |
| -A
 | |
| -.B device
 | |
| -line lists the devices (whole devices or partitions) that might contain
 | |
| -a component of an MD array.  When looking for the components of an
 | |
| -array,
 | |
| -.I mdadm
 | |
| -will scan these devices (or any devices listed on the command line).
 | |
| -
 | |
| -The
 | |
| -.B device
 | |
| -line may contain a number of different devices (separated by spaces)
 | |
| -and each device name can contain wild cards as defined by
 | |
| -.BR glob (7).
 | |
| -
 | |
| -Also, there may be several device lines present in the file.
 | |
| -
 | |
| -Alternatively, a
 | |
| -.B device
 | |
| -line can contain either or both of the  words
 | |
| -.B containers
 | |
| -and
 | |
| -.BR partitions .
 | |
| -The word
 | |
| -.B containers
 | |
| -will cause
 | |
| -.I mdadm
 | |
| -to look for assembled CONTAINER arrays and included them as a source
 | |
| -for assembling further arrays.
 | |
| -
 | |
| -The word
 | |
| -.I partitions
 | |
| -will cause
 | |
| -.I mdadm
 | |
| -to read
 | |
| -.I /proc/partitions
 | |
| -and include all devices and partitions found therein.
 | |
| -.I mdadm
 | |
| -does not use the names from
 | |
| -.I /proc/partitions
 | |
| -but only the major and minor device numbers.  It scans
 | |
| -.I /dev
 | |
| -to find the name that matches the numbers.
 | |
| -
 | |
| -If no DEVICE line is present, then "DEVICE partitions containers" is assumed.
 | |
| -
 | |
| -For example:
 | |
| -.IP
 | |
| -DEVICE /dev/hda* /dev/hdc*
 | |
| -.br
 | |
| -DEV    /dev/sd*
 | |
| -.br
 | |
| -DEVICE /dev/disk/by-path/pci*
 | |
| -.br
 | |
| -DEVICE partitions
 | |
| -
 | |
| -.TP
 | |
| -.B ARRAY
 | |
| -The ARRAY lines identify actual arrays.  The second word on the line
 | |
| -may be the name of the device where the array is normally
 | |
| -assembled, such as
 | |
| -.B /dev/md1
 | |
| -or
 | |
| -.BR /dev/md/backup .
 | |
| -If the name does not start with a slash
 | |
| -.RB (' / '),
 | |
| -it is treated as being in
 | |
| -.BR /dev/md/ .
 | |
| -Alternately the word
 | |
| -.B <ignore>
 | |
| -(complete with angle brackets) can be given in which case any array
 | |
| -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.
 | |
| -
 | |
| -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=
 | |
| -The value should be a 128 bit uuid in hexadecimal, with punctuation
 | |
| -interspersed if desired.  This must match the uuid stored in the
 | |
| -superblock.
 | |
| -.TP
 | |
| -.B name=
 | |
| -The value should be a simple textual name as was given to
 | |
| -.I mdadm
 | |
| -when the array was created.  This must match the name stored in the
 | |
| -superblock on a device for that device to be included in the array.
 | |
| -Not all superblock formats support names.
 | |
| -.TP
 | |
| -.B super\-minor=
 | |
| -The value is an integer which indicates the minor number that was
 | |
| -stored in the superblock when the array was created. When an array is
 | |
| -created as /dev/mdX, then the minor number X is stored.
 | |
| -.TP
 | |
| -.B devices=
 | |
| -The value is a comma separated list of device names or device name
 | |
| -patterns.
 | |
| -Only devices with names which match one entry in the list will be used
 | |
| -to assemble the array.  Note that the devices
 | |
| -listed there must also be listed on a DEVICE line.
 | |
| -.TP
 | |
| -.B level=
 | |
| -The value is a RAID level.  This is not normally used to
 | |
| -identify an array, but is supported so that the output of
 | |
| -
 | |
| -.B "mdadm \-\-examine \-\-scan"
 | |
| -
 | |
| -can be use directly in the configuration file.
 | |
| -.TP
 | |
| -.B num\-devices=
 | |
| -The value is the number of devices in a complete active array.  As with
 | |
| -.B level=
 | |
| -this is mainly for compatibility with the output of
 | |
| -
 | |
| -.BR "mdadm \-\-examine \-\-scan" .
 | |
| -
 | |
| -.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
 | |
| -.B \-\-monitor
 | |
| -starts or when
 | |
| -.B \-\-oneshot
 | |
| -is used.
 | |
| -
 | |
| -.TP
 | |
| -.B spare\-group=
 | |
| -The value is a textual name for a group of arrays.  All arrays with
 | |
| -the same
 | |
| -.B spare\-group
 | |
| -name are considered to be part of the same group.  The significance of
 | |
| -a group of arrays is that
 | |
| -.I mdadm
 | |
| -will, when monitoring the arrays, move a spare drive from one array in
 | |
| -a group to another array in that group if the first array had a failed
 | |
| -or missing drive but no spare.
 | |
| -
 | |
| -.TP
 | |
| -.B auto=
 | |
| -This option is rarely needed with mdadm-3.0, particularly if use with
 | |
| -the Linux kernel v2.6.28 or later.
 | |
| -It tells
 | |
| -.I mdadm
 | |
| -whether to use partitionable array or non-partitionable arrays and,
 | |
| -in the absence of
 | |
| -.IR udev ,
 | |
| -how many partition devices to create.  From 2.6.28 all md array
 | |
| -devices are partitionable, hence this option is not needed.
 | |
| -
 | |
| -The value of this option can be "yes" or "md" to indicate that a
 | |
| -traditional, non-partitionable md array should be created, or "mdp",
 | |
| -"part" or "partition" to indicate that a partitionable md array (only
 | |
| -available in linux 2.6 and later) should be used.  This later set can
 | |
| -also have a number appended to indicate how many partitions to create
 | |
| -device files for, e.g.
 | |
| -.BR auto=mdp5 .
 | |
| -The default is 4.
 | |
| -
 | |
| -.TP
 | |
| -.B bitmap=
 | |
| -The option specifies a file in which a write-intent bitmap should be
 | |
| -found.  When assembling the array,
 | |
| -.I mdadm
 | |
| -will provide this file to the
 | |
| -.B md
 | |
| -driver as the bitmap file.  This has the same function as the
 | |
| -.B \-\-bitmap\-file
 | |
| -option to
 | |
| -.BR \-\-assemble .
 | |
| -
 | |
| -.TP
 | |
| -.B metadata=
 | |
| -Specify the metadata format that the array has.  This is mainly
 | |
| -recognised for comparability with the output of
 | |
| -.BR "mdadm \-Es" .
 | |
| -
 | |
| -.TP
 | |
| -.B container=
 | |
| -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.
 | |
| -
 | |
| -.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.
 | |
| -.RE
 | |
| -
 | |
| -.TP
 | |
| -.B MAILADDR
 | |
| -The
 | |
| -.B mailaddr
 | |
| -line gives an E-mail address that alerts should be
 | |
| -sent to when
 | |
| -.I mdadm
 | |
| -is running in
 | |
| -.B \-\-monitor
 | |
| -mode (and was given the
 | |
| -.B \-\-scan
 | |
| -option).  There should only be one
 | |
| -.B MAILADDR
 | |
| -line and it should have only one address.  Any subsequent addresses
 | |
| -are silently ignored.
 | |
| -
 | |
| -.TP
 | |
| -.B MAILFROM
 | |
| -The
 | |
| -.B mailfrom
 | |
| -line (which can only be abbreviated to at least 5 characters) gives an
 | |
| -address to appear in the "From" address for alert mails.  This can be
 | |
| -useful if you want to explicitly set a domain, as the default from
 | |
| -address is "root" with no domain.  All words on this line are
 | |
| -catenated with spaces to form the address.
 | |
| -
 | |
| -Note that this value cannot be set via the
 | |
| -.I mdadm
 | |
| -commandline.  It is only settable via the config file.
 | |
| -
 | |
| -.TP
 | |
| -.B PROGRAM
 | |
| -The
 | |
| -.B program
 | |
| -line gives the name of a program to be run when
 | |
| -.B "mdadm \-\-monitor"
 | |
| -detects potentially interesting events on any of the arrays that it
 | |
| -is monitoring.  This program gets run with two or three arguments, they
 | |
| -being the Event, the md device, and possibly the related component
 | |
| -device.
 | |
| -
 | |
| -There should only be one
 | |
| -.B program
 | |
| -line and it should be give only one program.
 | |
| -
 | |
| -
 | |
| -.TP
 | |
| -.B CREATE
 | |
| -The
 | |
| -.B create
 | |
| -line gives default values to be used when creating arrays, new members
 | |
| -of arrays, and device entries for arrays.
 | |
| -These include:
 | |
| -
 | |
| -.RS 4
 | |
| -.TP
 | |
| -.B owner=
 | |
| -.TP
 | |
| -.B group=
 | |
| -These can give user/group ids or names to use instead of system
 | |
| -defaults (root/wheel or root/disk).
 | |
| -.TP
 | |
| -.B mode=
 | |
| -An octal file mode such as 0660 can be given to override the default
 | |
| -of 0600.
 | |
| -.TP
 | |
| -.B auto=
 | |
| -This corresponds to the
 | |
| -.B \-\-auto
 | |
| -flag to mdadm.  Give
 | |
| -.BR yes ,
 | |
| -.BR md ,
 | |
| -.BR mdp ,
 | |
| -.B part
 | |
| -\(em possibly followed by a number of partitions \(em to indicate how
 | |
| -missing device entries should be created.
 | |
| -
 | |
| -.TP
 | |
| -.B metadata=
 | |
| -The name of the metadata format to use if none is explicitly given.
 | |
| -This can be useful to impose a system-wide default of version-1 superblocks.
 | |
| -
 | |
| -.TP
 | |
| -.B symlinks=no
 | |
| -Normally when creating devices in
 | |
| -.B /dev/md/
 | |
| -.I mdadm
 | |
| -will create a matching symlink from
 | |
| -.B /dev/
 | |
| -with a name starting
 | |
| -.B md
 | |
| -or
 | |
| -.BR md_ .
 | |
| -Give
 | |
| -.B symlinks=no
 | |
| -to suppress this symlink creation.
 | |
| -
 | |
| -.TP
 | |
| -.B names=yes
 | |
| -Since Linux 2.6.29 it has been possible to create
 | |
| -.B md
 | |
| -devices with a name like
 | |
| -.B md_home
 | |
| -rather than just a number, like
 | |
| -.BR md3 .
 | |
| -.I mdadm
 | |
| -will use the numeric alternative by default as other tools that interact
 | |
| -with md arrays may expect only numbers.
 | |
| -If
 | |
| -.B names=yes
 | |
| -is given in
 | |
| -.I mdadm.conf
 | |
| -then
 | |
| -.I mdadm
 | |
| -will use a name when appropriate.
 | |
| -If
 | |
| -.B names=no
 | |
| -is given, then non-numeric
 | |
| -.I md
 | |
| -device names will not be used even if the default changes in a future
 | |
| -release of
 | |
| -.IR mdadm .
 | |
| -
 | |
| -.TP
 | |
| -.B bbl=no
 | |
| -By default,
 | |
| -.I mdadm
 | |
| -will reserve space for a bad block list (bbl) on all devices
 | |
| -included in or added to any array that supports them.  Setting
 | |
| -.B bbl=no
 | |
| -will prevent this, so newly added devices will not have a bad
 | |
| -block log.
 | |
| -.RE
 | |
| -
 | |
| -.TP
 | |
| -.B HOMEHOST
 | |
| -The
 | |
| -.B homehost
 | |
| -line gives a default value for the
 | |
| -.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
 | |
| -.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.  This is the default.
 | |
| -
 | |
| -If
 | |
| -.B <ignore>
 | |
| -is given, then a flag is set so that when arrays are being
 | |
| -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 there are other words, or other
 | |
| -.B HOMEHOST
 | |
| -lines, they are silently ignored.
 | |
| -
 | |
| -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 preceded by an underscore to differentiate it
 | |
| -from any possible local name. e.g.
 | |
| -.B /dev/md/1_1
 | |
| -or
 | |
| -.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 sign.
 | |
| -.I all
 | |
| -is usually last.
 | |
| -
 | |
| -When
 | |
| -.I mdadm
 | |
| -is auto-assembling an array, either via
 | |
| -.I \-\-assemble
 | |
| -or
 | |
| -.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
 | |
| -matches anything.
 | |
| -If a match is found that was preceded by a plus sign, the auto
 | |
| -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.  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 ,
 | |
| -.BR 1.x ,
 | |
| -.BR ddf ,
 | |
| -.BR imsm .
 | |
| -
 | |
| -.B AUTO
 | |
| -should be given at most once.  Subsequent lines are silently ignored.
 | |
| -Thus an earlier config file in a config directory will over-ride
 | |
| -the setting in a later config file.
 | |
| -
 | |
| -.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
 | |
| -
 | |
| -Keywords used in the
 | |
| -.I POLICY
 | |
| -line and supported values are:
 | |
| -
 | |
| -.RS 4
 | |
| -.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
 | |
| -.TP
 | |
| -.B type=
 | |
| -either
 | |
| -.B disk
 | |
| -or
 | |
| -.BR part .
 | |
| -.TP
 | |
| -.B action=
 | |
| -include, re-add, spare, spare-same-slot, or force-spare
 | |
| -.TP
 | |
| -.B auto=
 | |
| -yes, no, or homehost.
 | |
| -
 | |
| -.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 and the array has a
 | |
| -write-intent-bitmap to allow the
 | |
| -.B re\-add
 | |
| -functionality.
 | |
| -.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
 | |
| -
 | |
| -.TP
 | |
| -.B PART-POLICY
 | |
| -This is similar to
 | |
| -.B POLICY
 | |
| -and accepts the same keyword assignments.  It allows a consistent set
 | |
| -of policies to applied to each of the partitions of a device.
 | |
| -
 | |
| -A
 | |
| -.B PART-POLICY
 | |
| -line should set
 | |
| -.I type=disk
 | |
| -and identify the path to one or more disk devices.  Each partition on
 | |
| -these disks will be treated according to the
 | |
| -.I action=
 | |
| -setting  from this line.  If a
 | |
| -.I domain
 | |
| -is set in the line, then the domain associated with each patition will
 | |
| -be based on the domain, but with
 | |
| -.RB \(dq -part N\(dq
 | |
| -appended, when N is the partition number for the partition that was
 | |
| -found.
 | |
| -
 | |
| -.TP
 | |
| -.B SYSFS
 | |
| -The
 | |
| -.B SYSFS
 | |
| -line lists custom values of MD device's sysfs attributes which will be
 | |
| -stored in sysfs after the array is assembled. Multiple lines are allowed and each
 | |
| -line has to contain the uuid or the name of the device to which it relates.
 | |
| -.RS 4
 | |
| -.TP
 | |
| -.B uuid=
 | |
| -hexadecimal identifier of MD device. This has to match the uuid stored in the
 | |
| -superblock.
 | |
| -.TP
 | |
| -.B name=
 | |
| -name of the MD device as was given to
 | |
| -.I mdadm
 | |
| -when the array was created. It will be ignored if
 | |
| -.B uuid
 | |
| -is not empty.
 | |
| -.RE
 | |
| -
 | |
| -.TP
 | |
| -.B MONITORDELAY
 | |
| -The
 | |
| -.B monitordelay
 | |
| -line gives a delay in seconds
 | |
| -.I mdadm
 | |
| -shall wait before pooling md arrays
 | |
| -when
 | |
| -.I mdadm
 | |
| -is running in
 | |
| -.B \-\-monitor
 | |
| -mode.
 | |
| -.B \-d/\-\-delay
 | |
| -command line argument takes precedence over the config file
 | |
| -
 | |
| -.SH EXAMPLE
 | |
| -DEVICE /dev/sd[bcdjkl]1
 | |
| -.br
 | |
| -DEVICE /dev/hda1 /dev/hdb1
 | |
| -
 | |
| -# /dev/md0 is known by its UUID.
 | |
| -.br
 | |
| -ARRAY /dev/md0 UUID=3aaa0122:29827cfa:5331ad66:ca767371
 | |
| -.br
 | |
| -# /dev/md1 contains all devices with a minor number of
 | |
| -.br
 | |
| -#   1 in the superblock.
 | |
| -.br
 | |
| -ARRAY /dev/md1 superminor=1
 | |
| -.br
 | |
| -# /dev/md2 is made from precisely these two devices
 | |
| -.br
 | |
| -ARRAY /dev/md2 devices=/dev/hda1,/dev/hdb1
 | |
| -
 | |
| -# /dev/md4 and /dev/md5 are a spare-group and spares
 | |
| -.br
 | |
| -#  can be moved between them
 | |
| -.br
 | |
| -ARRAY /dev/md4 uuid=b23f3c6d:aec43a9f:fd65db85:369432df
 | |
| -.br
 | |
| -           spare\-group=group1
 | |
| -.br
 | |
| -ARRAY /dev/md5 uuid=19464854:03f71b1b:e0df2edd:246cc977
 | |
| -.br
 | |
| -           spare\-group=group1
 | |
| -.br
 | |
| -# /dev/md/home is created if need to be a partitionable md array
 | |
| -.br
 | |
| -# any spare device number is allocated.
 | |
| -.br
 | |
| -ARRAY /dev/md/home UUID=9187a482:5dde19d9:eea3cc4a:d646ab8b
 | |
| -.br
 | |
| -           auto=part
 | |
| -.br
 | |
| -# The name of this array contains a space.
 | |
| -.br
 | |
| -ARRAY /dev/md9 name='Data Storage'
 | |
| -.sp
 | |
| -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
 | |
| -.br
 | |
| -CREATE group=system mode=0640 auto=part\-8
 | |
| -.br
 | |
| -HOMEHOST <system>
 | |
| -.br
 | |
| -AUTO +1.x homehost \-all
 | |
| -.br
 | |
| -SYSFS name=/dev/md/raid5 group_thread_cnt=4 sync_speed_max=1000000
 | |
| -.br
 | |
| -SYSFS uuid=bead5eb6:31c17a27:da120ba2:7dfda40d group_thread_cnt=4
 | |
| -sync_speed_max=1000000
 | |
| -.br
 | |
| -MONITORDELAY 60
 | |
| -
 | |
| -.SH SEE ALSO
 | |
| -.BR mdadm (8),
 | |
| -.BR md (4).
 | |
| diff --git a/mdadm.conf.5.in b/mdadm.conf.5.in
 | |
| new file mode 100644
 | |
| index 00000000..83edd008
 | |
| --- /dev/null
 | |
| +++ b/mdadm.conf.5.in
 | |
| @@ -0,0 +1,706 @@
 | |
| +.\" Copyright Neil Brown and others.
 | |
| +.\"   This program is free software; you can redistribute it and/or modify
 | |
| +.\"   it under the terms of the GNU General Public License as published by
 | |
| +.\"   the Free Software Foundation; either version 2 of the License, or
 | |
| +.\"   (at your option) any later version.
 | |
| +.\" See file COPYING in distribution for details.
 | |
| +.TH MDADM.CONF 5
 | |
| +.SH NAME
 | |
| +mdadm.conf \- configuration for management of Software RAID with mdadm
 | |
| +.SH SYNOPSIS
 | |
| +{CONFFILE}
 | |
| +.SH DESCRIPTION
 | |
| +.PP
 | |
| +.I mdadm
 | |
| +is a tool for creating, managing, and monitoring RAID devices using the
 | |
| +.B md
 | |
| +driver in Linux.
 | |
| +.PP
 | |
| +Some common tasks, such as assembling all arrays, can be simplified
 | |
| +by describing the devices and arrays in this configuration file.
 | |
| +
 | |
| +.SS SYNTAX
 | |
| +The file should be seen as a collection of words separated by white
 | |
| +space (space, tab, or newline).
 | |
| +Any word that beings with a hash sign (#) starts a comment and that
 | |
| +word together with the remainder of the line is ignored.
 | |
| +
 | |
| +Spaces can be included in a word using quotation characters.  Either
 | |
| +single quotes
 | |
| +.RB ( ' )
 | |
| +or double quotes (\fB"\fP)
 | |
| +may be used.  All the characters from one quotation character to
 | |
| +next identical character are protected and will not be used to
 | |
| +separate words to start new quoted strings.  To include a single quote
 | |
| +it must be between double quotes.  To include a double quote it must
 | |
| +be between single quotes.
 | |
| +
 | |
| +Any line that starts with white space (space or tab) is treated as
 | |
| +though it were a continuation of the previous line.
 | |
| +
 | |
| +Empty lines are ignored, but otherwise each (non continuation) line
 | |
| +must start with a keyword as listed below.  The keywords are case
 | |
| +insensitive and can be abbreviated to 3 characters.
 | |
| +
 | |
| +The keywords are:
 | |
| +.TP
 | |
| +.B DEVICE
 | |
| +A
 | |
| +.B device
 | |
| +line lists the devices (whole devices or partitions) that might contain
 | |
| +a component of an MD array.  When looking for the components of an
 | |
| +array,
 | |
| +.I mdadm
 | |
| +will scan these devices (or any devices listed on the command line).
 | |
| +
 | |
| +The
 | |
| +.B device
 | |
| +line may contain a number of different devices (separated by spaces)
 | |
| +and each device name can contain wild cards as defined by
 | |
| +.BR glob (7).
 | |
| +
 | |
| +Also, there may be several device lines present in the file.
 | |
| +
 | |
| +Alternatively, a
 | |
| +.B device
 | |
| +line can contain either or both of the  words
 | |
| +.B containers
 | |
| +and
 | |
| +.BR partitions .
 | |
| +The word
 | |
| +.B containers
 | |
| +will cause
 | |
| +.I mdadm
 | |
| +to look for assembled CONTAINER arrays and included them as a source
 | |
| +for assembling further arrays.
 | |
| +
 | |
| +The word
 | |
| +.I partitions
 | |
| +will cause
 | |
| +.I mdadm
 | |
| +to read
 | |
| +.I /proc/partitions
 | |
| +and include all devices and partitions found therein.
 | |
| +.I mdadm
 | |
| +does not use the names from
 | |
| +.I /proc/partitions
 | |
| +but only the major and minor device numbers.  It scans
 | |
| +.I /dev
 | |
| +to find the name that matches the numbers.
 | |
| +
 | |
| +If no DEVICE line is present, then "DEVICE partitions containers" is assumed.
 | |
| +
 | |
| +For example:
 | |
| +.IP
 | |
| +DEVICE /dev/hda* /dev/hdc*
 | |
| +.br
 | |
| +DEV    /dev/sd*
 | |
| +.br
 | |
| +DEVICE /dev/disk/by-path/pci*
 | |
| +.br
 | |
| +DEVICE partitions
 | |
| +
 | |
| +.TP
 | |
| +.B ARRAY
 | |
| +The ARRAY lines identify actual arrays.  The second word on the line
 | |
| +may be the name of the device where the array is normally
 | |
| +assembled, such as
 | |
| +.B /dev/md1
 | |
| +or
 | |
| +.BR /dev/md/backup .
 | |
| +If the name does not start with a slash
 | |
| +.RB (' / '),
 | |
| +it is treated as being in
 | |
| +.BR /dev/md/ .
 | |
| +Alternately the word
 | |
| +.B <ignore>
 | |
| +(complete with angle brackets) can be given in which case any array
 | |
| +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.
 | |
| +
 | |
| +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=
 | |
| +The value should be a 128 bit uuid in hexadecimal, with punctuation
 | |
| +interspersed if desired.  This must match the uuid stored in the
 | |
| +superblock.
 | |
| +.TP
 | |
| +.B name=
 | |
| +The value should be a simple textual name as was given to
 | |
| +.I mdadm
 | |
| +when the array was created.  This must match the name stored in the
 | |
| +superblock on a device for that device to be included in the array.
 | |
| +Not all superblock formats support names.
 | |
| +.TP
 | |
| +.B super\-minor=
 | |
| +The value is an integer which indicates the minor number that was
 | |
| +stored in the superblock when the array was created. When an array is
 | |
| +created as /dev/mdX, then the minor number X is stored.
 | |
| +.TP
 | |
| +.B devices=
 | |
| +The value is a comma separated list of device names or device name
 | |
| +patterns.
 | |
| +Only devices with names which match one entry in the list will be used
 | |
| +to assemble the array.  Note that the devices
 | |
| +listed there must also be listed on a DEVICE line.
 | |
| +.TP
 | |
| +.B level=
 | |
| +The value is a RAID level.  This is not normally used to
 | |
| +identify an array, but is supported so that the output of
 | |
| +
 | |
| +.B "mdadm \-\-examine \-\-scan"
 | |
| +
 | |
| +can be use directly in the configuration file.
 | |
| +.TP
 | |
| +.B num\-devices=
 | |
| +The value is the number of devices in a complete active array.  As with
 | |
| +.B level=
 | |
| +this is mainly for compatibility with the output of
 | |
| +
 | |
| +.BR "mdadm \-\-examine \-\-scan" .
 | |
| +
 | |
| +.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
 | |
| +.B \-\-monitor
 | |
| +starts or when
 | |
| +.B \-\-oneshot
 | |
| +is used.
 | |
| +
 | |
| +.TP
 | |
| +.B spare\-group=
 | |
| +The value is a textual name for a group of arrays.  All arrays with
 | |
| +the same
 | |
| +.B spare\-group
 | |
| +name are considered to be part of the same group.  The significance of
 | |
| +a group of arrays is that
 | |
| +.I mdadm
 | |
| +will, when monitoring the arrays, move a spare drive from one array in
 | |
| +a group to another array in that group if the first array had a failed
 | |
| +or missing drive but no spare.
 | |
| +
 | |
| +.TP
 | |
| +.B auto=
 | |
| +This option is rarely needed with mdadm-3.0, particularly if use with
 | |
| +the Linux kernel v2.6.28 or later.
 | |
| +It tells
 | |
| +.I mdadm
 | |
| +whether to use partitionable array or non-partitionable arrays and,
 | |
| +in the absence of
 | |
| +.IR udev ,
 | |
| +how many partition devices to create.  From 2.6.28 all md array
 | |
| +devices are partitionable, hence this option is not needed.
 | |
| +
 | |
| +The value of this option can be "yes" or "md" to indicate that a
 | |
| +traditional, non-partitionable md array should be created, or "mdp",
 | |
| +"part" or "partition" to indicate that a partitionable md array (only
 | |
| +available in linux 2.6 and later) should be used.  This later set can
 | |
| +also have a number appended to indicate how many partitions to create
 | |
| +device files for, e.g.
 | |
| +.BR auto=mdp5 .
 | |
| +The default is 4.
 | |
| +
 | |
| +.TP
 | |
| +.B bitmap=
 | |
| +The option specifies a file in which a write-intent bitmap should be
 | |
| +found.  When assembling the array,
 | |
| +.I mdadm
 | |
| +will provide this file to the
 | |
| +.B md
 | |
| +driver as the bitmap file.  This has the same function as the
 | |
| +.B \-\-bitmap\-file
 | |
| +option to
 | |
| +.BR \-\-assemble .
 | |
| +
 | |
| +.TP
 | |
| +.B metadata=
 | |
| +Specify the metadata format that the array has.  This is mainly
 | |
| +recognised for comparability with the output of
 | |
| +.BR "mdadm \-Es" .
 | |
| +
 | |
| +.TP
 | |
| +.B container=
 | |
| +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.
 | |
| +
 | |
| +.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.
 | |
| +.RE
 | |
| +
 | |
| +.TP
 | |
| +.B MAILADDR
 | |
| +The
 | |
| +.B mailaddr
 | |
| +line gives an E-mail address that alerts should be
 | |
| +sent to when
 | |
| +.I mdadm
 | |
| +is running in
 | |
| +.B \-\-monitor
 | |
| +mode (and was given the
 | |
| +.B \-\-scan
 | |
| +option).  There should only be one
 | |
| +.B MAILADDR
 | |
| +line and it should have only one address.  Any subsequent addresses
 | |
| +are silently ignored.
 | |
| +
 | |
| +.TP
 | |
| +.B MAILFROM
 | |
| +The
 | |
| +.B mailfrom
 | |
| +line (which can only be abbreviated to at least 5 characters) gives an
 | |
| +address to appear in the "From" address for alert mails.  This can be
 | |
| +useful if you want to explicitly set a domain, as the default from
 | |
| +address is "root" with no domain.  All words on this line are
 | |
| +catenated with spaces to form the address.
 | |
| +
 | |
| +Note that this value cannot be set via the
 | |
| +.I mdadm
 | |
| +commandline.  It is only settable via the config file.
 | |
| +
 | |
| +.TP
 | |
| +.B PROGRAM
 | |
| +The
 | |
| +.B program
 | |
| +line gives the name of a program to be run when
 | |
| +.B "mdadm \-\-monitor"
 | |
| +detects potentially interesting events on any of the arrays that it
 | |
| +is monitoring.  This program gets run with two or three arguments, they
 | |
| +being the Event, the md device, and possibly the related component
 | |
| +device.
 | |
| +
 | |
| +There should only be one
 | |
| +.B program
 | |
| +line and it should be give only one program.
 | |
| +
 | |
| +
 | |
| +.TP
 | |
| +.B CREATE
 | |
| +The
 | |
| +.B create
 | |
| +line gives default values to be used when creating arrays, new members
 | |
| +of arrays, and device entries for arrays.
 | |
| +These include:
 | |
| +
 | |
| +.RS 4
 | |
| +.TP
 | |
| +.B owner=
 | |
| +.TP
 | |
| +.B group=
 | |
| +These can give user/group ids or names to use instead of system
 | |
| +defaults (root/wheel or root/disk).
 | |
| +.TP
 | |
| +.B mode=
 | |
| +An octal file mode such as 0660 can be given to override the default
 | |
| +of 0600.
 | |
| +.TP
 | |
| +.B auto=
 | |
| +This corresponds to the
 | |
| +.B \-\-auto
 | |
| +flag to mdadm.  Give
 | |
| +.BR yes ,
 | |
| +.BR md ,
 | |
| +.BR mdp ,
 | |
| +.B part
 | |
| +\(em possibly followed by a number of partitions \(em to indicate how
 | |
| +missing device entries should be created.
 | |
| +
 | |
| +.TP
 | |
| +.B metadata=
 | |
| +The name of the metadata format to use if none is explicitly given.
 | |
| +This can be useful to impose a system-wide default of version-1 superblocks.
 | |
| +
 | |
| +.TP
 | |
| +.B symlinks=no
 | |
| +Normally when creating devices in
 | |
| +.B /dev/md/
 | |
| +.I mdadm
 | |
| +will create a matching symlink from
 | |
| +.B /dev/
 | |
| +with a name starting
 | |
| +.B md
 | |
| +or
 | |
| +.BR md_ .
 | |
| +Give
 | |
| +.B symlinks=no
 | |
| +to suppress this symlink creation.
 | |
| +
 | |
| +.TP
 | |
| +.B names=yes
 | |
| +Since Linux 2.6.29 it has been possible to create
 | |
| +.B md
 | |
| +devices with a name like
 | |
| +.B md_home
 | |
| +rather than just a number, like
 | |
| +.BR md3 .
 | |
| +.I mdadm
 | |
| +will use the numeric alternative by default as other tools that interact
 | |
| +with md arrays may expect only numbers.
 | |
| +If
 | |
| +.B names=yes
 | |
| +is given in
 | |
| +.I mdadm.conf
 | |
| +then
 | |
| +.I mdadm
 | |
| +will use a name when appropriate.
 | |
| +If
 | |
| +.B names=no
 | |
| +is given, then non-numeric
 | |
| +.I md
 | |
| +device names will not be used even if the default changes in a future
 | |
| +release of
 | |
| +.IR mdadm .
 | |
| +
 | |
| +.TP
 | |
| +.B bbl=no
 | |
| +By default,
 | |
| +.I mdadm
 | |
| +will reserve space for a bad block list (bbl) on all devices
 | |
| +included in or added to any array that supports them.  Setting
 | |
| +.B bbl=no
 | |
| +will prevent this, so newly added devices will not have a bad
 | |
| +block log.
 | |
| +.RE
 | |
| +
 | |
| +.TP
 | |
| +.B HOMEHOST
 | |
| +The
 | |
| +.B homehost
 | |
| +line gives a default value for the
 | |
| +.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
 | |
| +.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.  This is the default.
 | |
| +
 | |
| +If
 | |
| +.B <ignore>
 | |
| +is given, then a flag is set so that when arrays are being
 | |
| +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 there are other words, or other
 | |
| +.B HOMEHOST
 | |
| +lines, they are silently ignored.
 | |
| +
 | |
| +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 preceded by an underscore to differentiate it
 | |
| +from any possible local name. e.g.
 | |
| +.B /dev/md/1_1
 | |
| +or
 | |
| +.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 sign.
 | |
| +.I all
 | |
| +is usually last.
 | |
| +
 | |
| +When
 | |
| +.I mdadm
 | |
| +is auto-assembling an array, either via
 | |
| +.I \-\-assemble
 | |
| +or
 | |
| +.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
 | |
| +matches anything.
 | |
| +If a match is found that was preceded by a plus sign, the auto
 | |
| +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.  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 ,
 | |
| +.BR 1.x ,
 | |
| +.BR ddf ,
 | |
| +.BR imsm .
 | |
| +
 | |
| +.B AUTO
 | |
| +should be given at most once.  Subsequent lines are silently ignored.
 | |
| +Thus an earlier config file in a config directory will over-ride
 | |
| +the setting in a later config file.
 | |
| +
 | |
| +.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
 | |
| +
 | |
| +Keywords used in the
 | |
| +.I POLICY
 | |
| +line and supported values are:
 | |
| +
 | |
| +.RS 4
 | |
| +.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
 | |
| +.TP
 | |
| +.B type=
 | |
| +either
 | |
| +.B disk
 | |
| +or
 | |
| +.BR part .
 | |
| +.TP
 | |
| +.B action=
 | |
| +include, re-add, spare, spare-same-slot, or force-spare
 | |
| +.TP
 | |
| +.B auto=
 | |
| +yes, no, or homehost.
 | |
| +
 | |
| +.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 and the array has a
 | |
| +write-intent-bitmap to allow the
 | |
| +.B re\-add
 | |
| +functionality.
 | |
| +.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
 | |
| +
 | |
| +.TP
 | |
| +.B PART-POLICY
 | |
| +This is similar to
 | |
| +.B POLICY
 | |
| +and accepts the same keyword assignments.  It allows a consistent set
 | |
| +of policies to applied to each of the partitions of a device.
 | |
| +
 | |
| +A
 | |
| +.B PART-POLICY
 | |
| +line should set
 | |
| +.I type=disk
 | |
| +and identify the path to one or more disk devices.  Each partition on
 | |
| +these disks will be treated according to the
 | |
| +.I action=
 | |
| +setting  from this line.  If a
 | |
| +.I domain
 | |
| +is set in the line, then the domain associated with each patition will
 | |
| +be based on the domain, but with
 | |
| +.RB \(dq -part N\(dq
 | |
| +appended, when N is the partition number for the partition that was
 | |
| +found.
 | |
| +
 | |
| +.TP
 | |
| +.B SYSFS
 | |
| +The
 | |
| +.B SYSFS
 | |
| +line lists custom values of MD device's sysfs attributes which will be
 | |
| +stored in sysfs after the array is assembled. Multiple lines are allowed and each
 | |
| +line has to contain the uuid or the name of the device to which it relates.
 | |
| +.RS 4
 | |
| +.TP
 | |
| +.B uuid=
 | |
| +hexadecimal identifier of MD device. This has to match the uuid stored in the
 | |
| +superblock.
 | |
| +.TP
 | |
| +.B name=
 | |
| +name of the MD device as was given to
 | |
| +.I mdadm
 | |
| +when the array was created. It will be ignored if
 | |
| +.B uuid
 | |
| +is not empty.
 | |
| +.RE
 | |
| +
 | |
| +.TP
 | |
| +.B MONITORDELAY
 | |
| +The
 | |
| +.B monitordelay
 | |
| +line gives a delay in seconds
 | |
| +.I mdadm
 | |
| +shall wait before pooling md arrays
 | |
| +when
 | |
| +.I mdadm
 | |
| +is running in
 | |
| +.B \-\-monitor
 | |
| +mode.
 | |
| +.B \-d/\-\-delay
 | |
| +command line argument takes precedence over the config file
 | |
| +
 | |
| +.SH EXAMPLE
 | |
| +DEVICE /dev/sd[bcdjkl]1
 | |
| +.br
 | |
| +DEVICE /dev/hda1 /dev/hdb1
 | |
| +
 | |
| +# /dev/md0 is known by its UUID.
 | |
| +.br
 | |
| +ARRAY /dev/md0 UUID=3aaa0122:29827cfa:5331ad66:ca767371
 | |
| +.br
 | |
| +# /dev/md1 contains all devices with a minor number of
 | |
| +.br
 | |
| +#   1 in the superblock.
 | |
| +.br
 | |
| +ARRAY /dev/md1 superminor=1
 | |
| +.br
 | |
| +# /dev/md2 is made from precisely these two devices
 | |
| +.br
 | |
| +ARRAY /dev/md2 devices=/dev/hda1,/dev/hdb1
 | |
| +
 | |
| +# /dev/md4 and /dev/md5 are a spare-group and spares
 | |
| +.br
 | |
| +#  can be moved between them
 | |
| +.br
 | |
| +ARRAY /dev/md4 uuid=b23f3c6d:aec43a9f:fd65db85:369432df
 | |
| +.br
 | |
| +           spare\-group=group1
 | |
| +.br
 | |
| +ARRAY /dev/md5 uuid=19464854:03f71b1b:e0df2edd:246cc977
 | |
| +.br
 | |
| +           spare\-group=group1
 | |
| +.br
 | |
| +# /dev/md/home is created if need to be a partitionable md array
 | |
| +.br
 | |
| +# any spare device number is allocated.
 | |
| +.br
 | |
| +ARRAY /dev/md/home UUID=9187a482:5dde19d9:eea3cc4a:d646ab8b
 | |
| +.br
 | |
| +           auto=part
 | |
| +.br
 | |
| +# The name of this array contains a space.
 | |
| +.br
 | |
| +ARRAY /dev/md9 name='Data Storage'
 | |
| +.sp
 | |
| +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
 | |
| +.br
 | |
| +CREATE group=system mode=0640 auto=part\-8
 | |
| +.br
 | |
| +HOMEHOST <system>
 | |
| +.br
 | |
| +AUTO +1.x homehost \-all
 | |
| +.br
 | |
| +SYSFS name=/dev/md/raid5 group_thread_cnt=4 sync_speed_max=1000000
 | |
| +.br
 | |
| +SYSFS uuid=bead5eb6:31c17a27:da120ba2:7dfda40d group_thread_cnt=4
 | |
| +sync_speed_max=1000000
 | |
| +.br
 | |
| +MONITORDELAY 60
 | |
| +
 | |
| +.SH SEE ALSO
 | |
| +.BR mdadm (8),
 | |
| +.BR md (4).
 | |
| -- 
 | |
| 2.38.1
 | |
| 
 |