]> git.ipfire.org Git - thirdparty/mdadm.git/blame - mdadm.8.in
Replace error prone signal() with sigaction()
[thirdparty/mdadm.git] / mdadm.8.in
CommitLineData
52826846 1.\" -*- nroff -*-
e43d0cda
NB
2.\" Copyright Neil Brown and others.
3.\" This program is free software; you can redistribute it and/or modify
4.\" it under the terms of the GNU General Public License as published by
5.\" the Free Software Foundation; either version 2 of the License, or
6.\" (at your option) any later version.
7.\" See file COPYING in distribution for details.
e30ca260 8.TH MDADM 8 "" v4.2
52826846 9.SH NAME
9a9dab36 10mdadm \- manage MD devices
cd29a5c8 11.I aka
93e790af 12Linux Software RAID
cd29a5c8 13
52826846
NB
14.SH SYNOPSIS
15
e0d19036 16.BI mdadm " [mode] <raiddevice> [options] <component-devices>"
52826846 17
2ae555c3 18.SH DESCRIPTION
52826846 19RAID devices are virtual devices created from two or more
e0fe762a 20real block devices. This allows multiple devices (typically disk
35cc5be4 21drives or partitions thereof) to be combined into a single device to
cd29a5c8 22hold (for example) a single filesystem.
2d465520 23Some RAID levels include redundancy and so can survive some degree of
cd29a5c8
NB
24device failure.
25
2d465520
NB
26Linux Software RAID devices are implemented through the md (Multiple
27Devices) device driver.
cd29a5c8
NB
28
29Currently, Linux supports
30.B LINEAR
31md devices,
32.B RAID0
33(striping),
34.B RAID1
35(mirroring),
d013a55e
NB
36.BR RAID4 ,
37.BR RAID5 ,
98c6faba 38.BR RAID6 ,
1a7dfc35 39.BR RAID10 ,
b5e64645 40.BR MULTIPATH ,
90c8d668 41.BR FAULTY ,
cd29a5c8 42and
90c8d668 43.BR CONTAINER .
d013a55e 44
a9d69660
NB
45.B MULTIPATH
46is not a Software RAID mechanism, but does involve
93e790af 47multiple devices:
d013a55e 48each device is a path to one common physical storage device.
9652457e
N
49New installations should not use md/multipath as it is not well
50supported and has no ongoing development. Use the Device Mapper based
51multipath-tools instead.
d013a55e 52
a9d69660
NB
53.B FAULTY
54is also not true RAID, and it only involves one device. It
b5e64645 55provides a layer over a true device that can be used to inject faults.
52826846 56
4cce4069 57.B CONTAINER
8fd8d9c4
N
58is different again. A
59.B CONTAINER
60is a collection of devices that are
90c8d668
N
61managed as a set. This is similar to the set of devices connected to
62a hardware RAID controller. The set of devices may contain a number
9652457e 63of different RAID arrays each utilising some (or all) of the blocks from a
90c8d668 64number of the devices in the set. For example, two devices in a 5-device set
9652457e 65might form a RAID1 using the whole devices. The remaining three might
90c8d668
N
66have a RAID5 over the first half of each device, and a RAID0 over the
67second half.
68
8fd8d9c4
N
69With a
70.BR CONTAINER ,
71there is one set of metadata that describes all of
72the arrays in the container. So when
73.I mdadm
74creates a
75.B CONTAINER
9652457e
N
76device, the device just represents the metadata. Other normal arrays (RAID1
77etc) can be created inside the container.
52826846
NB
78
79.SH MODES
8382f19b 80mdadm has several major modes of operation:
cd29a5c8
NB
81.TP
82.B Assemble
93e790af 83Assemble the components of a previously created
e0fe762a 84array into an active array. Components can be explicitly given
2ae555c3 85or can be searched for.
51ac42e3 86.I mdadm
cd29a5c8
NB
87checks that the components
88do form a bona fide array, and can, on request, fiddle superblock
89information so as to assemble a faulty array.
90
91.TP
92.B Build
e0fe762a 93Build an array that doesn't have per-device metadata (superblocks). For these
a9d69660
NB
94sorts of arrays,
95.I mdadm
96cannot differentiate between initial creation and subsequent assembly
97of an array. It also cannot perform any checks that appropriate
93e790af 98components have been requested. Because of this, the
a9d69660
NB
99.B Build
100mode should only be used together with a complete understanding of
101what you are doing.
cd29a5c8
NB
102
103.TP
104.B Create
e0fe762a
N
105Create a new array with per-device metadata (superblocks).
106Appropriate metadata is written to each device, and then the array
107comprising those devices is activated. A 'resync' process is started
108to make sure that the array is consistent (e.g. both sides of a mirror
109contain the same data) but the content of the device is left otherwise
110untouched.
111The array can be used as soon as it has been created. There is no
112need to wait for the initial resync to finish.
cd29a5c8 113
cd29a5c8
NB
114.TP
115.B "Follow or Monitor"
5787fa49 116Monitor one or more md devices and act on any state changes. This is
e0fe762a
N
117only meaningful for RAID1, 4, 5, 6, 10 or multipath arrays, as
118only these have interesting state. RAID0 or Linear never have
98c6faba 119missing, spare, or failed drives, so there is nothing to monitor.
5787fa49 120
dd0781e5
NB
121.TP
122.B "Grow"
123Grow (or shrink) an array, or otherwise reshape it in some way.
124Currently supported growth options including changing the active size
c64881d7
N
125of component devices and changing the number of active devices in
126Linear and RAID levels 0/1/4/5/6,
127changing the RAID level between 0, 1, 5, and 6, and between 0 and 10,
17790db6 128changing the chunk size and layout for RAID 0,4,5,6,10 as well as adding or
860f11ed 129removing a write-intent bitmap and changing the array's consistency policy.
cd29a5c8 130
8382f19b
NB
131.TP
132.B "Incremental Assembly"
133Add a single device to an appropriate array. If the addition of the
134device makes the array runnable, the array will be started.
135This provides a convenient interface to a
136.I hot-plug
137system. As each device is detected,
138.I mdadm
139has a chance to include it in some array as appropriate.
29ba4804
N
140Optionally, when the
141.I \-\-fail
142flag is passed in we will remove the device from any active array
143instead of adding it.
9652457e 144
8fd8d9c4
N
145If a
146.B CONTAINER
147is passed to
148.I mdadm
149in this mode, then any arrays within that container will be assembled
150and started.
8382f19b 151
2ae555c3
NB
152.TP
153.B Manage
154This is for doing things to specific components of an array such as
155adding new spares and removing faulty devices.
156
157.TP
158.B Misc
159This is an 'everything else' mode that supports operations on active
160arrays, operations on component devices such as erasing old superblocks, and
161information gathering operations.
e43d0cda
NB
162.\"This mode allows operations on independent devices such as examine MD
163.\"superblocks, erasing old superblocks and stopping active arrays.
2ae555c3 164
1f48664b
NB
165.TP
166.B Auto-detect
167This mode does not act on a specific device or array, but rather it
168requests the Linux Kernel to activate any auto-detected arrays.
52826846
NB
169.SH OPTIONS
170
2ae555c3 171.SH Options for selecting a mode are:
52826846 172
cd29a5c8 173.TP
7e23fc43 174.BR \-A ", " \-\-assemble
2d465520 175Assemble a pre-existing array.
52826846 176
cd29a5c8 177.TP
7e23fc43 178.BR \-B ", " \-\-build
cd29a5c8 179Build a legacy array without superblocks.
52826846 180
cd29a5c8 181.TP
7e23fc43 182.BR \-C ", " \-\-create
cd29a5c8 183Create a new array.
52826846 184
cd29a5c8 185.TP
7e23fc43 186.BR \-F ", " \-\-follow ", " \-\-monitor
cd29a5c8
NB
187Select
188.B Monitor
189mode.
52826846 190
dd0781e5 191.TP
7e23fc43 192.BR \-G ", " \-\-grow
dd0781e5 193Change the size or shape of an active array.
8382f19b
NB
194
195.TP
1f48664b 196.BR \-I ", " \-\-incremental
29ba4804 197Add/remove a single device to/from an appropriate array, and possibly start the array.
8382f19b 198
1f48664b
NB
199.TP
200.B \-\-auto-detect
201Request that the kernel starts any auto-detected arrays. This can only
202work if
203.I md
204is compiled into the kernel \(em not if it is a module.
205Arrays can be auto-detected by the kernel if all the components are in
206primary MS-DOS partitions with partition type
e0fe762a
N
207.BR FD ,
208and all use v0.90 metadata.
1f48664b
NB
209In-kernel autodetect is not recommended for new installations. Using
210.I mdadm
211to detect and assemble arrays \(em possibly in an
212.I initrd
213\(em is substantially more flexible and should be preferred.
214
2ae555c3
NB
215.P
216If a device is given before any options, or if the first option is
4a984120 217one of
7e23fc43 218.BR \-\-add ,
f33a71f1
N
219.BR \-\-re\-add ,
220.BR \-\-add\-spare ,
7e23fc43 221.BR \-\-fail ,
7e23fc43 222.BR \-\-remove ,
70c55e36
N
223or
224.BR \-\-replace ,
e0fe762a 225then the MANAGE mode is assumed.
2ae555c3
NB
226Anything other than these will cause the
227.B Misc
228mode to be assumed.
dd0781e5 229
2ae555c3 230.SH Options that are not mode-specific are:
e793c2e5 231
cd29a5c8 232.TP
7e23fc43 233.BR \-h ", " \-\-help
a9d69660 234Display general help message or, after one of the above options, a
93e790af 235mode-specific help message.
56eedc1a
NB
236
237.TP
7e23fc43 238.B \-\-help\-options
56eedc1a
NB
239Display more detailed help about command line parsing and some commonly
240used options.
52826846 241
cd29a5c8 242.TP
7e23fc43 243.BR \-V ", " \-\-version
9a9dab36 244Print version information for mdadm.
52826846 245
cd29a5c8 246.TP
7e23fc43 247.BR \-v ", " \-\-verbose
22892d56
NB
248Be more verbose about what is happening. This can be used twice to be
249extra-verbose.
a9d69660 250The extra verbosity currently only affects
7e23fc43 251.B \-\-detail \-\-scan
22892d56 252and
7e23fc43 253.BR "\-\-examine \-\-scan" .
52826846 254
dab6685f 255.TP
7e23fc43 256.BR \-q ", " \-\-quiet
dab6685f 257Avoid printing purely informative messages. With this,
51ac42e3 258.I mdadm
dab6685f
NB
259will be silent unless there is something really important to report.
260
08ca2adf 261
e0d19036 262.TP
7e23fc43 263.BR \-f ", " \-\-force
93e790af 264Be more forceful about certain operations. See the various modes for
e0d19036
NB
265the exact meaning of this option in different contexts.
266
267.TP
7e23fc43 268.BR \-c ", " \-\-config=
9dc70cbc
N
269Specify the config file or directory. Default is to use
270.B /etc/mdadm.conf
271and
272.BR /etc/mdadm.conf.d ,
273or if those are missing then
274.B /etc/mdadm/mdadm.conf
275and
276.BR /etc/mdadm/mdadm.conf.d .
5787fa49 277If the config file given is
93e790af 278.B "partitions"
5787fa49
NB
279then nothing will be read, but
280.I mdadm
281will act as though the config file contained exactly
9dc70cbc
N
282.br
283.B " DEVICE partitions containers"
284.br
5787fa49
NB
285and will read
286.B /proc/partitions
8fd8d9c4
N
287to find a list of devices to scan, and
288.B /proc/mdstat
289to find a list of containers to examine.
d013a55e 290If the word
93e790af 291.B "none"
d013a55e
NB
292is given for the config file, then
293.I mdadm
294will act as though the config file were empty.
e0d19036 295
9dc70cbc
N
296If the name given is of a directory, then
297.I mdadm
298will collect all the files contained in the directory with a name ending
299in
300.BR .conf ,
301sort them lexically, and process all of those files as config files.
302
e0d19036 303.TP
7e23fc43 304.BR \-s ", " \-\-scan
93e790af 305Scan config file or
e0d19036
NB
306.B /proc/mdstat
307for missing information.
308In general, this option gives
51ac42e3 309.I mdadm
93e790af
SW
310permission to get any missing information (like component devices,
311array devices, array identities, and alert destination) from the
312configuration file (see previous option);
313one exception is MISC mode when using
7e23fc43 314.B \-\-detail
e0d19036 315or
93e790af 316.B \-\-stop,
e0d19036 317in which case
7e23fc43 318.B \-\-scan
e0d19036
NB
319says to get a list of array devices from
320.BR /proc/mdstat .
321
570c0542 322.TP
d16c7af6 323.BR \-e ", " \-\-metadata=
e0fe762a 324Declare the style of RAID metadata (superblock) to be used. The
26f467a9 325default is {DEFAULT_METADATA} for
7e23fc43 326.BR \-\-create ,
53e8b987 327and to guess for other operations.
2790ffe3
GB
328The default can be overridden by setting the
329.B metadata
330value for the
331.B CREATE
332keyword in
333.BR mdadm.conf .
570c0542
NB
334
335Options are:
336.RS
26f467a9 337.ie '{DEFAULT_METADATA}'0.90'
338.IP "0, 0.90, default"
339.el
7d5c3964 340.IP "0, 0.90"
570c0542 341Use the original 0.90 format superblock. This format limits arrays to
93e790af 34228 component devices and limits component devices of levels 1 and
cd19c0cf
JR
343greater to 2 terabytes. It is also possible for there to be confusion
344about whether the superblock applies to a whole device or just the
345last partition, if that partition starts on a 64K boundary.
26f467a9 346.ie '{DEFAULT_METADATA}'0.90'
347.IP "1, 1.0, 1.1, 1.2"
348.el
7d5c3964 349.IP "1, 1.0, 1.1, 1.2 default"
cd19c0cf
JR
350Use the new version-1 format superblock. This has fewer restrictions.
351It can easily be moved between hosts with different endian-ness, and a
352recovery operation can be checkpointed and restarted. The different
353sub-versions store the superblock at different locations on the
354device, either at the end (for 1.0), at the start (for 1.1) or 4K from
7050aa3f
N
355the start (for 1.2). "1" is equivalent to "1.2" (the commonly
356preferred 1.x format).
26f467a9 357'if '{DEFAULT_METADATA}'1.2' "default" is equivalent to "1.2".
8fd8d9c4 358.IP ddf
e0fe762a
N
359Use the "Industry Standard" DDF (Disk Data Format) format defined by
360SNIA.
361When creating a DDF array a
8fd8d9c4
N
362.B CONTAINER
363will be created, and normal arrays can be created in that container.
364.IP imsm
4cce4069 365Use the Intel(R) Matrix Storage Manager metadata format. This creates a
8fd8d9c4 366.B CONTAINER
4cce4069
DW
367which is managed in a similar manner to DDF, and is supported by an
368option-rom on some platforms:
369.IP
bcf40dbb 370.B https://www.intel.com/content/www/us/en/support/products/122484/memory-and-storage/ssd-software/intel-virtual-raid-on-cpu-intel-vroc.html
4cce4069 371.PP
570c0542
NB
372.RE
373
41a3b72a 374.TP
7e23fc43 375.B \-\-homehost=
35cc5be4 376This will override any
41a3b72a 377.B HOMEHOST
93e790af 378setting in the config file and provides the identity of the host which
41a3b72a
NB
379should be considered the home for any arrays.
380
381When creating an array, the
382.B homehost
e0fe762a 383will be recorded in the metadata. For version-1 superblocks, it will
93e790af 384be prefixed to the array name. For version-0.90 superblocks, part of
41a3b72a
NB
385the SHA1 hash of the hostname will be stored in the later half of the
386UUID.
387
388When reporting information about an array, any array which is tagged
389for the given homehost will be reported as such.
390
391When using Auto-Assemble, only arrays tagged for the given homehost
0ac91628 392will be allowed to use 'local' names (i.e. not ending in '_' followed
e0fe762a
N
393by a digit string). See below under
394.BR "Auto Assembly" .
41a3b72a 395
49325eac
N
396The special name "\fBany\fP" can be used as a wild card. If an array
397is created with
398.B --homehost=any
399then the name "\fBany\fP" will be stored in the array and it can be
400assembled in the same way on any host. If an array is assembled with
401this option, then the homehost recorded on the array will be ignored.
402
c2ecf5f6
N
403.TP
404.B \-\-prefer=
405When
406.I mdadm
407needs to print the name for a device it normally finds the name in
408.B /dev
409which refers to the device and is shortest. When a path component is
410given with
411.B \-\-prefer
412.I mdadm
413will prefer a longer name if it contains that component. For example
414.B \-\-prefer=by-uuid
415will prefer a name in a subdirectory of
416.B /dev
417called
418.BR by-uuid .
419
420This functionality is currently only provided by
421.B \-\-detail
422and
423.BR \-\-monitor .
424
7716570e
GJ
425.TP
426.B \-\-home\-cluster=
427specifies the cluster name for the md device. The md device can be assembled
428only on the cluster which matches the name specified. If this option is not
429provided, mdadm tries to detect the cluster name automatically.
430
2ae555c3
NB
431.SH For create, build, or grow:
432
433.TP
7e23fc43 434.BR \-n ", " \-\-raid\-devices=
2ae555c3
NB
435Specify the number of active devices in the array. This, plus the
436number of spare devices (see below) must equal the number of
437.I component-devices
438(including "\fBmissing\fP" devices)
439that are listed on the command line for
e0fe762a 440.BR \-\-create .
2ae555c3
NB
441Setting a value of 1 is probably
442a mistake and so requires that
7e23fc43 443.B \-\-force
2ae555c3 444be specified first. A value of 1 will then be allowed for linear,
e0fe762a 445multipath, RAID0 and RAID1. It is never allowed for RAID4, RAID5 or RAID6.
2ae555c3
NB
446.br
447This number can only be changed using
7e23fc43 448.B \-\-grow
e0fe762a
N
449for RAID1, RAID4, RAID5 and RAID6 arrays, and only on kernels which provide
450the necessary support.
2ae555c3
NB
451
452.TP
7e23fc43 453.BR \-x ", " \-\-spare\-devices=
2ae555c3
NB
454Specify the number of spare (eXtra) devices in the initial array.
455Spares can also be added
456and removed later. The number of component devices listed
e0fe762a 457on the command line must equal the number of RAID devices plus the
2ae555c3
NB
458number of spare devices.
459
2ae555c3 460.TP
7e23fc43 461.BR \-z ", " \-\-size=
fea026b4
MK
462Amount (in Kilobytes) of space to use from each drive in RAID levels 1/4/5/6/10
463and for RAID 0 on external metadata.
2ae555c3
NB
464This must be a multiple of the chunk size, and must leave about 128Kb
465of space at the end of the drive for the RAID superblock.
466If this is not specified
467(as it normally is not) the smallest drive (or partition) sets the
468size, though if there is a variance among the drives of greater than 1%, a warning is
469issued.
470
42e641ab
KT
471A suffix of 'K', 'M', 'G' or 'T' can be given to indicate Kilobytes,
472Megabytes, Gigabytes or Terabytes respectively.
36fad8ec 473
9ab6e80a
N
474Sometimes a replacement drive can be a little smaller than the
475original drives though this should be minimised by IDEMA standards.
476Such a replacement drive will be rejected by
477.IR md .
478To guard against this it can be useful to set the initial size
479slightly smaller than the smaller device with the aim that it will
480still be larger than any replacement.
481
fea026b4
MK
482This option can be used with
483.B \-\-create
484for determining initial size of an array. For external metadata,
485it can be used on a volume, but not on a container itself.
486Setting initial size of
487.B RAID 0
488array is only valid for external metadata.
489
2ae555c3 490This value can be set with
7e23fc43 491.B \-\-grow
fea026b4 492for RAID level 1/4/5/6/10 though
4431efeb 493DDF arrays may not be able to support this.
fea026b4 494RAID 0 array size cannot be changed.
9ab6e80a
N
495If the array was created with a size smaller than the currently
496active drives, the extra space can be accessed using
7e23fc43 497.BR \-\-grow .
2ae555c3
NB
498The size can be given as
499.B max
500which means to choose the largest size that fits on all current drives.
52826846 501
c26d78fe
N
502Before reducing the size of the array (with
503.BR "\-\-grow \-\-size=" )
504you should make sure that space isn't needed. If the device holds a
505filesystem, you would need to resize the filesystem to use less space.
506
507After reducing the array size you should check that the data stored in
508the device is still available. If the device holds a filesystem, then
509an 'fsck' of the filesystem is a minimum requirement. If there are
510problems the array can be made bigger again with no loss with another
511.B "\-\-grow \-\-size="
512command.
513
f24e2d6c 514.TP
c26d78fe 515.BR \-Z ", " \-\-array\-size=
f24e2d6c
N
516This is only meaningful with
517.B \-\-grow
36fad8ec 518and its effect is not persistent: when the array is stopped and
f24e2d6c
N
519restarted the default array size will be restored.
520
521Setting the array-size causes the array to appear smaller to programs
522that access the data. This is particularly needed before reshaping an
523array so that it will be smaller. As the reshape is not reversible,
524but setting the size with
525.B \-\-array-size
526is, it is required that the array size is reduced as appropriate
527before the number of devices in the array is reduced.
528
c26d78fe
N
529Before reducing the size of the array you should make sure that space
530isn't needed. If the device holds a filesystem, you would need to
531resize the filesystem to use less space.
532
533After reducing the array size you should check that the data stored in
534the device is still available. If the device holds a filesystem, then
535an 'fsck' of the filesystem is a minimum requirement. If there are
536problems the array can be made bigger again with no loss with another
537.B "\-\-grow \-\-array\-size="
538command.
539
42e641ab
KT
540A suffix of 'K', 'M', 'G' or 'T' can be given to indicate Kilobytes,
541Megabytes, Gigabytes or Terabytes respectively.
36fad8ec
N
542A value of
543.B max
544restores the apparent size of the array to be whatever the real
545amount of available space is.
546
e39c76b9
ZL
547Clustered arrays do not support this parameter yet.
548
cd29a5c8 549.TP
7e23fc43 550.BR \-c ", " \-\-chunk=
95b55f18 551Specify chunk size of kilobytes. The default when creating an
5f175898 552array is 512KB. To ensure compatibility with earlier versions, the
422da715 553default when building an array with no persistent metadata is 64KB.
e0fe762a 554This is only meaningful for RAID0, RAID4, RAID5, RAID6, and RAID10.
52826846 555
a252c078
N
556RAID4, RAID5, RAID6, and RAID10 require the chunk size to be a power
557of 2. In any case it must be a multiple of 4KB.
558
42e641ab
KT
559A suffix of 'K', 'M', 'G' or 'T' can be given to indicate Kilobytes,
560Megabytes, Gigabytes or Terabytes respectively.
36fad8ec 561
cd29a5c8 562.TP
7e23fc43 563.BR \-\-rounding=
e0fe762a
N
564Specify rounding factor for a Linear array. The size of each
565component will be rounded down to a multiple of this size.
566This is a synonym for
567.B \-\-chunk
568but highlights the different meaning for Linear as compared to other
5f175898
N
569RAID levels. The default is 64K if a kernel earlier than 2.6.16 is in
570use, and is 0K (i.e. no rounding) in later kernels.
52826846 571
cd29a5c8 572.TP
7e23fc43 573.BR \-l ", " \-\-level=
e0fe762a 574Set RAID level. When used with
7e23fc43 575.BR \-\-create ,
98c6faba 576options are: linear, raid0, 0, stripe, raid1, 1, mirror, raid4, 4,
8fd8d9c4
N
577raid5, 5, raid6, 6, raid10, 10, multipath, mp, faulty, container.
578Obviously some of these are synonymous.
579
580When a
581.B CONTAINER
582metadata type is requested, only the
583.B container
584level is permitted, and it does not need to be explicitly given.
aa88f531
NB
585
586When used with
7e23fc43 587.BR \-\-build ,
a9d69660 588only linear, stripe, raid0, 0, raid1, multipath, mp, and faulty are valid.
52826846 589
fd547b50
N
590Can be used with
591.B \-\-grow
592to change the RAID level in some cases. See LEVEL CHANGES below.
2ae555c3 593
cd29a5c8 594.TP
7e23fc43 595.BR \-p ", " \-\-layout=
f24e2d6c
N
596This option configures the fine details of data layout for RAID5, RAID6,
597and RAID10 arrays, and controls the failure modes for
1a7dfc35 598.IR faulty .
329dfc28
N
599It can also be used for working around a kernel bug with RAID0, but generally
600doesn't need to be used explicitly.
1a7dfc35 601
e0fe762a 602The layout of the RAID5 parity block can be one of
7e23fc43
PS
603.BR left\-asymmetric ,
604.BR left\-symmetric ,
605.BR right\-asymmetric ,
606.BR right\-symmetric ,
53e8b987
PS
607.BR la ", " ra ", " ls ", " rs .
608The default is
7e23fc43 609.BR left\-symmetric .
52826846 610
cd19c0cf 611It is also possible to cause RAID5 to use a RAID4-like layout by
e0fe762a
N
612choosing
613.BR parity\-first ,
614or
615.BR parity\-last .
616
617Finally for RAID5 there are DDF\-compatible layouts,
618.BR ddf\-zero\-restart ,
619.BR ddf\-N\-restart ,
620and
621.BR ddf\-N\-continue .
622
623These same layouts are available for RAID6. There are also 4 layouts
624that will provide an intermediate stage for converting between RAID5
625and RAID6. These provide a layout which is identical to the
626corresponding RAID5 layout on the first N\-1 devices, and has the 'Q'
627syndrome (the second 'parity' block used by RAID6) on the last device.
628These layouts are:
629.BR left\-symmetric\-6 ,
630.BR right\-symmetric\-6 ,
631.BR left\-asymmetric\-6 ,
632.BR right\-asymmetric\-6 ,
633and
10adfe9a 634.BR parity\-first\-6 .
e0fe762a 635
93e790af
SW
636When setting the failure mode for level
637.I faulty,
1a7dfc35 638the options are:
7e23fc43
PS
639.BR write\-transient ", " wt ,
640.BR read\-transient ", " rt ,
641.BR write\-persistent ", " wp ,
642.BR read\-persistent ", " rp ,
643.BR write\-all ,
644.BR read\-fixable ", " rf ,
53e8b987 645.BR clear ", " flush ", " none .
b5e64645 646
93e790af 647Each failure mode can be followed by a number, which is used as a period
b5e64645
NB
648between fault generation. Without a number, the fault is generated
649once on the first relevant request. With a number, the fault will be
93e790af 650generated after that many requests, and will continue to be generated
b5e64645
NB
651every time the period elapses.
652
653Multiple failure modes can be current simultaneously by using the
7e23fc43 654.B \-\-grow
53e8b987 655option to set subsequent failure modes.
b5e64645
NB
656
657"clear" or "none" will remove any pending or periodic failure modes,
2ae555c3 658and "flush" will clear any persistent faults.
b5e64645 659
329dfc28 660The layout options for RAID10 are one of 'n', 'o' or 'f' followed
93e790af 661by a small number. The default is 'n2'. The supported options are:
1a7dfc35 662
93e790af 663.I 'n'
e0fe762a 664signals 'near' copies. Multiple copies of one data block are at
b578481c
NB
665similar offsets in different devices.
666
93e790af 667.I 'o'
b578481c
NB
668signals 'offset' copies. Rather than the chunks being duplicated
669within a stripe, whole stripes are duplicated but are rotated by one
670device so duplicate blocks are on different devices. Thus subsequent
671copies of a block are in the next drive, and are one chunk further
672down.
673
93e790af 674.I 'f'
1a7dfc35 675signals 'far' copies
93e790af 676(multiple copies have very different offsets).
e0fe762a 677See md(4) for more detail about 'near', 'offset', and 'far'.
1a7dfc35
NB
678
679The number is the number of copies of each datablock. 2 is normal, 3
680can be useful. This number can be at most equal to the number of
681devices in the array. It does not need to divide evenly into that
682number (e.g. it is perfectly legal to have an 'n2' layout for an array
683with an odd number of devices).
684
329dfc28
N
685A bug introduced in Linux 3.14 means that RAID0 arrays
686.B "with devices of differing sizes"
687started using a different layout. This could lead to
688data corruption. Since Linux 5.4 (and various stable releases that received
689backports), the kernel will not accept such an array unless
690a layout is explictly set. It can be set to
691.RB ' original '
692or
693.RB ' alternate '.
694When creating a new array,
695.I mdadm
696will select
697.RB ' original '
698by default, so the layout does not normally need to be set.
699An array created for either
700.RB ' original '
701or
702.RB ' alternate '
703will not be recognized by an (unpatched) kernel prior to 5.4. To create
704a RAID0 array with devices of differing sizes that can be used on an
705older kernel, you can set the layout to
706.RB ' dangerous '.
707This will use whichever layout the running kernel supports, so the data
708on the array may become corrupt when changing kernel from pre-3.14 to a
709later kernel.
710
f24e2d6c
N
711When an array is converted between RAID5 and RAID6 an intermediate
712RAID6 layout is used in which the second parity block (Q) is always on
713the last device. To convert a RAID5 to RAID6 and leave it in this new
714layout (which does not require re-striping) use
715.BR \-\-layout=preserve .
716This will try to avoid any restriping.
717
718The converse of this is
719.B \-\-layout=normalise
720which will change a non-standard RAID6 layout into a more standard
721arrangement.
722
cd29a5c8 723.TP
7e23fc43 724.BR \-\-parity=
53e8b987 725same as
7e23fc43 726.B \-\-layout
53e8b987 727(thus explaining the p of
7e23fc43 728.BR \-p ).
52826846 729
e793c2e5 730.TP
7e23fc43 731.BR \-b ", " \-\-bitmap=
e793c2e5 732Specify a file to store a write-intent bitmap in. The file should not
53e8b987 733exist unless
7e23fc43 734.B \-\-force
53e8b987 735is also given. The same file should be provided
2ae555c3 736when assembling the array. If the word
93e790af 737.B "internal"
2ae555c3
NB
738is given, then the bitmap is stored with the metadata on the array,
739and so is replicated on all devices. If the word
93e790af 740.B "none"
2ae555c3 741is given with
7e23fc43 742.B \-\-grow
95a05b37
GJ
743mode, then any bitmap that is present is removed. If the word
744.B "clustered"
745is given, the array is created for a clustered environment. One bitmap
746is created for each node as defined by the
747.B \-\-nodes
748parameter and are stored internally.
e793c2e5 749
2ae555c3
NB
750To help catch typing errors, the filename must contain at least one
751slash ('/') if it is a real file (not 'internal' or 'none').
752
753Note: external bitmaps are only known to work on ext2 and ext3.
754Storing bitmap files on other filesystems may result in serious problems.
e793c2e5 755
748952f7
N
756When creating an array on devices which are 100G or larger,
757.I mdadm
758automatically adds an internal bitmap as it will usually be
759beneficial. This can be suppressed with
5308f117
AP
760.B "\-\-bitmap=none"
761or by selecting a different consistency policy with
762.BR \-\-consistency\-policy .
748952f7 763
cd29a5c8 764.TP
7e23fc43 765.BR \-\-bitmap\-chunk=
e0fe762a 766Set the chunksize of the bitmap. Each bit corresponds to that many
1bfdbe01
NB
767Kilobytes of storage.
768When using a file based bitmap, the default is to use the smallest
93e790af 769size that is at-least 4 and requires no more than 2^21 chunks.
2ae555c3
NB
770When using an
771.B internal
b8ab2a50
N
772bitmap, the chunksize defaults to 64Meg, or larger if necessary to
773fit the bitmap into the available space.
5787fa49 774
42e641ab
KT
775A suffix of 'K', 'M', 'G' or 'T' can be given to indicate Kilobytes,
776Megabytes, Gigabytes or Terabytes respectively.
36fad8ec 777
cd29a5c8 778.TP
7e23fc43 779.BR \-W ", " \-\-write\-mostly
e0fe762a 780subsequent devices listed in a
7e23fc43
PS
781.BR \-\-build ,
782.BR \-\-create ,
2ae555c3 783or
7e23fc43 784.B \-\-add
71574efb 785command will be flagged as 'write\-mostly'. This is valid for RAID1
2ae555c3
NB
786only and means that the 'md' driver will avoid reading from these
787devices if at all possible. This can be useful if mirroring over a
788slow link.
52826846 789
2ae555c3 790.TP
7e23fc43 791.BR \-\-write\-behind=
2ae555c3 792Specify that write-behind mode should be enabled (valid for RAID1
e0fe762a
N
793only). If an argument is specified, it will set the maximum number
794of outstanding writes allowed. The default value is 256.
2ae555c3
NB
795A write-intent bitmap is required in order to use write-behind
796mode, and write-behind is only attempted on drives marked as
797.IR write-mostly .
dd0781e5 798
71574efb
N
799.TP
800.BR \-\-failfast
801subsequent devices listed in a
802.B \-\-create
803or
804.B \-\-add
805command will be flagged as 'failfast'. This is valid for RAID1 and
806RAID10 only. IO requests to these devices will be encouraged to fail
807quickly rather than cause long delays due to error handling. Also no
808attempt is made to repair a read error on these devices.
809
810If an array becomes degraded so that the 'failfast' device is the only
811usable device, the 'failfast' flag will then be ignored and extended
812delays will be preferred to complete failure.
813
814The 'failfast' flag is appropriate for storage arrays which have a
815low probability of true failure, but which may sometimes
816cause unacceptable delays due to internal maintenance functions.
817
dd0781e5 818.TP
7e23fc43 819.BR \-\-assume\-clean
dd0781e5
NB
820Tell
821.I mdadm
47d79ef8
NB
822that the array pre-existed and is known to be clean. It can be useful
823when trying to recover from a major failure as you can be sure that no
824data will be affected unless you actually write to the array. It can
825also be used when creating a RAID1 or RAID10 if you want to avoid the
b3f1c093 826initial resync, however this practice \(em while normally safe \(em is not
e0fe762a 827recommended. Use this only if you really know what you are doing.
6acad481
ME
828.IP
829When the devices that will be part of a new array were filled
830with zeros before creation the operator knows the array is
831actually clean. If that is the case, such as after running
832badblocks, this argument can be used to tell mdadm the
833facts the operator knows.
ce52f92f
N
834.IP
835When an array is resized to a larger size with
836.B "\-\-grow \-\-size="
837the new space is normally resynced in that same way that the whole
6cbf8fb8 838array is resynced at creation. From Linux version 3.0,
ce52f92f
N
839.B \-\-assume\-clean
840can be used with that command to avoid the automatic resync.
dd0781e5 841
2ae555c3 842.TP
7e23fc43 843.BR \-\-backup\-file=
53e8b987 844This is needed when
7e23fc43 845.B \-\-grow
cd19c0cf
JR
846is used to increase the number of raid-devices in a RAID5 or RAID6 if
847there are no spare devices available, or to shrink, change RAID level
848or layout. See the GROW MODE section below on RAID\-DEVICES CHANGES.
849The file must be stored on a separate device, not on the RAID array
850being reshaped.
2ae555c3 851
40c9a66a
N
852.TP
853.B \-\-data\-offset=
854Arrays with 1.x metadata can leave a gap between the start of the
855device and the start of array data. This gap can be used for various
856metadata. The start of data is known as the
857.IR data\-offset .
858Normally an appropriate data offset is computed automatically.
859However it can be useful to set it explicitly such as when re-creating
860an array which was originally created using a different version of
861.I mdadm
862which computed a different offset.
863
864Setting the offset explicitly over-rides the default. The value given
42e641ab
KT
865is in Kilobytes unless a suffix of 'K', 'M', 'G' or 'T' is used to explicitly
866indicate Kilobytes, Megabytes, Gigabytes or Terabytes respectively.
40c9a66a
N
867
868Since Linux 3.4,
869.B \-\-data\-offset
870can also be used with
871.B --grow
872for some RAID levels (initially on RAID10). This allows the
72ca9bcf 873data\-offset to be changed as part of the reshape process. When the
40c9a66a
N
874data offset is changed, no backup file is required as the difference
875in offsets is used to provide the same functionality.
876
877When the new offset is earlier than the old offset, the number of
878devices in the array cannot shrink. When it is after the old offset,
879the number of devices in the array cannot increase.
880
72ca9bcf
N
881When creating an array,
882.B \-\-data\-offset
883can be specified as
884.BR variable .
885In the case each member device is expected to have a offset appended
886to the name, separated by a colon. This makes it possible to recreate
887exactly an array which has varying data offsets (as can happen when
888different versions of
889.I mdadm
890are used to add different devices).
891
f211a137
AK
892.TP
893.BR \-\-continue
894This option is complementary to the
895.B \-\-freeze-reshape
896option for assembly. It is needed when
897.B \-\-grow
898operation is interrupted and it is not restarted automatically due to
899.B \-\-freeze-reshape
900usage during array assembly. This option is used together with
901.BR \-G
902, (
903.BR \-\-grow
904) command and device for a pending reshape to be continued.
905All parameters required for reshape continuation will be read from array metadata.
906If initial
907.BR \-\-grow
908command had required
909.BR \-\-backup\-file=
910option to be set, continuation option will require to have exactly the same
911backup file given as well.
912.IP
913Any other parameter passed together with
914.BR \-\-continue
915option will be ignored.
916
947fd4dd 917.TP
7e23fc43 918.BR \-N ", " \-\-name=
947fd4dd
NB
919Set a
920.B name
921for the array. This is currently only effective when creating an
e0fe762a
N
922array with a version-1 superblock, or an array in a DDF container.
923The name is a simple textual string that can be used to identify array
924components when assembling. If name is needed but not specified, it
925is taken from the basename of the device that is being created.
926e.g. when creating
927.I /dev/md/home
928the
929.B name
930will default to
931.IR home .
947fd4dd 932
dd0781e5 933.TP
7e23fc43 934.BR \-R ", " \-\-run
dd0781e5
NB
935Insist that
936.I mdadm
937run the array, even if some of the components
938appear to be active in another array or filesystem. Normally
939.I mdadm
940will ask for confirmation before including such components in an
941array. This option causes that question to be suppressed.
942
943.TP
7e23fc43 944.BR \-f ", " \-\-force
dd0781e5
NB
945Insist that
946.I mdadm
947accept the geometry and layout specified without question. Normally
948.I mdadm
949will not allow creation of an array with only one device, and will try
e0fe762a 950to create a RAID5 array with one missing drive (as this makes the
dd0781e5 951initial resync work faster). With
7e23fc43 952.BR \-\-force ,
dd0781e5
NB
953.I mdadm
954will not try to be so clever.
955
0ea8f5b1
N
956.TP
957.BR \-o ", " \-\-readonly
958Start the array
959.B read only
960rather than read-write as normal. No writes will be allowed to the
8a70632f
ZL
961array, and no resync, recovery, or reshape will be started. It works with
962Create, Assemble, Manage and Misc mode.
0ea8f5b1 963
dd0781e5 964.TP
257c1dc2
N
965.BR \-a ", " "\-\-auto{=yes,md,mdp,part,p}{NN}"
966Instruct mdadm how to create the device file if needed, possibly allocating
48f7b27a 967an unused minor number. "md" causes a non-partitionable array
257c1dc2
N
968to be used (though since Linux 2.6.28, these array devices are in fact
969partitionable). "mdp", "part" or "p" causes a partitionable array (2.6 and
2ae555c3 970later) to be used. "yes" requires the named md device to have
f9c25f1d 971a 'standard' format, and the type and minor number will be determined
257c1dc2
N
972from this. With mdadm 3.0, device creation is normally left up to
973.I udev
974so this option is unlikely to be needed.
975See DEVICE NAMES below.
48f7b27a 976
a9d69660 977The argument can also come immediately after
7e23fc43 978"\-a". e.g. "\-ap".
dd0781e5 979
53e8b987 980If
7e23fc43 981.B \-\-auto
53e8b987 982is not given on the command line or in the config file, then
75723446 983the default will be
7e23fc43 984.BR \-\-auto=yes .
75723446 985
1337546d 986If
7e23fc43 987.B \-\-scan
1337546d
NB
988is also given, then any
989.I auto=
35cc5be4 990entries in the config file will override the
7e23fc43 991.B \-\-auto
1337546d
NB
992instruction given on the command line.
993
dd0781e5
NB
994For partitionable arrays,
995.I mdadm
996will create the device file for the whole array and for the first 4
997partitions. A different number of partitions can be specified at the
998end of this option (e.g.
7e23fc43 999.BR \-\-auto=p7 ).
2ae555c3 1000If the device name ends with a digit, the partition names add a 'p',
e0fe762a
N
1001and a number, e.g.
1002.IR /dev/md/home1p3 .
1003If there is no trailing digit, then the partition names just have a
1004number added, e.g.
1005.IR /dev/md/scratch3 .
dd0781e5 1006
48f7b27a
NB
1007If the md device name is in a 'standard' format as described in DEVICE
1008NAMES, then it will be created, if necessary, with the appropriate
e0fe762a
N
1009device number based on that name. If the device name is not in one of these
1010formats, then a unused device number will be allocated. The device
48f7b27a
NB
1011number will be considered unused if there is no active array for that
1012number, and there is no entry in /dev for that number and with a
e0fe762a 1013non-standard name. Names that are not in 'standard' format are only
8fd8d9c4
N
1014allowed in "/dev/md/".
1015
3c7efacb
NK
1016This is meaningful with
1017.B \-\-create
1018or
1019.BR \-\-build .
1020
3c7efacb
NK
1021.TP
1022.BR \-a ", " "\-\-add"
1023This option can be used in Grow mode in two cases.
1024
1025If the target array is a Linear array, then
1026.B \-\-add
1027can be used to add one or more devices to the array. They
1028are simply catenated on to the end of the array. Once added, the
1029devices cannot be removed.
1030
1031If the
1032.B \-\-raid\-disks
1033option is being used to increase the number of devices in an array,
1034then
1035.B \-\-add
1036can be used to add some extra devices to be included in the array.
1037In most cases this is not needed as the extra devices can be added as
1038spares first, and then the number of raid-disks can be changed.
1039However for RAID0, it is not possible to add spares. So to increase
1040the number of devices in a RAID0, it is necessary to set the new
1041number of devices, and to add the new devices, in the same command.
1042
529e2aa5
GJ
1043.TP
1044.BR \-\-nodes
1045Only works when the array is for clustered environment. It specifies
1046the maximum number of nodes in the cluster that will use this device
1047simultaneously. If not specified, this defaults to 4.
1048
28d74446
SL
1049.TP
1050.BR \-\-write-journal
1051Specify journal device for the RAID-4/5/6 array. The journal device
1052should be a SSD with reasonable lifetime.
1053
d64c2283
ZL
1054.TP
1055.BR \-\-symlinks
1056Auto creation of symlinks in /dev to /dev/md, option --symlinks must
1057be 'no' or 'yes' and work with --create and --build.
1058
5308f117
AP
1059.TP
1060.BR \-k ", " \-\-consistency\-policy=
1061Specify how the array maintains consistency in case of unexpected shutdown.
1062Only relevant for RAID levels with redundancy.
1063Currently supported options are:
1064.RS
1065
1066.TP
1067.B resync
1068Full resync is performed and all redundancy is regenerated when the array is
1069started after unclean shutdown.
1070
1071.TP
1072.B bitmap
1073Resync assisted by a write-intent bitmap. Implicitly selected when using
1074.BR \-\-bitmap .
1075
1076.TP
1077.B journal
1078For RAID levels 4/5/6, journal device is used to log transactions and replay
1079after unclean shutdown. Implicitly selected when using
1080.BR \-\-write\-journal .
1081
1082.TP
1083.B ppl
1084For RAID5 only, Partial Parity Log is used to close the write hole and
1085eliminate resync. PPL is stored in the metadata region of RAID member drives,
1086no additional journal drive is needed.
860f11ed
AP
1087
1088.PP
1089Can be used with \-\-grow to change the consistency policy of an active array
1090in some cases. See CONSISTENCY POLICY CHANGES below.
5308f117
AP
1091.RE
1092
28d74446 1093
52826846
NB
1094.SH For assemble:
1095
cd29a5c8 1096.TP
7e23fc43 1097.BR \-u ", " \-\-uuid=
e0fe762a 1098uuid of array to assemble. Devices which don't have this uuid are
cd29a5c8
NB
1099excluded
1100
1101.TP
7e23fc43 1102.BR \-m ", " \-\-super\-minor=
cd29a5c8
NB
1103Minor number of device that array was created for. Devices which
1104don't have this minor number are excluded. If you create an array as
2d465520 1105/dev/md1, then all superblocks will contain the minor number 1, even if
cd29a5c8
NB
1106the array is later assembled as /dev/md2.
1107
d013a55e 1108Giving the literal word "dev" for
7e23fc43 1109.B \-\-super\-minor
d013a55e
NB
1110will cause
1111.I mdadm
1112to use the minor number of the md device that is being assembled.
1113e.g. when assembling
1114.BR /dev/md0 ,
51ac42e3 1115.B \-\-super\-minor=dev
d013a55e
NB
1116will look for super blocks with a minor number of 0.
1117
e0fe762a
N
1118.B \-\-super\-minor
1119is only relevant for v0.90 metadata, and should not normally be used.
1120Using
1121.B \-\-uuid
1122is much safer.
1123
947fd4dd 1124.TP
7e23fc43 1125.BR \-N ", " \-\-name=
947fd4dd 1126Specify the name of the array to assemble. This must be the name
624920bb 1127that was specified when creating the array. It must either match
93e790af 1128the name stored in the superblock exactly, or it must match
41a3b72a 1129with the current
624920bb 1130.I homehost
93e790af 1131prefixed to the start of the given name.
947fd4dd 1132
cd29a5c8 1133.TP
7e23fc43 1134.BR \-f ", " \-\-force
e0fe762a
N
1135Assemble the array even if the metadata on some devices appears to be
1136out-of-date. If
1137.I mdadm
1138cannot find enough working devices to start the array, but can find
1139some devices that are recorded as having failed, then it will mark
92a647c8
MT
1140those devices as working so that the array can be started. This works only for
1141native. For external metadata it allows to start dirty degraded RAID 4, 5, 6.
e0fe762a
N
1142An array which requires
1143.B \-\-force
1144to be started may contain data corruption. Use it carefully.
52826846 1145
cd29a5c8 1146.TP
7e23fc43 1147.BR \-R ", " \-\-run
b8a8ccf9
NB
1148Attempt to start the array even if fewer drives were given than were
1149present last time the array was active. Normally if not all the
1150expected drives are found and
7e23fc43 1151.B \-\-scan
cd29a5c8
NB
1152is not used, then the array will be assembled but not started.
1153With
7e23fc43 1154.B \-\-run
cd29a5c8 1155an attempt will be made to start it anyway.
52826846 1156
b8a8ccf9 1157.TP
7e23fc43 1158.B \-\-no\-degraded
b8a8ccf9 1159This is the reverse of
7e23fc43 1160.B \-\-run
93e790af 1161in that it inhibits the startup of array unless all expected drives
b8a8ccf9 1162are present. This is only needed with
93e790af
SW
1163.B \-\-scan,
1164and can be used if the physical connections to devices are
b8a8ccf9
NB
1165not as reliable as you would like.
1166
dd0781e5 1167.TP
7e23fc43 1168.BR \-a ", " "\-\-auto{=no,yes,md,mdp,part}"
dd0781e5
NB
1169See this option under Create and Build options.
1170
e793c2e5 1171.TP
7e23fc43 1172.BR \-b ", " \-\-bitmap=
2ae555c3
NB
1173Specify the bitmap file that was given when the array was created. If
1174an array has an
1175.B internal
1176bitmap, there is no need to specify this when assembling the array.
1177
1178.TP
7e23fc43 1179.BR \-\-backup\-file=
2ae555c3 1180If
7e23fc43 1181.B \-\-backup\-file
87f26d14
N
1182was used while reshaping an array (e.g. changing number of devices or
1183chunk size) and the system crashed during the critical section, then the same
7e23fc43 1184.B \-\-backup\-file
53e8b987 1185must be presented to
7e23fc43 1186.B \-\-assemble
cd19c0cf
JR
1187to allow possibly corrupted data to be restored, and the reshape
1188to be completed.
e793c2e5 1189
87f26d14
N
1190.TP
1191.BR \-\-invalid\-backup
1192If the file needed for the above option is not available for any
1193reason an empty file can be given together with this option to
1194indicate that the backup file is invalid. In this case the data that
1195was being rearranged at the time of the crash could be irrecoverably
1196lost, but the rest of the array may still be recoverable. This option
1197should only be used as a last resort if there is no way to recover the
1198backup file.
1199
1200
5787fa49 1201.TP
7e23fc43 1202.BR \-U ", " \-\-update=
5787fa49 1203Update the superblock on each device while assembling the array. The
feb716e9
NB
1204argument given to this flag can be one of
1205.BR sparc2.2 ,
1206.BR summaries ,
7d99579f 1207.BR uuid ,
c4f12c13 1208.BR name ,
7e6e839a 1209.BR nodes ,
0237e0ca 1210.BR homehost ,
0aa2f15b 1211.BR home-cluster ,
e5329c37 1212.BR resync ,
586ed405 1213.BR byteorder ,
bee8ec56 1214.BR devicesize ,
5a31170d 1215.BR no\-bitmap ,
688e99a7 1216.BR bbl ,
47120ad5 1217.BR no\-bbl ,
e6e9dd3f
AP
1218.BR ppl ,
1219.BR no\-ppl ,
027c099f
N
1220.BR layout\-original ,
1221.BR layout\-alternate ,
97b51a2c 1222.BR layout\-unspecified ,
afa368f4 1223.BR metadata ,
5787fa49 1224or
7e23fc43 1225.BR super\-minor .
5787fa49
NB
1226
1227The
1228.B sparc2.2
7d99579f 1229option will adjust the superblock of an array what was created on a Sparc
5787fa49
NB
1230machine running a patched 2.2 Linux kernel. This kernel got the
1231alignment of part of the superblock wrong. You can use the
7e23fc43 1232.B "\-\-examine \-\-sparc2.2"
5787fa49
NB
1233option to
1234.I mdadm
1235to see what effect this would have.
1236
1237The
7e23fc43 1238.B super\-minor
5787fa49 1239option will update the
2ae555c3 1240.B "preferred minor"
5787fa49 1241field on each superblock to match the minor number of the array being
45c073c9
NB
1242assembled.
1243This can be useful if
7e23fc43 1244.B \-\-examine
45c073c9 1245reports a different "Preferred Minor" to
7e23fc43 1246.BR \-\-detail .
45c073c9 1247In some cases this update will be performed automatically
e0fe762a 1248by the kernel driver. In particular the update happens automatically
45c073c9
NB
1249at the first write to an array with redundancy (RAID level 1 or
1250greater) on a 2.6 (or later) kernel.
5787fa49 1251
7d99579f
NB
1252The
1253.B uuid
1254option will change the uuid of the array. If a UUID is given with the
7e23fc43 1255.B \-\-uuid
53e8b987 1256option that UUID will be used as a new UUID and will
7d99579f
NB
1257.B NOT
1258be used to help identify the devices in the array.
53e8b987 1259If no
7e23fc43 1260.B \-\-uuid
53e8b987 1261is given, a random UUID is chosen.
7d99579f 1262
c4f12c13
NB
1263The
1264.B name
1265option will change the
1266.I name
b3774a48
GJ
1267of the array as stored in the superblock. This is only supported for
1268version-1 superblocks.
7e6e839a
GJ
1269
1270The
1271.B nodes
1272option will change the
1273.I nodes
b3774a48
GJ
1274of the array as stored in the bitmap superblock. This option only
1275works for a clustered environment.
c4f12c13 1276
0237e0ca
NB
1277The
1278.B homehost
1279option will change the
1280.I homehost
1281as recorded in the superblock. For version-0 superblocks, this is the
1282same as updating the UUID.
1283For version-1 superblocks, this involves updating the name.
1284
0aa2f15b
GJ
1285The
1286.B home\-cluster
1287option will change the cluster name as recorded in the superblock and
1288bitmap. This option only works for clustered environment.
1289
e5329c37
NB
1290The
1291.B resync
1292option will cause the array to be marked
1293.I dirty
e0fe762a
N
1294meaning that any redundancy in the array (e.g. parity for RAID5,
1295copies for RAID1) may be incorrect. This will cause the RAID system
e5329c37
NB
1296to perform a "resync" pass to make sure that all redundant information
1297is correct.
1298
586ed405
NB
1299The
1300.B byteorder
1301option allows arrays to be moved between machines with different
4224685f
N
1302byte-order, such as from a big-endian machine like a Sparc or some
1303MIPS machines, to a little-endian x86_64 machine.
2ae555c3 1304When assembling such an array for the first time after a move, giving
7e23fc43 1305.B "\-\-update=byteorder"
586ed405
NB
1306will cause
1307.I mdadm
1308to expect superblocks to have their byteorder reversed, and will
1309correct that order before assembling the array. This is only valid
2ae555c3 1310with original (Version 0.90) superblocks.
586ed405 1311
feb716e9
NB
1312The
1313.B summaries
e0fe762a 1314option will correct the summaries in the superblock. That is the
feb716e9 1315counts of total, working, active, failed, and spare devices.
5787fa49 1316
bee8ec56
NB
1317The
1318.B devicesize
5a31170d 1319option will rarely be of use. It applies to version 1.1 and 1.2 metadata
bee8ec56
NB
1320only (where the metadata is at the start of the device) and is only
1321useful when the component device has changed size (typically become
1322larger). The version 1 metadata records the amount of the device that
1323can be used to store data, so if a device in a version 1.1 or 1.2
1324array becomes larger, the metadata will still be visible, but the
1325extra space will not. In this case it might be useful to assemble the
1326array with
7e23fc43 1327.BR \-\-update=devicesize .
bee8ec56
NB
1328This will cause
1329.I mdadm
1330to determine the maximum usable amount of space on each device and
1331update the relevant field in the metadata.
1332
afa368f4
N
1333The
1334.B metadata
1335option only works on v0.90 metadata arrays and will convert them to
1336v1.0 metadata. The array must not be dirty (i.e. it must not need a
1337sync) and it must not have a write-intent bitmap.
1338
1339The old metadata will remain on the devices, but will appear older
1340than the new metadata and so will usually be ignored. The old metadata
1341(or indeed the new metadata) can be removed by giving the appropriate
1342.B \-\-metadata=
1343option to
1344.BR \-\-zero\-superblock .
1345
5a31170d
N
1346The
1347.B no\-bitmap
1348option can be used when an array has an internal bitmap which is
1349corrupt in some way so that assembling the array normally fails. It
1350will cause any internal bitmap to be ignored.
1351
688e99a7
N
1352The
1353.B bbl
1354option will reserve space in each device for a bad block list. This
1355will be 4K in size and positioned near the end of any free space
1356between the superblock and the data.
1357
1358The
1359.B no\-bbl
1360option will cause any reservation of space for a bad block list to be
1361removed. If the bad block list contains entries, this will fail, as
1362removing the list could cause data corruption.
1363
e6e9dd3f
AP
1364The
1365.B ppl
1366option will enable PPL for a RAID5 array and reserve space for PPL on each
1367device. There must be enough free space between the data and superblock and a
1368write-intent bitmap or journal must not be used.
1369
1370The
1371.B no\-ppl
1372option will disable PPL in the superblock.
1373
027c099f
N
1374The
1375.B layout\-original
1376and
1377.B layout\-alternate
97b51a2c
N
1378options are for RAID0 arrays with non-uniform devices size that were in
1379use before Linux 5.4. If the array was being used with Linux 3.13 or
1380earlier, then to assemble the array on a new kernel,
027c099f
N
1381.B \-\-update=layout\-original
1382must be given. If the array was created and used with a kernel from Linux 3.14 to
1383Linux 5.3, then
1384.B \-\-update=layout\-alternate
1385must be given. This only needs to be given once. Subsequent assembly of the array
1386will happen normally.
1387For more information, see
1388.IR md (4).
1389
97b51a2c
N
1390The
1391.B layout\-unspecified
1392option reverts the effect of
1393.B layout\-orignal
1394or
1395.B layout\-alternate
1396and allows the array to be again used on a kernel prior to Linux 5.3.
1397This option should be used with great caution.
1398
afd0a969
AK
1399.TP
1400.BR \-\-freeze\-reshape
1401Option is intended to be used in start-up scripts during initrd boot phase.
1402When array under reshape is assembled during initrd phase, this option
1403stops reshape after reshape critical section is being restored. This happens
1404before file system pivot operation and avoids loss of file system context.
1405Losing file system context would cause reshape to be broken.
1406
a6482415
N
1407Reshape can be continued later using the
1408.B \-\-continue
1409option for the grow command.
afd0a969 1410
d64c2283
ZL
1411.TP
1412.BR \-\-symlinks
1413See this option under Create and Build options.
1414
e0d19036 1415.SH For Manage mode:
52826846 1416
3d5279b0
N
1417.TP
1418.BR \-t ", " \-\-test
1419Unless a more serious error occurred,
1420.I mdadm
1421will exit with a status of 2 if no changes were made to the array and
14220 if at least one change was made.
1423This can be useful when an indirect specifier such as
1424.BR missing ,
1425.B detached
1426or
1427.B faulty
1428is used in requesting an operation on the array.
1429.B \-\-test
1430will report failure if these specifiers didn't find any match.
1431
cd29a5c8 1432.TP
7e23fc43 1433.BR \-a ", " \-\-add
3d5279b0
N
1434hot-add listed devices.
1435If a device appears to have recently been part of the array
342460cb 1436(possibly it failed or was removed) the device is re\-added as described
3d5279b0
N
1437in the next point.
1438If that fails or the device was never part of the array, the device is
1439added as a hot-spare.
1440If the array is degraded, it will immediately start to rebuild data
1441onto that spare.
1442
1443Note that this and the following options are only meaningful on array
1444with redundancy. They don't apply to RAID0 or Linear.
52826846 1445
fe80f49b 1446.TP
7e23fc43 1447.BR \-\-re\-add
eae6b036 1448re\-add a device that was previously removed from an array.
3d5279b0
N
1449If the metadata on the device reports that it is a member of the
1450array, and the slot that it used is still vacant, then the device will
1451be added back to the array in the same position. This will normally
1452cause the data for that device to be recovered. However based on the
1453event count on the device, the recovery may only require sections that
1454are flagged a write-intent bitmap to be recovered or may not require
1455any recovery at all.
1456
1457When used on an array that has no metadata (i.e. it was built with
1458.BR \-\-build)
1459it will be assumed that bitmap-based recovery is enough to make the
1460device fully consistent with the array.
fe80f49b 1461
688e99a7 1462When used with v1.x metadata,
833bb0f8
N
1463.B \-\-re\-add
1464can be accompanied by
688e99a7
N
1465.BR \-\-update=devicesize ,
1466.BR \-\-update=bbl ", or"
1467.BR \-\-update=no\-bbl .
1468See the description of these option when used in Assemble mode for an
1469explanation of their use.
833bb0f8 1470
a4e13010
N
1471If the device name given is
1472.B missing
262e3b7f
N
1473then
1474.I mdadm
1475will try to find any device that looks like it should be
a4e13010
N
1476part of the array but isn't and will try to re\-add all such devices.
1477
262e3b7f
N
1478If the device name given is
1479.B faulty
1480then
1481.I mdadm
1482will find all devices in the array that are marked
1483.BR faulty ,
1484remove them and attempt to immediately re\-add them. This can be
1485useful if you are certain that the reason for failure has been
1486resolved.
1487
f33a71f1
N
1488.TP
1489.B \-\-add\-spare
1490Add a device as a spare. This is similar to
1491.B \-\-add
1492except that it does not attempt
1493.B \-\-re\-add
1494first. The device will be added as a spare even if it looks like it
1495could be an recent member of the array.
1496
cd29a5c8 1497.TP
7e23fc43 1498.BR \-r ", " \-\-remove
2d465520 1499remove listed devices. They must not be active. i.e. they should
64a78416
N
1500be failed or spare devices.
1501
1502As well as the name of a device file
b80da661
NB
1503(e.g.
1504.BR /dev/sda1 )
1505the words
64a78416 1506.BR failed ,
b80da661 1507.B detached
64a78416
N
1508and names like
1509.B set-A
b80da661
NB
1510can be given to
1511.BR \-\-remove .
1512The first causes all failed device to be removed. The second causes
93e790af 1513any device which is no longer connected to the system (i.e an 'open'
b80da661
NB
1514returns
1515.BR ENXIO )
64a78416
N
1516to be removed.
1517The third will remove a set as describe below under
1518.BR \-\-fail .
52826846 1519
cd29a5c8 1520.TP
7e23fc43 1521.BR \-f ", " \-\-fail
70c55e36 1522Mark listed devices as faulty.
b80da661
NB
1523As well as the name of a device file, the word
1524.B detached
64a78416
N
1525or a set name like
1526.B set\-A
1527can be given. The former will cause any device that has been detached from
b80da661 1528the system to be marked as failed. It can then be removed.
52826846 1529
64a78416
N
1530For RAID10 arrays where the number of copies evenly divides the number
1531of devices, the devices can be conceptually divided into sets where
1532each set contains a single complete copy of the data on the array.
1533Sometimes a RAID10 array will be configured so that these sets are on
1534separate controllers. In this case all the devices in one set can be
1535failed by giving a name like
1536.B set\-A
1537or
1538.B set\-B
1539to
1540.BR \-\-fail .
1541The appropriate set names are reported by
1542.BR \-\-detail .
1543
cd29a5c8 1544.TP
7e23fc43 1545.BR \-\-set\-faulty
53e8b987 1546same as
7e23fc43 1547.BR \-\-fail .
52826846 1548
70c55e36
N
1549.TP
1550.B \-\-replace
1551Mark listed devices as requiring replacement. As soon as a spare is
1552available, it will be rebuilt and will replace the marked device.
1553This is similar to marking a device as faulty, but the device remains
1554in service during the recovery process to increase resilience against
1555multiple failures. When the replacement process finishes, the
1556replaced device will be marked as faulty.
1557
1558.TP
1559.B \-\-with
1560This can follow a list of
1561.B \-\-replace
1562devices. The devices listed after
1563.B \-\-with
1564will be preferentially used to replace the devices listed after
1565.BR \-\-replace .
1566These device must already be spare devices in the array.
1567
b3d31955
N
1568.TP
1569.BR \-\-write\-mostly
a4e13010 1570Subsequent devices that are added or re\-added will have the 'write-mostly'
e0fe762a 1571flag set. This is only valid for RAID1 and means that the 'md' driver
b3d31955
N
1572will avoid reading from these devices if possible.
1573.TP
1574.BR \-\-readwrite
a4e13010 1575Subsequent devices that are added or re\-added will have the 'write-mostly'
b3d31955 1576flag cleared.
4de90913
GJ
1577.TP
1578.BR \-\-cluster\-confirm
1579Confirm the existence of the device. This is issued in response to an \-\-add
1580request by a node in a cluster. When a node adds a device it sends a message
1581to all nodes in the cluster to look for a device with a UUID. This translates
1582to a udev notification with the UUID of the device to be added and the slot
1583number. The receiving node must acknowledge this message
1584with \-\-cluster\-confirm. Valid arguments are <slot>:<devicename> in case
1585the device is found or <slot>:missing in case the device is not found.
b3d31955 1586
ff3c881f
SL
1587.TP
1588.BR \-\-add-journal
3373d49f
SL
1589Add journal to an existing array, or recreate journal for RAID-4/5/6 array
1590that lost a journal device. To avoid interrupting on-going write opertions,
ff3c881f
SL
1591.B \-\-add-journal
1592only works for array in Read-Only state.
1593
71574efb
N
1594.TP
1595.BR \-\-failfast
1596Subsequent devices that are added or re\-added will have
1597the 'failfast' flag set. This is only valid for RAID1 and RAID10 and
1598means that the 'md' driver will avoid long timeouts on error handling
1599where possible.
1600.TP
1601.BR \-\-nofailfast
1602Subsequent devices that are re\-added will be re\-added without
1603the 'failfast' flag set.
1604
2ae555c3 1605.P
e0fe762a 1606Each of these options requires that the first device listed is the array
93e790af 1607to be acted upon, and the remainder are component devices to be added,
e0fe762a 1608removed, marked as faulty, etc. Several different operations can be
2ae555c3
NB
1609specified for different devices, e.g.
1610.in +5
7e23fc43 1611mdadm /dev/md0 \-\-add /dev/sda1 \-\-fail /dev/sdb1 \-\-remove /dev/sdb1
2ae555c3
NB
1612.in -5
1613Each operation applies to all devices listed until the next
93e790af 1614operation.
2ae555c3
NB
1615
1616If an array is using a write-intent bitmap, then devices which have
a4e13010 1617been removed can be re\-added in a way that avoids a full
93e790af 1618reconstruction but instead just updates the blocks that have changed
2ae555c3
NB
1619since the device was removed. For arrays with persistent metadata
1620(superblocks) this is done automatically. For arrays created with
7e23fc43 1621.B \-\-build
2ae555c3 1622mdadm needs to be told that this device we removed recently with
7e23fc43 1623.BR \-\-re\-add .
2ae555c3
NB
1624
1625Devices can only be removed from an array if they are not in active
93e790af
SW
1626use, i.e. that must be spares or failed devices. To remove an active
1627device, it must first be marked as
1628.B faulty.
2ae555c3
NB
1629
1630.SH For Misc mode:
1631
1632.TP
7e23fc43 1633.BR \-Q ", " \-\-query
2ae555c3
NB
1634Examine a device to see
1635(1) if it is an md device and (2) if it is a component of an md
1636array.
1637Information about what is discovered is presented.
1638
1639.TP
7e23fc43 1640.BR \-D ", " \-\-detail
e0fe762a 1641Print details of one or more md devices.
5787fa49 1642
4cce4069
DW
1643.TP
1644.BR \-\-detail\-platform
e0fe762a 1645Print details of the platform's RAID capabilities (firmware / hardware
9eafa1de
MN
1646topology) for a given metadata format. If used without argument, mdadm
1647will scan all controllers looking for their capabilities. Otherwise, mdadm
1648will only look at the controller specified by the argument in form of an
1649absolute filepath or a link, e.g.
1650.IR /sys/devices/pci0000:00/0000:00:1f.2 .
4cce4069 1651
54bad364
KS
1652.TP
1653.BR \-Y ", " \-\-export
1654When used with
9ca39acb
N
1655.BR \-\-detail ,
1656.BR \-\-detail-platform ,
0d726f17 1657.BR \-\-examine ,
9ca39acb
N
1658or
1659.B \-\-incremental
54bad364
KS
1660output will be formatted as
1661.B key=value
1662pairs for easy import into the environment.
1663
9ca39acb
N
1664With
1665.B \-\-incremental
1666The value
1667.B MD_STARTED
1668indicates whether an array was started
1669.RB ( yes )
1670or not, which may include a reason
1671.RB ( unsafe ", " nothing ", " no ).
1672Also the value
1673.B MD_FOREIGN
1674indicates if the array is expected on this host
1675.RB ( no ),
1676or seems to be from elsewhere
1677.RB ( yes ).
1678
2ae555c3 1679.TP
7e23fc43 1680.BR \-E ", " \-\-examine
e0fe762a
N
1681Print contents of the metadata stored on the named device(s).
1682Note the contrast between
1683.B \-\-examine
1684and
1685.BR \-\-detail .
1686.B \-\-examine
1687applies to devices which are components of an array, while
1688.B \-\-detail
1689applies to a whole array which is currently active.
5787fa49 1690.TP
7e23fc43 1691.B \-\-sparc2.2
e0fe762a
N
1692If an array was created on a SPARC machine with a 2.2 Linux kernel
1693patched with RAID support, the superblock will have been created
1694incorrectly, or at least incompatibly with 2.4 and later kernels.
1695Using the
7e23fc43 1696.B \-\-sparc2.2
5787fa49 1697flag with
7e23fc43 1698.B \-\-examine
5787fa49
NB
1699will fix the superblock before displaying it. If this appears to do
1700the right thing, then the array can be successfully assembled using
7e23fc43 1701.BR "\-\-assemble \-\-update=sparc2.2" .
5787fa49 1702
2ae555c3 1703.TP
7e23fc43 1704.BR \-X ", " \-\-examine\-bitmap
2ae555c3 1705Report information about a bitmap file.
01d9299c 1706The argument is either an external bitmap file or an array component
e0fe762a
N
1707in case of an internal bitmap. Note that running this on an array
1708device (e.g.
1709.BR /dev/md0 )
1710does not report the bitmap for that array.
e0d19036 1711
6d388a88
N
1712.TP
1713.B \-\-examine\-badblocks
1714List the bad-blocks recorded for the device, if a bad-blocks list has
5f418455 1715been configured. Currently only
6d388a88 1716.B 1.x
5f418455
MT
1717and
1718.B IMSM
1719metadata support bad-blocks lists.
6d388a88 1720
74db60b0
N
1721.TP
1722.BI \-\-dump= directory
1723.TP
1724.BI \-\-restore= directory
1725Save metadata from lists devices, or restore metadata to listed devices.
1726
cd29a5c8 1727.TP
7e23fc43 1728.BR \-R ", " \-\-run
e0fe762a
N
1729start a partially assembled array. If
1730.B \-\-assemble
1731did not find enough devices to fully start the array, it might leaving
1732it partially assembled. If you wish, you can then use
1733.B \-\-run
1734to start the array in degraded mode.
52826846 1735
cd29a5c8 1736.TP
7e23fc43 1737.BR \-S ", " \-\-stop
cd29a5c8 1738deactivate array, releasing all resources.
52826846 1739
cd29a5c8 1740.TP
7e23fc43 1741.BR \-o ", " \-\-readonly
cd29a5c8 1742mark array as readonly.
52826846 1743
cd29a5c8 1744.TP
7e23fc43 1745.BR \-w ", " \-\-readwrite
cd29a5c8 1746mark array as readwrite.
52826846 1747
e0d19036 1748.TP
7e23fc43 1749.B \-\-zero\-superblock
e0d19036 1750If the device contains a valid md superblock, the block is
35cc5be4 1751overwritten with zeros. With
7e23fc43 1752.B \-\-force
35cc5be4 1753the block where the superblock would be is overwritten even if it
e0d19036 1754doesn't appear to be valid.
52826846 1755
b2a613dd
ZL
1756.B Note:
1757Be careful to call \-\-zero\-superblock with clustered raid, make sure
1758array isn't used or assembled in other cluster node before execute it.
1759
33414a01
DW
1760.TP
1761.B \-\-kill\-subarray=
1762If the device is a container and the argument to \-\-kill\-subarray
1763specifies an inactive subarray in the container, then the subarray is
1764deleted. Deleting all subarrays will leave an 'empty-container' or
afa368f4
N
1765spare superblock on the drives. See
1766.B \-\-zero\-superblock
1767for completely
33414a01
DW
1768removing a superblock. Note that some formats depend on the subarray
1769index for generating a UUID, this command will fail if it would change
1770the UUID of an active subarray.
1771
aa534678
DW
1772.TP
1773.B \-\-update\-subarray=
1774If the device is a container and the argument to \-\-update\-subarray
1775specifies a subarray in the container, then attempt to update the given
1776superblock field in the subarray. See below in
1777.B MISC MODE
1778for details.
1779
feb716e9 1780.TP
7e23fc43 1781.BR \-t ", " \-\-test
feb716e9 1782When used with
7e23fc43 1783.BR \-\-detail ,
feb716e9
NB
1784the exit status of
1785.I mdadm
e0fe762a
N
1786is set to reflect the status of the device. See below in
1787.B MISC MODE
1788for details.
feb716e9 1789
b90c0e9a 1790.TP
7e23fc43 1791.BR \-W ", " \-\-wait
b90c0e9a
NB
1792For each md device given, wait for any resync, recovery, or reshape
1793activity to finish before returning.
1794.I mdadm
1795will return with success if it actually waited for every device
1796listed, otherwise it will return failure.
1797
1770662b
DW
1798.TP
1799.BR \-\-wait\-clean
fabbfd48
DW
1800For each md device given, or each device in /proc/mdstat if
1801.B \-\-scan
1802is given, arrange for the array to be marked clean as soon as possible.
7146ec6a
DW
1803.I mdadm
1804will return with success if the array uses external metadata and we
1805successfully waited. For native arrays this returns immediately as the
6a0ee6a0
DW
1806kernel handles dirty-clean transitions at shutdown. No action is taken
1807if safe-mode handling is disabled.
1770662b 1808
a740cf64
N
1809.TP
1810.B \-\-action=
1811Set the "sync_action" for all md devices given to one of
1812.BR idle ,
1813.BR frozen ,
1814.BR check ,
1815.BR repair .
1816Setting to
1817.B idle
1818will abort any currently running action though some actions will
1819automatically restart.
1820Setting to
1821.B frozen
1822will abort any current action and ensure no other action starts
1823automatically.
1824
1825Details of
1826.B check
1827and
1828.B repair
1829can be found it
1830.IR md (4)
1831under
1832.BR "SCRUBBING AND MISMATCHES" .
1833
8382f19b
NB
1834.SH For Incremental Assembly mode:
1835.TP
7e23fc43 1836.BR \-\-rebuild\-map ", " \-r
8382f19b 1837Rebuild the map file
96fd06ed 1838.RB ( {MAP_PATH} )
8382f19b
NB
1839that
1840.I mdadm
1841uses to help track which arrays are currently being assembled.
1842
1843.TP
7e23fc43 1844.BR \-\-run ", " \-R
8382f19b
NB
1845Run any array assembled as soon as a minimal number of devices are
1846available, rather than waiting until all expected devices are present.
1847
1848.TP
7e23fc43 1849.BR \-\-scan ", " \-s
8382f19b 1850Only meaningful with
7e23fc43 1851.B \-R
8382f19b
NB
1852this will scan the
1853.B map
1854file for arrays that are being incrementally assembled and will try to
1855start any that are not already started. If any such array is listed
1856in
1857.B mdadm.conf
1858as requiring an external bitmap, that bitmap will be attached first.
1859
29ba4804
N
1860.TP
1861.BR \-\-fail ", " \-f
1862This allows the hot-plug system to remove devices that have fully disappeared
1863from the kernel. It will first fail and then remove the device from any
1864array it belongs to.
1865The device name given should be a kernel device name such as "sda",
1866not a name in
1867.IR /dev .
1868
210597d1
PC
1869.TP
1870.BR \-\-path=
87eb4fab
N
1871Only used with \-\-fail. The 'path' given will be recorded so that if
1872a new device appears at the same location it can be automatically
1873added to the same array. This allows the failed device to be
1874automatically replaced by a new device without metadata if it appears
1875at specified path. This option is normally only set by a
1876.I udev
1877script.
210597d1 1878
e0d19036
NB
1879.SH For Monitor mode:
1880.TP
7e23fc43 1881.BR \-m ", " \-\-mail
e0d19036
NB
1882Give a mail address to send alerts to.
1883
1884.TP
7e23fc43 1885.BR \-p ", " \-\-program ", " \-\-alert
e0d19036
NB
1886Give a program to be run whenever an event is detected.
1887
773135f5 1888.TP
7e23fc43 1889.BR \-y ", " \-\-syslog
773135f5
NB
1890Cause all events to be reported through 'syslog'. The messages have
1891facility of 'daemon' and varying priorities.
1892
e0d19036 1893.TP
7e23fc43 1894.BR \-d ", " \-\-delay
e0d19036 1895Give a delay in seconds.
51ac42e3 1896.I mdadm
e0d19036 1897polls the md arrays and then waits this many seconds before polling
e0fe762a
N
1898again. The default is 60 seconds. Since 2.6.16, there is no need to
1899reduce this as the kernel alerts
1900.I mdadm
1901immediately when there is any change.
e0d19036 1902
9a36a9b7
ZB
1903.TP
1904.BR \-r ", " \-\-increment
1905Give a percentage increment.
1906.I mdadm
1907will generate RebuildNN events with the given percentage increment.
1908
d013a55e 1909.TP
7e23fc43 1910.BR \-f ", " \-\-daemonise
d013a55e 1911Tell
51ac42e3 1912.I mdadm
d013a55e 1913to run as a background daemon if it decides to monitor anything. This
e0fe762a 1914causes it to fork and run in the child, and to disconnect from the
d013a55e
NB
1915terminal. The process id of the child is written to stdout.
1916This is useful with
7e23fc43 1917.B \-\-scan
d013a55e
NB
1918which will only continue monitoring if a mail address or alert program
1919is found in the config file.
1920
b5e64645 1921.TP
7e23fc43 1922.BR \-i ", " \-\-pid\-file
b5e64645 1923When
51ac42e3 1924.I mdadm
b5e64645
NB
1925is running in daemon mode, write the pid of the daemon process to
1926the specified file, instead of printing it on standard output.
1927
aa88f531 1928.TP
7e23fc43 1929.BR \-1 ", " \-\-oneshot
aa88f531
NB
1930Check arrays only once. This will generate
1931.B NewArray
1932events and more significantly
1933.B DegradedArray
a9d69660
NB
1934and
1935.B SparesMissing
aa88f531
NB
1936events. Running
1937.in +5
7e23fc43 1938.B " mdadm \-\-monitor \-\-scan \-1"
aa88f531
NB
1939.in -5
1940from a cron script will ensure regular notification of any degraded arrays.
1941
98c6faba 1942.TP
7e23fc43 1943.BR \-t ", " \-\-test
98c6faba
NB
1944Generate a
1945.B TestMessage
1946alert for every array found at startup. This alert gets mailed and
1947passed to the alert program. This can be used for testing that alert
a9d69660 1948message do get through successfully.
98c6faba 1949
210597d1
PC
1950.TP
1951.BR \-\-no\-sharing
87eb4fab 1952This inhibits the functionality for moving spares between arrays.
210597d1
PC
1953Only one monitoring process started with
1954.B \-\-scan
87eb4fab
N
1955but without this flag is allowed, otherwise the two could interfere
1956with each other.
210597d1 1957
e0d19036 1958.SH ASSEMBLE MODE
52826846 1959
cd29a5c8
NB
1960.HP 12
1961Usage:
7e23fc43 1962.B mdadm \-\-assemble
5787fa49
NB
1963.I md-device options-and-component-devices...
1964.HP 12
1965Usage:
7e23fc43 1966.B mdadm \-\-assemble \-\-scan
e0fe762a 1967.I md-devices-and-options...
cd29a5c8
NB
1968.HP 12
1969Usage:
7e23fc43 1970.B mdadm \-\-assemble \-\-scan
e0fe762a 1971.I options...
52826846 1972
cd29a5c8 1973.PP
e0fe762a 1974This usage assembles one or more RAID arrays from pre-existing components.
9a9dab36 1975For each array, mdadm needs to know the md device, the identity of the
e0fe762a 1976array, and a number of component-devices. These can be found in a number of ways.
52826846 1977
5787fa49 1978In the first usage example (without the
7e23fc43 1979.BR \-\-scan )
5787fa49
NB
1980the first device given is the md device.
1981In the second usage example, all devices listed are treated as md
1982devices and assembly is attempted.
1983In the third (where no devices are listed) all md devices that are
cb77f620 1984listed in the configuration file are assembled. If no arrays are
e0fe762a
N
1985described by the configuration file, then any arrays that
1986can be found on unused devices will be assembled.
52826846 1987
d013a55e 1988If precisely one device is listed, but
7e23fc43 1989.B \-\-scan
dd0781e5 1990is not given, then
d013a55e
NB
1991.I mdadm
1992acts as though
7e23fc43 1993.B \-\-scan
93e790af 1994was given and identity information is extracted from the configuration file.
d013a55e 1995
2ae555c3 1996The identity can be given with the
7e23fc43 1997.B \-\-uuid
e0fe762a
N
1998option, the
1999.B \-\-name
2000option, or the
7e23fc43 2001.B \-\-super\-minor
93e790af
SW
2002option, will be taken from the md-device record in the config file, or
2003will be taken from the super block of the first component-device
2004listed on the command line.
52826846 2005
2ae555c3 2006Devices can be given on the
7e23fc43 2007.B \-\-assemble
e0fe762a 2008command line or in the config file. Only devices which have an md
5787fa49
NB
2009superblock which contains the right identity will be considered for
2010any array.
52826846 2011
2ae555c3 2012The config file is only used if explicitly named with
7e23fc43 2013.B \-\-config
d013a55e 2014or requested with (a possibly implicit)
7e23fc43 2015.BR \-\-scan .
52826846 2016In the later case,
9a9dab36 2017.B /etc/mdadm.conf
8fd8d9c4
N
2018or
2019.B /etc/mdadm/mdadm.conf
52826846
NB
2020is used.
2021
2ae555c3 2022If
7e23fc43 2023.B \-\-scan
cd29a5c8
NB
2024is not given, then the config file will only be used to find the
2025identity of md arrays.
52826846 2026
2d465520 2027Normally the array will be started after it is assembled. However if
7e23fc43 2028.B \-\-scan
e0fe762a
N
2029is not given and not all expected drives were listed, then the array
2030is not started (to guard against usage errors). To insist that the
2031array be started in this case (as may work for RAID1, 4, 5, 6, or 10),
2032give the
7e23fc43 2033.B \-\-run
cd29a5c8 2034flag.
52826846 2035
e0fe762a
N
2036If
2037.I udev
2038is active,
2039.I mdadm
2040does not create any entries in
dd0781e5 2041.B /dev
e0fe762a
N
2042but leaves that to
2043.IR udev .
2044It does record information in
96fd06ed 2045.B {MAP_PATH}
e0fe762a
N
2046which will allow
2047.I udev
2048to choose the correct name.
dd0781e5 2049
e0fe762a
N
2050If
2051.I mdadm
2052detects that udev is not configured, it will create the devices in
2053.B /dev
2054itself.
dd0781e5 2055
e0fe762a
N
2056In Linux kernels prior to version 2.6.28 there were two distinctly
2057different types of md devices that could be created: one that could be
2058partitioned using standard partitioning tools and one that could not.
2059Since 2.6.28 that distinction is no longer relevant as both type of
2060devices can be partitioned.
2061.I mdadm
2062will normally create the type that originally could not be partitioned
2063as it has a well defined major number (9).
dd0781e5 2064
e0fe762a
N
2065Prior to 2.6.28, it is important that mdadm chooses the correct type
2066of array device to use. This can be controlled with the
2067.B \-\-auto
2068option. In particular, a value of "mdp" or "part" or "p" tells mdadm
2069to use a partitionable device rather than the default.
dd0781e5 2070
e0fe762a
N
2071In the no-udev case, the value given to
2072.B \-\-auto
2073can be suffixed by a number. This tells
2074.I mdadm
2075to create that number of partition devices rather than the default of 4.
dd0781e5 2076
e0fe762a 2077The value given to
7e23fc43 2078.B \-\-auto
e0fe762a
N
2079can also be given in the configuration file as a word starting
2080.B auto=
2081on the ARRAY line for the relevant array.
52826846 2082
41a3b72a
NB
2083.SS Auto Assembly
2084When
7e23fc43 2085.B \-\-assemble
41a3b72a 2086is used with
7e23fc43 2087.B \-\-scan
41a3b72a
NB
2088and no devices are listed,
2089.I mdadm
2090will first attempt to assemble all the arrays listed in the config
2091file.
2092
cb77f620 2093If no arrays are listed in the config (other than those marked
e0fe762a
N
2094.BR <ignore> )
2095it will look through the available devices for possible arrays and
2096will try to assemble anything that it finds. Arrays which are tagged
2097as belonging to the given homehost will be assembled and started
2098normally. Arrays which do not obviously belong to this host are given
2099names that are expected not to conflict with anything local, and are
2100started "read-auto" so that nothing is written to any device until the
2101array is written to. i.e. automatic resync etc is delayed.
41a3b72a
NB
2102
2103If
2104.I mdadm
2105finds a consistent set of devices that look like they should comprise
2106an array, and if the superblock is tagged as belonging to the given
2107home host, it will automatically choose a device name and try to
2108assemble the array. If the array uses version-0.90 metadata, then the
2109.B minor
2110number as recorded in the superblock is used to create a name in
2111.B /dev/md/
2112so for example
2113.BR /dev/md/3 .
2114If the array uses version-1 metadata, then the
2115.B name
2116from the superblock is used to similarly create a name in
e0fe762a 2117.B /dev/md/
93e790af 2118(the name will have any 'host' prefix stripped first).
41a3b72a 2119
c64ba03a
N
2120This behaviour can be modified by the
2121.I AUTO
2122line in the
2123.I mdadm.conf
2124configuration file. This line can indicate that specific metadata
2125type should, or should not, be automatically assembled. If an array
2126is found which is not listed in
2127.I mdadm.conf
2128and has a metadata format that is denied by the
2129.I AUTO
2130line, then it will not be assembled.
2131The
2132.I AUTO
2133line can also request that all arrays identified as being for this
2134homehost should be assembled regardless of their metadata type.
2135See
2136.IR mdadm.conf (5)
2137for further details.
2138
246cebdb
AK
2139Note: Auto assembly cannot be used for assembling and activating some
2140arrays which are undergoing reshape. In particular as the
2141.B backup\-file
2142cannot be given, any reshape which requires a backup-file to continue
2143cannot be started by auto assembly. An array which is growing to more
2144devices and has passed the critical section can be assembled using
2145auto-assembly.
41a3b72a 2146
cd29a5c8 2147.SH BUILD MODE
52826846 2148
cd29a5c8
NB
2149.HP 12
2150Usage:
7e23fc43 2151.B mdadm \-\-build
93e790af 2152.I md-device
7e23fc43
PS
2153.BI \-\-chunk= X
2154.BI \-\-level= Y
2155.BI \-\-raid\-devices= Z
cd29a5c8
NB
2156.I devices
2157
2158.PP
2ae555c3 2159This usage is similar to
7e23fc43 2160.BR \-\-create .
e0fe762a 2161The difference is that it creates an array without a superblock. With
cd29a5c8 2162these arrays there is no difference between initially creating the array and
52826846
NB
2163subsequently assembling the array, except that hopefully there is useful
2164data there in the second case.
2165
e0fe762a
N
2166The level may raid0, linear, raid1, raid10, multipath, or faulty, or
2167one of their synonyms. All devices must be listed and the array will
2168be started once complete. It will often be appropriate to use
2169.B \-\-assume\-clean
2170with levels raid1 or raid10.
cd29a5c8
NB
2171
2172.SH CREATE MODE
2173
2174.HP 12
2175Usage:
7e23fc43 2176.B mdadm \-\-create
93e790af 2177.I md-device
7e23fc43
PS
2178.BI \-\-chunk= X
2179.BI \-\-level= Y
cd29a5c8 2180.br
7e23fc43 2181.BI \-\-raid\-devices= Z
e0fe762a 2182.I devices
cd29a5c8
NB
2183
2184.PP
2185This usage will initialise a new md array, associate some devices with
2186it, and activate the array.
2187
e0fe762a
N
2188The named device will normally not exist when
2189.I "mdadm \-\-create"
2190is run, but will be created by
2191.I udev
2192once the array becomes active.
dd0781e5 2193
ced5fa8b
BK
2194The max length md-device name is limited to 32 characters.
2195Different metadata types have more strict limitation
2196(like IMSM where only 16 characters are allowed).
2197For that reason, long name could be truncated or rejected, it depends on metadata policy.
2198
e0fe762a
N
2199As devices are added, they are checked to see if they contain RAID
2200superblocks or filesystems. They are also checked to see if the variance in
cd29a5c8
NB
2201device size exceeds 1%.
2202
2203If any discrepancy is found, the array will not automatically be run, though
2ae555c3 2204the presence of a
7e23fc43 2205.B \-\-run
cd29a5c8
NB
2206can override this caution.
2207
2d465520 2208To create a "degraded" array in which some devices are missing, simply
d013a55e 2209give the word "\fBmissing\fP"
2d465520 2210in place of a device name. This will cause
51ac42e3 2211.I mdadm
2d465520
NB
2212to leave the corresponding slot in the array empty.
2213For a RAID4 or RAID5 array at most one slot can be
98c6faba 2214"\fBmissing\fP"; for a RAID6 array at most two slots.
2d465520
NB
2215For a RAID1 array, only one real device needs to be given. All of the
2216others can be
d013a55e 2217"\fBmissing\fP".
2d465520 2218
feb716e9 2219When creating a RAID5 array,
51ac42e3 2220.I mdadm
feb716e9 2221will automatically create a degraded array with an extra spare drive.
e0fe762a
N
2222This is because building the spare into a degraded array is in general
2223faster than resyncing the parity on a non-degraded, but not clean,
2224array. This feature can be overridden with the
7e23fc43 2225.B \-\-force
feb716e9
NB
2226option.
2227
0ee4da98 2228When creating an array with version-1 metadata a name for the array is
41a3b72a
NB
2229required.
2230If this is not given with the
7e23fc43 2231.B \-\-name
41a3b72a
NB
2232option,
2233.I mdadm
0ee4da98 2234will choose a name based on the last component of the name of the
41a3b72a
NB
2235device being created. So if
2236.B /dev/md3
2237is being created, then the name
2238.B 3
2239will be chosen.
2240If
2241.B /dev/md/home
2242is being created, then the name
2243.B home
2244will be used.
2245
e0fe762a
N
2246When creating a partition based array, using
2247.I mdadm
2248with version-1.x metadata, the partition type should be set to
e0f31f50 2249.B 0xDA
e0fe762a 2250(non fs-data). This type selection allows for greater precision since
e0f31f50
PC
2251using any other [RAID auto-detect (0xFD) or a GNU/Linux partition (0x83)],
2252might create problems in the event of array recovery through a live cdrom.
2253
3d3dd91e
NB
2254A new array will normally get a randomly assigned 128bit UUID which is
2255very likely to be unique. If you have a specific need, you can choose
2256a UUID for the array by giving the
7e23fc43 2257.B \-\-uuid=
3d3dd91e
NB
2258option. Be warned that creating two arrays with the same UUID is a
2259recipe for disaster. Also, using
7e23fc43 2260.B \-\-uuid=
3d3dd91e 2261when creating a v0.90 array will silently override any
7e23fc43 2262.B \-\-homehost=
3d3dd91e 2263setting.
e43d0cda
NB
2264.\"If the
2265.\".B \-\-size
2266.\"option is given, it is not necessary to list any component-devices in this command.
2267.\"They can be added later, before a
2268.\".B \-\-run.
2269.\"If no
2270.\".B \-\-size
2271.\"is given, the apparent size of the smallest drive given is used.
cd29a5c8 2272
748952f7
N
2273If the array type supports a write-intent bitmap, and if the devices
2274in the array exceed 100G is size, an internal write-intent bitmap
2275will automatically be added unless some other option is explicitly
2276requested with the
2277.B \-\-bitmap
5308f117
AP
2278option or a different consistency policy is selected with the
2279.B \-\-consistency\-policy
2280option. In any case space for a bitmap will be reserved so that one
2281can be added later with
748952f7
N
2282.BR "\-\-grow \-\-bitmap=internal" .
2283
8fac4a54
TM
2284If the metadata type supports it (currently only 1.x and IMSM metadata),
2285space will be allocated to store a bad block list. This allows a modest
bf95d0f3
N
2286number of bad blocks to be recorded, allowing the drive to remain in
2287service while only partially functional.
2288
8fd8d9c4
N
2289When creating an array within a
2290.B CONTAINER
2291.I mdadm
2292can be given either the list of devices to use, or simply the name of
2293the container. The former case gives control over which devices in
2294the container will be used for the array. The latter case allows
2295.I mdadm
2296to automatically choose which devices to use based on how much spare
2297space is available.
2298
53e8b987 2299The General Management options that are valid with
7e23fc43 2300.B \-\-create
53e8b987 2301are:
cd29a5c8 2302.TP
7e23fc43 2303.B \-\-run
dd0781e5 2304insist on running the array even if some devices look like they might
cd29a5c8
NB
2305be in use.
2306
2307.TP
7e23fc43 2308.B \-\-readonly
8a70632f 2309start the array in readonly mode.
52826846 2310
e0d19036 2311.SH MANAGE MODE
cd29a5c8
NB
2312.HP 12
2313Usage:
e0d19036
NB
2314.B mdadm
2315.I device
2316.I options... devices...
cd29a5c8
NB
2317.PP
2318
e0d19036
NB
2319This usage will allow individual devices in an array to be failed,
2320removed or added. It is possible to perform multiple operations with
e0fe762a 2321on command. For example:
e0d19036 2322.br
7e23fc43 2323.B " mdadm /dev/md0 \-f /dev/hda1 \-r /dev/hda1 \-a /dev/hda1"
e0d19036
NB
2324.br
2325will firstly mark
2326.B /dev/hda1
2327as faulty in
2328.B /dev/md0
2329and will then remove it from the array and finally add it back
2d465520 2330in as a spare. However only one md array can be affected by a single
2ae555c3 2331command.
e0d19036 2332
e0fe762a
N
2333When a device is added to an active array, mdadm checks to see if it
2334has metadata on it which suggests that it was recently a member of the
a4e13010 2335array. If it does, it tries to "re\-add" the device. If there have
e0fe762a
N
2336been no changes since the device was removed, or if the array has a
2337write-intent bitmap which has recorded whatever changes there were,
2338then the device will immediately become a full member of the array and
2339those differences recorded in the bitmap will be resolved.
2340
e0d19036
NB
2341.SH MISC MODE
2342.HP 12
2343Usage:
9a9dab36 2344.B mdadm
e0d19036 2345.I options ...
e0fe762a 2346.I devices ...
e0d19036 2347.PP
cd29a5c8 2348
b5e64645 2349MISC mode includes a number of distinct operations that
e0d19036
NB
2350operate on distinct devices. The operations are:
2351.TP
962a108f 2352.B \-\-query
e0d19036
NB
2353The device is examined to see if it is
2354(1) an active md array, or
2355(2) a component of an md array.
2356The information discovered is reported.
2357
2358.TP
962a108f 2359.B \-\-detail
2d465520 2360The device should be an active md device.
e0fe762a 2361.B mdadm
2d465520 2362will display a detailed description of the array.
7e23fc43 2363.B \-\-brief
2d465520 2364or
7e23fc43 2365.B \-\-scan
2d465520 2366will cause the output to be less detailed and the format to be
e0d19036 2367suitable for inclusion in
87eb4fab 2368.BR mdadm.conf .
feb716e9
NB
2369The exit status of
2370.I mdadm
2371will normally be 0 unless
2372.I mdadm
93e790af 2373failed to get useful information about the device(s); however, if the
7e23fc43 2374.B \-\-test
feb716e9
NB
2375option is given, then the exit status will be:
2376.RS
2377.TP
23780
2379The array is functioning normally.
2380.TP
23811
2382The array has at least one failed device.
2383.TP
23842
a77be586 2385The array has multiple failed devices such that it is unusable.
feb716e9
NB
2386.TP
23874
2388There was an error while trying to get information about the device.
2389.RE
cd29a5c8 2390
4cce4069
DW
2391.TP
2392.B \-\-detail\-platform
e0fe762a 2393Print detail of the platform's RAID capabilities (firmware / hardware
4cce4069
DW
2394topology). If the metadata is specified with
2395.B \-e
2396or
2397.B \-\-metadata=
2398then the return status will be:
2399.RS
2400.TP
24010
2402metadata successfully enumerated its platform components on this system
2403.TP
24041
2405metadata is platform independent
2406.TP
24072
2408metadata failed to find its platform components on this system
2409.RE
2410
aa534678
DW
2411.TP
2412.B \-\-update\-subarray=
2413If the device is a container and the argument to \-\-update\-subarray
2414specifies a subarray in the container, then attempt to update the given
2415superblock field in the subarray. Similar to updating an array in
2416"assemble" mode, the field to update is selected by
2417.B \-U
2418or
2419.B \-\-update=
e6e9dd3f
AP
2420option. The supported options are
2421.BR name ,
dc95f821
JR
2422.BR ppl ,
2423.BR no\-ppl ,
2424.BR bitmap
e6e9dd3f 2425and
dc95f821 2426.BR no\-bitmap .
aa534678 2427
bcbb92d4 2428The
aa534678
DW
2429.B name
2430option updates the subarray name in the metadata, it may not affect the
2431device node name or the device node symlink until the subarray is
bcbb92d4 2432re\-assembled. If updating
aa534678
DW
2433.B name
2434would change the UUID of an active subarray this operation is blocked,
2435and the command will end in an error.
2436
e6e9dd3f
AP
2437The
2438.B ppl
2439and
2440.B no\-ppl
2441options enable and disable PPL in the metadata. Currently supported only for
2442IMSM subarrays.
2443
dc95f821
JR
2444The
2445.B bitmap
2446and
2447.B no\-bitmap
2448options enable and disable write-intent bitmap in the metadata. Currently supported only for
2449IMSM subarrays.
2450
e0d19036 2451.TP
962a108f 2452.B \-\-examine
2d465520 2453The device should be a component of an md array.
51ac42e3 2454.I mdadm
2d465520 2455will read the md superblock of the device and display the contents.
e0d19036 2456If
7e23fc43 2457.B \-\-brief
93e790af 2458or
7e23fc43 2459.B \-\-scan
93e790af 2460is given, then multiple devices that are components of the one array
e0d19036
NB
2461are grouped together and reported in a single entry suitable
2462for inclusion in
87eb4fab 2463.BR mdadm.conf .
e0d19036 2464
2d465520 2465Having
7e23fc43 2466.B \-\-scan
e0d19036
NB
2467without listing any devices will cause all devices listed in the
2468config file to be examined.
2469
74db60b0
N
2470.TP
2471.BI \-\-dump= directory
2472If the device contains RAID metadata, a file will be created in the
2473.I directory
2474and the metadata will be written to it. The file will be the same
2475size as the device and have the metadata written in the file at the
2476same locate that it exists in the device. However the file will be "sparse" so
2477that only those blocks containing metadata will be allocated. The
2478total space used will be small.
2479
2480The file name used in the
2481.I directory
2482will be the base name of the device. Further if any links appear in
2483.I /dev/disk/by-id
2484which point to the device, then hard links to the file will be created
2485in
2486.I directory
2487based on these
2488.I by-id
2489names.
2490
2491Multiple devices can be listed and their metadata will all be stored
2492in the one directory.
2493
2494.TP
2495.BI \-\-restore= directory
2496This is the reverse of
2497.BR \-\-dump .
2498.I mdadm
2499will locate a file in the directory that has a name appropriate for
2500the given device and will restore metadata from it. Names that match
2501.I /dev/disk/by-id
2502names are preferred, however if two of those refer to different files,
2503.I mdadm
2504will not choose between them but will abort the operation.
2505
2506If a file name is given instead of a
2507.I directory
2508then
2509.I mdadm
2510will restore from that file to a single device, always provided the
2511size of the file matches that of the device, and the file contains
2512valid metadata.
e0d19036 2513.TP
962a108f 2514.B \-\-stop
98c6faba
NB
2515The devices should be active md arrays which will be deactivated, as
2516long as they are not currently in use.
e0d19036
NB
2517
2518.TP
962a108f 2519.B \-\-run
e0d19036
NB
2520This will fully activate a partially assembled md array.
2521
2522.TP
962a108f 2523.B \-\-readonly
e0d19036
NB
2524This will mark an active array as read-only, providing that it is
2525not currently being used.
2526
2527.TP
962a108f 2528.B \-\-readwrite
e0d19036
NB
2529This will change a
2530.B readonly
2531array back to being read/write.
2532
2d465520 2533.TP
962a108f 2534.B \-\-scan
2d465520 2535For all operations except
7e23fc43
PS
2536.BR \-\-examine ,
2537.B \-\-scan
2d465520
NB
2538will cause the operation to be applied to all arrays listed in
2539.BR /proc/mdstat .
2540For
7e23fc43
PS
2541.BR \-\-examine,
2542.B \-\-scan
2d465520
NB
2543causes all devices listed in the config file to be examined.
2544
a1331cc4
N
2545.TP
2546.BR \-b ", " \-\-brief
2547Be less verbose. This is used with
2548.B \-\-detail
2549and
2550.BR \-\-examine .
2551Using
2552.B \-\-brief
2553with
2554.B \-\-verbose
2555gives an intermediate level of verbosity.
2556
e0d19036
NB
2557.SH MONITOR MODE
2558
cd29a5c8
NB
2559.HP 12
2560Usage:
7e23fc43 2561.B mdadm \-\-monitor
e0d19036
NB
2562.I options... devices...
2563
cd29a5c8 2564.PP
e0d19036 2565This usage causes
51ac42e3 2566.I mdadm
e0d19036
NB
2567to periodically poll a number of md arrays and to report on any events
2568noticed.
51ac42e3 2569.I mdadm
e0d19036
NB
2570will never exit once it decides that there are arrays to be checked,
2571so it should normally be run in the background.
2572
2d465520 2573As well as reporting events,
51ac42e3 2574.I mdadm
2d465520
NB
2575may move a spare drive from one array to another if they are in the
2576same
2577.B spare-group
210597d1
PC
2578or
2579.B domain
a9d69660 2580and if the destination array has a failed drive but no spares.
2d465520 2581
e0d19036 2582If any devices are listed on the command line,
51ac42e3 2583.I mdadm
e0fe762a 2584will only monitor those devices. Otherwise all arrays listed in the
e0d19036 2585configuration file will be monitored. Further, if
7e23fc43 2586.B \-\-scan
e0d19036
NB
2587is given, then any other md devices that appear in
2588.B /proc/mdstat
2589will also be monitored.
2590
2591The result of monitoring the arrays is the generation of events.
bd526cee 2592These events are passed to a separate program (if specified) and may
2d465520 2593be mailed to a given E-mail address.
e0d19036 2594
93e790af
SW
2595When passing events to a program, the program is run once for each event,
2596and is given 2 or 3 command-line arguments: the first is the
2597name of the event (see below), the second is the name of the
bd526cee 2598md device which is affected, and the third is the name of a related
93e790af 2599device if relevant (such as a component device that has failed).
cd29a5c8
NB
2600
2601If
7e23fc43 2602.B \-\-scan
e0d19036
NB
2603is given, then a program or an E-mail address must be specified on the
2604command line or in the config file. If neither are available, then
51ac42e3 2605.I mdadm
e0d19036
NB
2606will not monitor anything.
2607Without
93e790af 2608.B \-\-scan,
51ac42e3 2609.I mdadm
2d465520 2610will continue monitoring as long as something was found to monitor. If
e0d19036
NB
2611no program or email is given, then each event is reported to
2612.BR stdout .
cd29a5c8 2613
e0d19036
NB
2614The different events are:
2615
2616.RS 4
2617.TP
2618.B DeviceDisappeared
2d465520 2619An md array which previously was configured appears to no longer be
773135f5 2620configured. (syslog priority: Critical)
e0d19036 2621
b8f72a62
NB
2622If
2623.I mdadm
2624was told to monitor an array which is RAID0 or Linear, then it will
2625report
2626.B DeviceDisappeared
2627with the extra information
2628.BR Wrong-Level .
2629This is because RAID0 and Linear do not support the device-failed,
2630hot-spare and resync operations which are monitored.
2631
e0d19036
NB
2632.TP
2633.B RebuildStarted
2ca20929
JC
2634An md array started reconstruction (e.g. recovery, resync, reshape,
2635check, repair). (syslog priority: Warning)
e0d19036
NB
2636
2637.TP
2638.BI Rebuild NN
2639Where
2640.I NN
9a36a9b7
ZB
2641is a two-digit number (ie. 05, 48). This indicates that rebuild
2642has passed that many percent of the total. The events are generated
2643with fixed increment since 0. Increment size may be specified with
2644a commandline option (default is 20). (syslog priority: Warning)
e0d19036 2645
98c6faba
NB
2646.TP
2647.B RebuildFinished
2648An md array that was rebuilding, isn't any more, either because it
773135f5 2649finished normally or was aborted. (syslog priority: Warning)
98c6faba 2650
e0d19036
NB
2651.TP
2652.B Fail
773135f5
NB
2653An active component device of an array has been marked as
2654faulty. (syslog priority: Critical)
e0d19036
NB
2655
2656.TP
2657.B FailSpare
2658A spare component device which was being rebuilt to replace a faulty
93e790af 2659device has failed. (syslog priority: Critical)
e0d19036
NB
2660
2661.TP
2662.B SpareActive
2663A spare component device which was being rebuilt to replace a faulty
98b24a2a 2664device has been successfully rebuilt and has been made active.
773135f5 2665(syslog priority: Info)
e0d19036
NB
2666
2667.TP
2668.B NewArray
2669A new md array has been detected in the
2670.B /proc/mdstat
e0fe762a 2671file. (syslog priority: Info)
e0d19036 2672
aa88f531
NB
2673.TP
2674.B DegradedArray
2675A newly noticed array appears to be degraded. This message is not
2676generated when
2677.I mdadm
2678notices a drive failure which causes degradation, but only when
2679.I mdadm
2680notices that an array is degraded when it first sees the array.
93e790af 2681(syslog priority: Critical)
aa88f531 2682
e0d19036
NB
2683.TP
2684.B MoveSpare
2685A spare drive has been moved from one array in a
2686.B spare-group
210597d1
PC
2687or
2688.B domain
e0d19036 2689to another to allow a failed drive to be replaced.
773135f5 2690(syslog priority: Info)
e0d19036 2691
b8f72a62
NB
2692.TP
2693.B SparesMissing
2694If
2695.I mdadm
2696has been told, via the config file, that an array should have a certain
2697number of spare devices, and
2698.I mdadm
93e790af 2699detects that it has fewer than this number when it first sees the
b8f72a62
NB
2700array, it will report a
2701.B SparesMissing
2702message.
d1732eeb 2703(syslog priority: Warning)
b8f72a62 2704
98c6faba
NB
2705.TP
2706.B TestMessage
2707An array was found at startup, and the
7e23fc43 2708.B \-\-test
98c6faba 2709flag was given.
773135f5 2710(syslog priority: Info)
e0d19036
NB
2711.RE
2712
2713Only
93e790af
SW
2714.B Fail,
2715.B FailSpare,
2716.B DegradedArray,
2717.B SparesMissing
e0d19036 2718and
98c6faba 2719.B TestMessage
e0d19036 2720cause Email to be sent. All events cause the program to be run.
93e790af 2721The program is run with two or three arguments: the event
e0d19036
NB
2722name, the array device and possibly a second device.
2723
2724Each event has an associated array device (e.g.
2725.BR /dev/md1 )
2726and possibly a second device. For
2727.BR Fail ,
2728.BR FailSpare ,
2729and
2730.B SpareActive
2731the second device is the relevant component device.
2732For
2733.B MoveSpare
2734the second device is the array that the spare was moved from.
2735
2736For
51ac42e3 2737.I mdadm
e0d19036 2738to move spares from one array to another, the different arrays need to
93e790af 2739be labeled with the same
e0d19036 2740.B spare-group
210597d1 2741or the spares must be allowed to migrate through matching POLICY domains
e0d19036
NB
2742in the configuration file. The
2743.B spare-group
93e790af 2744name can be any string; it is only necessary that different spare
2d465520 2745groups use different names.
e0d19036
NB
2746
2747When
51ac42e3 2748.I mdadm
93e790af 2749detects that an array in a spare group has fewer active
e0d19036
NB
2750devices than necessary for the complete array, and has no spare
2751devices, it will look for another array in the same spare group that
2752has a full complement of working drive and a spare. It will then
2753attempt to remove the spare from the second drive and add it to the
2754first.
2755If the removal succeeds but the adding fails, then it is added back to
2756the original array.
2757
210597d1
PC
2758If the spare group for a degraded array is not defined,
2759.I mdadm
2760will look at the rules of spare migration specified by POLICY lines in
87eb4fab 2761.B mdadm.conf
210597d1
PC
2762and then follow similar steps as above if a matching spare is found.
2763
dd0781e5
NB
2764.SH GROW MODE
2765The GROW mode is used for changing the size or shape of an active
2766array.
2767For this to work, the kernel must support the necessary change.
c64881d7 2768Various types of growth are being added during 2.6 development.
dd0781e5 2769
c64881d7 2770Currently the supported changes include
dfd4d8ee 2771.IP \(bu 4
c64881d7 2772change the "size" attribute for RAID1, RAID4, RAID5 and RAID6.
dfd4d8ee 2773.IP \(bu 4
c64881d7
N
2774increase or decrease the "raid\-devices" attribute of RAID0, RAID1, RAID4,
2775RAID5, and RAID6.
cb77f620 2776.IP \(bu 4
17790db6 2777change the chunk-size and layout of RAID0, RAID4, RAID5, RAID6 and RAID10.
cb77f620 2778.IP \(bu 4
c64881d7 2779convert between RAID1 and RAID5, between RAID5 and RAID6, between
cb77f620 2780RAID0, RAID4, and RAID5, and between RAID0 and RAID10 (in the near-2 mode).
dfd4d8ee 2781.IP \(bu 4
93e790af 2782add a write-intent bitmap to any array which supports these bitmaps, or
2ae555c3 2783remove a write-intent bitmap from such an array.
860f11ed
AP
2784.IP \(bu 4
2785change the array's consistency policy.
dfd4d8ee 2786.PP
dd0781e5 2787
9ab6e80a 2788Using GROW on containers is currently supported only for Intel's IMSM
c64881d7
N
2789container format. The number of devices in a container can be
2790increased - which affects all arrays in the container - or an array
2791in a container can be converted between levels where those levels are
2792supported by the container, and the conversion is on of those listed
4431efeb 2793above.
8fd8d9c4 2794
0de8d44d 2795.PP
5a5b3a67
MZ
2796Notes:
2797.IP \(bu 4
2798Intel's native checkpointing doesn't use
0de8d44d
AK
2799.B --backup-file
2800option and it is transparent for assembly feature.
5a5b3a67
MZ
2801.IP \(bu 4
2802Roaming between Windows(R) and Linux systems for IMSM metadata is not
2803supported during grow process.
2551061c
CL
2804.IP \(bu 4
2805When growing a raid0 device, the new component disk size (or external
2806backup size) should be larger than LCM(old, new) * chunk-size * 2,
2807where LCM() is the least common multiple of the old and new count of
2808component disks, and "* 2" comes from the fact that mdadm refuses to
2809use more than half of a spare device for backup space.
0de8d44d 2810
2ae555c3 2811.SS SIZE CHANGES
c64881d7 2812Normally when an array is built the "size" is taken from the smallest
dd0781e5
NB
2813of the drives. If all the small drives in an arrays are, one at a
2814time, removed and replaced with larger drives, then you could have an
2815array of large drives with only a small amount used. In this
2816situation, changing the "size" with "GROW" mode will allow the extra
2817space to start being used. If the size is increased in this way, a
2818"resync" process will start to make sure the new parts of the array
2819are synchronised.
2820
2821Note that when an array changes size, any filesystem that may be
cb77f620 2822stored in the array will not automatically grow or shrink to use or
88b496c2 2823vacate the space. The
666bba9b
N
2824filesystem will need to be explicitly told to use the extra space
2825after growing, or to reduce its size
2826.B prior
2827to shrinking the array.
dd0781e5 2828
e0fe762a
N
2829Also the size of an array cannot be changed while it has an active
2830bitmap. If an array has a bitmap, it must be removed before the size
cb77f620 2831can be changed. Once the change is complete a new bitmap can be created.
e0fe762a 2832
7fa9af4c
ZL
2833.PP
2834Note:
2835.B "--grow --size"
2836is not yet supported for external file bitmap.
2837
e0fe762a 2838.SS RAID\-DEVICES CHANGES
2ae555c3 2839
dd0781e5
NB
2840A RAID1 array can work with any number of devices from 1 upwards
2841(though 1 is not very useful). There may be times which you want to
2842increase or decrease the number of active devices. Note that this is
2843different to hot-add or hot-remove which changes the number of
2844inactive devices.
2845
2846When reducing the number of devices in a RAID1 array, the slots which
2847are to be removed from the array must already be vacant. That is, the
93e790af 2848devices which were in those slots must be failed and removed.
dd0781e5
NB
2849
2850When the number of devices is increased, any hot spares that are
a9d69660 2851present will be activated immediately.
dd0781e5 2852
f24e2d6c 2853Changing the number of active devices in a RAID5 or RAID6 is much more
2ae555c3 2854effort. Every block in the array will need to be read and written
f24e2d6c 2855back to a new location. From 2.6.17, the Linux Kernel is able to
ca4f89a3
N
2856increase the number of devices in a RAID5 safely, including restarting
2857an interrupted "reshape". From 2.6.31, the Linux Kernel is able to
f24e2d6c
N
2858increase or decrease the number of devices in a RAID5 or RAID6.
2859
c64881d7
N
2860From 2.6.35, the Linux Kernel is able to convert a RAID0 in to a RAID4
2861or RAID5.
2862.I mdadm
2863uses this functionality and the ability to add
2864devices to a RAID4 to allow devices to be added to a RAID0. When
2865requested to do this,
2866.I mdadm
2867will convert the RAID0 to a RAID4, add the necessary disks and make
2868the reshape happen, and then convert the RAID4 back to RAID0.
2869
f24e2d6c
N
2870When decreasing the number of devices, the size of the array will also
2871decrease. If there was data in the array, it could get destroyed and
666bba9b
N
2872this is not reversible, so you should firstly shrink the filesystem on
2873the array to fit within the new size. To help prevent accidents,
f24e2d6c
N
2874.I mdadm
2875requires that the size of the array be decreased first with
2876.BR "mdadm --grow --array-size" .
2877This is a reversible change which simply makes the end of the array
2878inaccessible. The integrity of any data can then be checked before
2879the non-reversible reduction in the number of devices is request.
2ae555c3 2880
cd19c0cf
JR
2881When relocating the first few stripes on a RAID5 or RAID6, it is not
2882possible to keep the data on disk completely consistent and
2883crash-proof. To provide the required safety, mdadm disables writes to
2884the array while this "critical section" is reshaped, and takes a
2885backup of the data that is in that section. For grows, this backup may be
2886stored in any spare devices that the array has, however it can also be
2887stored in a separate file specified with the
7e23fc43 2888.B \-\-backup\-file
cd19c0cf
JR
2889option, and is required to be specified for shrinks, RAID level
2890changes and layout changes. If this option is used, and the system
2891does crash during the critical period, the same file must be passed to
7e23fc43 2892.B \-\-assemble
cd19c0cf
JR
2893to restore the backup and reassemble the array. When shrinking rather
2894than growing the array, the reshape is done from the end towards the
2895beginning, so the "critical section" is at the end of the reshape.
2ae555c3 2896
f24e2d6c
N
2897.SS LEVEL CHANGES
2898
2899Changing the RAID level of any array happens instantaneously. However
cd19c0cf 2900in the RAID5 to RAID6 case this requires a non-standard layout of the
f24e2d6c 2901RAID6 data, and in the RAID6 to RAID5 case that non-standard layout is
cd19c0cf 2902required before the change can be accomplished. So while the level
f24e2d6c 2903change is instant, the accompanying layout change can take quite a
cd19c0cf
JR
2904long time. A
2905.B \-\-backup\-file
2906is required. If the array is not simultaneously being grown or
2907shrunk, so that the array size will remain the same - for example,
2908reshaping a 3-drive RAID5 into a 4-drive RAID6 - the backup file will
2909be used not just for a "cricital section" but throughout the reshape
2910operation, as described below under LAYOUT CHANGES.
f24e2d6c
N
2911
2912.SS CHUNK-SIZE AND LAYOUT CHANGES
2913
ec7d7cee 2914Changing the chunk-size or layout without also changing the number of
f24e2d6c
N
2915devices as the same time will involve re-writing all blocks in-place.
2916To ensure against data loss in the case of a crash, a
2917.B --backup-file
2918must be provided for these changes. Small sections of the array will
cd19c0cf
JR
2919be copied to the backup file while they are being rearranged. This
2920means that all the data is copied twice, once to the backup and once
2921to the new layout on the array, so this type of reshape will go very
2922slowly.
f24e2d6c
N
2923
2924If the reshape is interrupted for any reason, this backup file must be
cd19c0cf 2925made available to
f24e2d6c
N
2926.B "mdadm --assemble"
2927so the array can be reassembled. Consequently the file cannot be
2928stored on the device being reshaped.
2929
2930
2ae555c3
NB
2931.SS BITMAP CHANGES
2932
2933A write-intent bitmap can be added to, or removed from, an active
93e790af 2934array. Either internal bitmaps, or bitmaps stored in a separate file,
fe80f49b 2935can be added. Note that if you add a bitmap stored in a file which is
e0fe762a 2936in a filesystem that is on the RAID array being affected, the system
fe80f49b
NB
2937will deadlock. The bitmap must be on a separate filesystem.
2938
860f11ed
AP
2939.SS CONSISTENCY POLICY CHANGES
2940
2941The consistency policy of an active array can be changed by using the
2942.B \-\-consistency\-policy
2943option in Grow mode. Currently this works only for the
2944.B ppl
2945and
2946.B resync
2947policies and allows to enable or disable the RAID5 Partial Parity Log (PPL).
2948
8382f19b
NB
2949.SH INCREMENTAL MODE
2950
2951.HP 12
2952Usage:
7e23fc43
PS
2953.B mdadm \-\-incremental
2954.RB [ \-\-run ]
2955.RB [ \-\-quiet ]
8382f19b 2956.I component-device
b11fe74d 2957.RI [ optional-aliases-for-device ]
8382f19b
NB
2958.HP 12
2959Usage:
29ba4804
N
2960.B mdadm \-\-incremental \-\-fail
2961.I component-device
2962.HP 12
2963Usage:
7e6140e6 2964.B mdadm \-\-incremental \-\-rebuild\-map
8382f19b
NB
2965.HP 12
2966Usage:
7e23fc43 2967.B mdadm \-\-incremental \-\-run \-\-scan
8382f19b 2968
8382f19b
NB
2969.PP
2970This mode is designed to be used in conjunction with a device
2971discovery system. As devices are found in a system, they can be
2972passed to
7e23fc43 2973.B "mdadm \-\-incremental"
8382f19b
NB
2974to be conditionally added to an appropriate array.
2975
29ba4804
N
2976Conversely, it can also be used with the
2977.B \-\-fail
2978flag to do just the opposite and find whatever array a particular device
2979is part of and remove the device from that array.
2980
8fd8d9c4
N
2981If the device passed is a
2982.B CONTAINER
2983device created by a previous call to
2984.IR mdadm ,
2985then rather than trying to add that device to an array, all the arrays
2986described by the metadata of the container will be started.
2987
8382f19b
NB
2988.I mdadm
2989performs a number of tests to determine if the device is part of an
93e790af 2990array, and which array it should be part of. If an appropriate array
8382f19b
NB
2991is found, or can be created,
2992.I mdadm
2993adds the device to the array and conditionally starts the array.
2994
2995Note that
2996.I mdadm
87eb4fab
N
2997will normally only add devices to an array which were previously working
2998(active or spare) parts of that array. The support for automatic
210597d1
PC
2999inclusion of a new drive as a spare in some array requires
3000a configuration through POLICY in config file.
8382f19b 3001
8382f19b
NB
3002The tests that
3003.I mdadm
3004makes are as follow:
3005.IP +
3006Is the device permitted by
3007.BR mdadm.conf ?
3008That is, is it listed in a
3009.B DEVICES
3010line in that file. If
3011.B DEVICES
b11fe74d 3012is absent then the default it to allow any device. Similarly if
8382f19b
NB
3013.B DEVICES
3014contains the special word
3015.B partitions
3016then any device is allowed. Otherwise the device name given to
b11fe74d
N
3017.IR mdadm ,
3018or one of the aliases given, or an alias found in the filesystem,
8382f19b
NB
3019must match one of the names or patterns in a
3020.B DEVICES
3021line.
3022
b11fe74d
N
3023This is the only context where the aliases are used. They are
3024usually provided by a
3025.I udev
3026rules mentioning
ceb5f8ef 3027.BR $env{DEVLINKS} .
b11fe74d 3028
8382f19b 3029.IP +
cb77f620
NK
3030Does the device have a valid md superblock? If a specific metadata
3031version is requested with
7e23fc43 3032.B \-\-metadata
8382f19b 3033or
7e23fc43 3034.B \-e
8382f19b
NB
3035then only that style of metadata is accepted, otherwise
3036.I mdadm
3037finds any known version of metadata. If no
3038.I md
210597d1
PC
3039metadata is found, the device may be still added to an array
3040as a spare if POLICY allows.
8382f19b 3041
d1302dd8 3042.ig
8382f19b
NB
3043.IP +
3044Does the metadata match an expected array?
3045The metadata can match in two ways. Either there is an array listed
3046in
3047.B mdadm.conf
3048which identifies the array (either by UUID, by name, by device list,
93e790af 3049or by minor-number), or the array was created with a
8382f19b 3050.B homehost
93e790af 3051specified and that
8382f19b 3052.B homehost
93e790af 3053matches the one in
8382f19b
NB
3054.B mdadm.conf
3055or on the command line.
3056If
3057.I mdadm
3058is not able to positively identify the array as belonging to the
3059current host, the device will be rejected.
d1302dd8 3060..
8382f19b 3061
cb77f620 3062.PP
8382f19b 3063.I mdadm
93e790af 3064keeps a list of arrays that it has partially assembled in
96fd06ed 3065.BR {MAP_PATH} .
e0fe762a 3066If no array exists which matches
8382f19b
NB
3067the metadata on the new device,
3068.I mdadm
3069must choose a device name and unit number. It does this based on any
3070name given in
3071.B mdadm.conf
3072or any name information stored in the metadata. If this name
3073suggests a unit number, that number will be used, otherwise a free
3074unit number will be chosen. Normally
3075.I mdadm
3076will prefer to create a partitionable array, however if the
3077.B CREATE
3078line in
3079.B mdadm.conf
3080suggests that a non-partitionable array is preferred, that will be
3081honoured.
3082
e0fe762a
N
3083If the array is not found in the config file and its metadata does not
3084identify it as belonging to the "homehost", then
3085.I mdadm
3086will choose a name for the array which is certain not to conflict with
3087any array which does belong to this host. It does this be adding an
3088underscore and a small number to the name preferred by the metadata.
3089
8382f19b
NB
3090Once an appropriate array is found or created and the device is added,
3091.I mdadm
3092must decide if the array is ready to be started. It will
3093normally compare the number of available (non-spare) devices to the
3094number of devices that the metadata suggests need to be active. If
3095there are at least that many, the array will be started. This means
3096that if any devices are missing the array will not be restarted.
3097
3098As an alternative,
7e23fc43 3099.B \-\-run
8382f19b 3100may be passed to
51ac42e3 3101.I mdadm
8382f19b 3102in which case the array will be run as soon as there are enough
e0fe762a
N
3103devices present for the data to be accessible. For a RAID1, that
3104means one device will start the array. For a clean RAID5, the array
8382f19b
NB
3105will be started as soon as all but one drive is present.
3106
93e790af 3107Note that neither of these approaches is really ideal. If it can
8382f19b
NB
3108be known that all device discovery has completed, then
3109.br
7e23fc43 3110.B " mdadm \-IRs"
8382f19b
NB
3111.br
3112can be run which will try to start all arrays that are being
3113incrementally assembled. They are started in "read-auto" mode in
3114which they are read-only until the first write request. This means
3115that no metadata updates are made and no attempt at resync or recovery
3116happens. Further devices that are found before the first write can
3117still be added safely.
3118
5545fa6d
DW
3119.SH ENVIRONMENT
3120This section describes environment variables that affect how mdadm
3121operates.
3122
3123.TP
3124.B MDADM_NO_MDMON
3125Setting this value to 1 will prevent mdadm from automatically launching
3126mdmon. This variable is intended primarily for debugging mdadm/mdmon.
3127
8fd8d9c4
N
3128.TP
3129.B MDADM_NO_UDEV
3130Normally,
3131.I mdadm
3132does not create any device nodes in /dev, but leaves that task to
3133.IR udev .
3134If
3135.I udev
3136appears not to be configured, or if this environment variable is set
3137to '1', the
3138.I mdadm
3139will create and devices that are needed.
3140
f66585eb
N
3141.TP
3142.B MDADM_NO_SYSTEMCTL
3143If
3144.I mdadm
3145detects that
3146.I systemd
3147is in use it will normally request
3148.I systemd
3149to start various background tasks (particularly
3150.IR mdmon )
3151rather than forking and running them in the background. This can be
3152suppressed by setting
3153.BR MDADM_NO_SYSTEMCTL=1 .
3154
401f095c
N
3155.TP
3156.B IMSM_NO_PLATFORM
3157A key value of IMSM metadata is that it allows interoperability with
3158boot ROMs on Intel platforms, and with other major operating systems.
3159Consequently,
3160.I mdadm
3161will only allow an IMSM array to be created or modified if detects
3162that it is running on an Intel platform which supports IMSM, and
3163supports the particular configuration of IMSM that is being requested
3164(some functionality requires newer OROM support).
3165
3166These checks can be suppressed by setting IMSM_NO_PLATFORM=1 in the
3167environment. This can be useful for testing or for disaster
3168recovery. You should be aware that interoperability may be
3169compromised by setting this value.
2dfb675b 3170
f66585eb
N
3171.TP
3172.B MDADM_GROW_ALLOW_OLD
3173If an array is stopped while it is performing a reshape and that
3174reshape was making use of a backup file, then when the array is
3175re-assembled
3176.I mdadm
3177will sometimes complain that the backup file is too old. If this
3178happens and you are certain it is the right backup file, you can
3179over-ride this check by setting
3180.B MDADM_GROW_ALLOW_OLD=1
3181in the environment.
3182
2dfb675b
N
3183.TP
3184.B MDADM_CONF_AUTO
3185Any string given in this variable is added to the start of the
3186.B AUTO
3187line in the config file, or treated as the whole
3188.B AUTO
3189line if none is given. It can be used to disable certain metadata
3190types when
3191.I mdadm
3192is called from a boot script. For example
3193.br
3194.B " export MDADM_CONF_AUTO='-ddf -imsm'
3195.br
3196will make sure that
3197.I mdadm
3198does not automatically assemble any DDF or
3199IMSM arrays that are found. This can be useful on systems configured
3200to manage such arrays with
3201.BR dmraid .
3202
3203
2d465520
NB
3204.SH EXAMPLES
3205
7e23fc43 3206.B " mdadm \-\-query /dev/name-of-device"
2d465520 3207.br
e0fe762a 3208This will find out if a given device is a RAID array, or is part of
5787fa49 3209one, and will provide brief information about the device.
2d465520 3210
7e23fc43 3211.B " mdadm \-\-assemble \-\-scan"
2d465520 3212.br
93e790af 3213This will assemble and start all arrays listed in the standard config
5787fa49 3214file. This command will typically go in a system startup file.
2d465520 3215
7e23fc43 3216.B " mdadm \-\-stop \-\-scan"
5787fa49 3217.br
93e790af 3218This will shut down all arrays that can be shut down (i.e. are not
19f8b8fc 3219currently in use). This will typically go in a system shutdown script.
2d465520 3220
7e23fc43 3221.B " mdadm \-\-follow \-\-scan \-\-delay=120"
2d465520 3222.br
5787fa49
NB
3223If (and only if) there is an Email address or program given in the
3224standard config file, then
3225monitor the status of all arrays listed in that file by
3226polling them ever 2 minutes.
2d465520 3227
7e23fc43 3228.B " mdadm \-\-create /dev/md0 \-\-level=1 \-\-raid\-devices=2 /dev/hd[ac]1"
2d465520 3229.br
5787fa49 3230Create /dev/md0 as a RAID1 array consisting of /dev/hda1 and /dev/hdc1.
2d465520 3231
2d465520 3232.br
7e23fc43 3233.B " echo 'DEVICE /dev/hd*[0\-9] /dev/sd*[0\-9]' > mdadm.conf"
2d465520 3234.br
7e23fc43 3235.B " mdadm \-\-detail \-\-scan >> mdadm.conf"
2d465520 3236.br
5787fa49
NB
3237This will create a prototype config file that describes currently
3238active arrays that are known to be made from partitions of IDE or SCSI drives.
2d465520
NB
3239This file should be reviewed before being used as it may
3240contain unwanted detail.
3241
7e23fc43 3242.B " echo 'DEVICE /dev/hd[a\-z] /dev/sd*[a\-z]' > mdadm.conf"
2d465520 3243.br
7e23fc43 3244.B " mdadm \-\-examine \-\-scan \-\-config=mdadm.conf >> mdadm.conf"
93e790af
SW
3245.br
3246This will find arrays which could be assembled from existing IDE and
3247SCSI whole drives (not partitions), and store the information in the
5787fa49 3248format of a config file.
2d465520
NB
3249This file is very likely to contain unwanted detail, particularly
3250the
3251.B devices=
5787fa49
NB
3252entries. It should be reviewed and edited before being used as an
3253actual config file.
2d465520 3254
7e23fc43 3255.B " mdadm \-\-examine \-\-brief \-\-scan \-\-config=partitions"
2d465520 3256.br
7e23fc43 3257.B " mdadm \-Ebsc partitions"
5787fa49
NB
3258.br
3259Create a list of devices by reading
3260.BR /proc/partitions ,
3261scan these for RAID superblocks, and printout a brief listing of all
93e790af 3262that were found.
2d465520 3263
7e23fc43 3264.B " mdadm \-Ac partitions \-m 0 /dev/md0"
2d465520 3265.br
5787fa49
NB
3266Scan all partitions and devices listed in
3267.BR /proc/partitions
3268and assemble
3269.B /dev/md0
3270out of all such devices with a RAID superblock with a minor number of 0.
2d465520 3271
96fd06ed 3272.B " mdadm \-\-monitor \-\-scan \-\-daemonise > /run/mdadm/mon.pid"
d013a55e
NB
3273.br
3274If config file contains a mail address or alert program, run mdadm in
3275the background in monitor mode monitoring all md devices. Also write
3276pid of mdadm daemon to
96fd06ed 3277.BR /run/mdadm/mon.pid .
d013a55e 3278
7e23fc43 3279.B " mdadm \-Iq /dev/somedevice"
8382f19b
NB
3280.br
3281Try to incorporate newly discovered device into some array as
3282appropriate.
3283
7e6140e6 3284.B " mdadm \-\-incremental \-\-rebuild\-map \-\-run \-\-scan"
8382f19b
NB
3285.br
3286Rebuild the array map from any current arrays, and then start any that
3287can be started.
3288
b80da661
NB
3289.B " mdadm /dev/md4 --fail detached --remove detached"
3290.br
3291Any devices which are components of /dev/md4 will be marked as faulty
3292and then remove from the array.
3293
cb77f620 3294.B " mdadm --grow /dev/md4 --level=6 --backup-file=/root/backup-md4"
f24e2d6c
N
3295.br
3296The array
3297.B /dev/md4
3298which is currently a RAID5 array will be converted to RAID6. There
3299should normally already be a spare drive attached to the array as a
3300RAID6 needs one more drive than a matching RAID5.
3301
8fd8d9c4
N
3302.B " mdadm --create /dev/md/ddf --metadata=ddf --raid-disks 6 /dev/sd[a-f]"
3303.br
3304Create a DDF array over 6 devices.
3305
3306.B " mdadm --create /dev/md/home -n3 -l5 -z 30000000 /dev/md/ddf"
3307.br
e0fe762a 3308Create a RAID5 array over any 3 devices in the given DDF set. Use
8fd8d9c4
N
3309only 30 gigabytes of each device.
3310
3311.B " mdadm -A /dev/md/ddf1 /dev/sd[a-f]"
3312.br
3313Assemble a pre-exist ddf array.
3314
3315.B " mdadm -I /dev/md/ddf1"
3316.br
3317Assemble all arrays contained in the ddf array, assigning names as
3318appropriate.
3319
7e23fc43 3320.B " mdadm \-\-create \-\-help"
2d465520 3321.br
2ae555c3 3322Provide help about the Create mode.
2d465520 3323
7e23fc43 3324.B " mdadm \-\-config \-\-help"
5787fa49
NB
3325.br
3326Provide help about the format of the config file.
2d465520 3327
7e23fc43 3328.B " mdadm \-\-help"
5787fa49
NB
3329.br
3330Provide general help.
cd29a5c8 3331
cd29a5c8
NB
3332.SH FILES
3333
3334.SS /proc/mdstat
3335
2ae555c3
NB
3336If you're using the
3337.B /proc
cd29a5c8
NB
3338filesystem,
3339.B /proc/mdstat
2d465520 3340lists all active md devices with information about them.
51ac42e3 3341.I mdadm
2d465520 3342uses this to find arrays when
7e23fc43 3343.B \-\-scan
2d465520
NB
3344is given in Misc mode, and to monitor array reconstruction
3345on Monitor mode.
3346
9a9dab36 3347.SS /etc/mdadm.conf
cd29a5c8 3348
11a3e71d
NB
3349The config file lists which devices may be scanned to see if
3350they contain MD super block, and gives identifying information
3351(e.g. UUID) about known MD arrays. See
3352.BR mdadm.conf (5)
3353for more details.
cd29a5c8 3354
9dc70cbc
N
3355.SS /etc/mdadm.conf.d
3356
3357A directory containing configuration files which are read in lexical
3358order.
3359
96fd06ed 3360.SS {MAP_PATH}
8382f19b 3361When
7e23fc43 3362.B \-\-incremental
93e790af 3363mode is used, this file gets a list of arrays currently being created.
8382f19b 3364
48f7b27a
NB
3365.SH DEVICE NAMES
3366
48f7b27a 3367.I mdadm
8fd8d9c4
N
3368understand two sorts of names for array devices.
3369
3370The first is the so-called 'standard' format name, which matches the
3371names used by the kernel and which appear in
3372.IR /proc/mdstat .
3373
3374The second sort can be freely chosen, but must reside in
3375.IR /dev/md/ .
3376When giving a device name to
3377.I mdadm
3378to create or assemble an array, either full path name such as
3379.I /dev/md0
3380or
3381.I /dev/md/home
3382can be given, or just the suffix of the second sort of name, such as
3383.I home
3384can be given.
3385
3386When
3387.I mdadm
e0fe762a
N
3388chooses device names during auto-assembly or incremental assembly, it
3389will sometimes add a small sequence number to the end of the name to
3390avoid conflicted between multiple arrays that have the same name. If
8fd8d9c4
N
3391.I mdadm
3392can reasonably determine that the array really is meant for this host,
3393either by a hostname in the metadata, or by the presence of the array
87eb4fab
N
3394in
3395.BR mdadm.conf ,
3396then it will leave off the suffix if possible.
e0fe762a
N
3397Also if the homehost is specified as
3398.B <ignore>
3399.I mdadm
3400will only use a suffix if a different array of the same name already
3401exists or is listed in the config file.
48f7b27a
NB
3402
3403The standard names for non-partitioned arrays (the only sort of md
8fd8d9c4 3404array available in 2.4 and earlier) are of the form
48f7b27a 3405.IP
eca944fa 3406.RB /dev/md NN
48f7b27a
NB
3407.PP
3408where NN is a number.
3409The standard names for partitionable arrays (as available from 2.6
eca944fa 3410onwards) are of the form:
48f7b27a 3411.IP
eca944fa 3412.RB /dev/md_d NN
48f7b27a 3413.PP
eca944fa 3414Partition numbers should be indicated by adding "pMM" to these, thus "/dev/md/d1p2".
8fd8d9c4 3415.PP
eca944fa
N
3416From kernel version 2.6.28 the "non-partitioned array" can actually
3417be partitioned. So the "md_d\fBNN\fP"
3418names are no longer needed, and
0de5349e 3419partitions such as "/dev/md\fBNN\fPp\fBXX\fP"
eca944fa
N
3420are possible.
3421.PP
3422From kernel version 2.6.29 standard names can be non-numeric following
3423the form:
3424.IP
3425.RB /dev/md_ XXX
3426.PP
3427where
3428.B XXX
3429is any string. These names are supported by
3430.I mdadm
3431since version 3.3 provided they are enabled in
3432.IR mdadm.conf .
52826846 3433
2d465520 3434.SH NOTE
51ac42e3 3435.I mdadm
2d465520 3436was previously known as
51ac42e3 3437.IR mdctl .
a9d69660 3438
52826846 3439.SH SEE ALSO
75f74377 3440For further information on mdadm usage, MD and the various levels of
3cdfb6a7 3441RAID, see:
3cdfb6a7 3442.IP
8e41153c 3443.B https://raid.wiki.kernel.org/
75f74377
DG
3444.PP
3445(based upon Jakob \(/Ostergaard's Software\-RAID.HOWTO)
cd29a5c8 3446.PP
2ae555c3 3447The latest version of
a9d69660
NB
3448.I mdadm
3449should always be available from
cd29a5c8 3450.IP
8e41153c 3451.B https://www.kernel.org/pub/linux/utils/raid/mdadm/
11cd8b79
N
3452.PP
3453Related man pages:
cd29a5c8 3454.PP
e0fe762a 3455.IR mdmon (8),
a9d69660
NB
3456.IR mdadm.conf (5),
3457.IR md (4).