]> git.ipfire.org Git - thirdparty/mdadm.git/blame - mdadm.8
Be more consistent about keeping the host: prefix on array names.
[thirdparty/mdadm.git] / mdadm.8
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.
b9d77223 8.TH MDADM 8 "" v3.0-devel3
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
cd29a5c8 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
52826846 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
a9d69660
NB
93Build an array that doesn't have per-device superblocks. For these
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
105Create a new array with per-device superblocks.
e43d0cda
NB
106.\"It can progress
107.\"in several step create-add-add-run or it can all happen with one command.
cd29a5c8 108
cd29a5c8
NB
109.TP
110.B "Follow or Monitor"
5787fa49 111Monitor one or more md devices and act on any state changes. This is
93e790af 112only meaningful for raid1, 4, 5, 6, 10 or multipath arrays, as
98c6faba
NB
113only these have interesting state. raid0 or linear never have
114missing, spare, or failed drives, so there is nothing to monitor.
5787fa49 115
dd0781e5
NB
116.TP
117.B "Grow"
118Grow (or shrink) an array, or otherwise reshape it in some way.
119Currently supported growth options including changing the active size
93e790af
SW
120of component devices and changing the number of active devices in RAID
121levels 1/4/5/6, as well as adding or removing a write-intent bitmap.
cd29a5c8 122
8382f19b
NB
123.TP
124.B "Incremental Assembly"
125Add a single device to an appropriate array. If the addition of the
126device makes the array runnable, the array will be started.
127This provides a convenient interface to a
128.I hot-plug
129system. As each device is detected,
130.I mdadm
131has a chance to include it in some array as appropriate.
9652457e 132
8fd8d9c4
N
133If a
134.B CONTAINER
135is passed to
136.I mdadm
137in this mode, then any arrays within that container will be assembled
138and started.
8382f19b 139
2ae555c3
NB
140.TP
141.B Manage
142This is for doing things to specific components of an array such as
143adding new spares and removing faulty devices.
144
145.TP
146.B Misc
147This is an 'everything else' mode that supports operations on active
148arrays, operations on component devices such as erasing old superblocks, and
149information gathering operations.
e43d0cda
NB
150.\"This mode allows operations on independent devices such as examine MD
151.\"superblocks, erasing old superblocks and stopping active arrays.
2ae555c3 152
1f48664b
NB
153.TP
154.B Auto-detect
155This mode does not act on a specific device or array, but rather it
156requests the Linux Kernel to activate any auto-detected arrays.
52826846
NB
157.SH OPTIONS
158
2ae555c3 159.SH Options for selecting a mode are:
52826846 160
cd29a5c8 161.TP
7e23fc43 162.BR \-A ", " \-\-assemble
2d465520 163Assemble a pre-existing array.
52826846 164
cd29a5c8 165.TP
7e23fc43 166.BR \-B ", " \-\-build
cd29a5c8 167Build a legacy array without superblocks.
52826846 168
cd29a5c8 169.TP
7e23fc43 170.BR \-C ", " \-\-create
cd29a5c8 171Create a new array.
52826846 172
cd29a5c8 173.TP
7e23fc43 174.BR \-F ", " \-\-follow ", " \-\-monitor
cd29a5c8
NB
175Select
176.B Monitor
177mode.
52826846 178
dd0781e5 179.TP
7e23fc43 180.BR \-G ", " \-\-grow
dd0781e5 181Change the size or shape of an active array.
8382f19b
NB
182
183.TP
1f48664b 184.BR \-I ", " \-\-incremental
8382f19b
NB
185Add a single device into an appropriate array, and possibly start the array.
186
1f48664b
NB
187.TP
188.B \-\-auto-detect
189Request that the kernel starts any auto-detected arrays. This can only
190work if
191.I md
192is compiled into the kernel \(em not if it is a module.
193Arrays can be auto-detected by the kernel if all the components are in
194primary MS-DOS partitions with partition type
195.BR FD .
196In-kernel autodetect is not recommended for new installations. Using
197.I mdadm
198to detect and assemble arrays \(em possibly in an
199.I initrd
200\(em is substantially more flexible and should be preferred.
201
2ae555c3
NB
202.P
203If a device is given before any options, or if the first option is
7e23fc43
PS
204.BR \-\-add ,
205.BR \-\-fail ,
2ae555c3 206or
7e23fc43 207.BR \-\-remove ,
2ae555c3
NB
208then the MANAGE mode is assume.
209Anything other than these will cause the
210.B Misc
211mode to be assumed.
dd0781e5 212
2ae555c3 213.SH Options that are not mode-specific are:
e793c2e5 214
cd29a5c8 215.TP
7e23fc43 216.BR \-h ", " \-\-help
a9d69660 217Display general help message or, after one of the above options, a
93e790af 218mode-specific help message.
56eedc1a
NB
219
220.TP
7e23fc43 221.B \-\-help\-options
56eedc1a
NB
222Display more detailed help about command line parsing and some commonly
223used options.
52826846 224
cd29a5c8 225.TP
7e23fc43 226.BR \-V ", " \-\-version
9a9dab36 227Print version information for mdadm.
52826846 228
cd29a5c8 229.TP
7e23fc43 230.BR \-v ", " \-\-verbose
22892d56
NB
231Be more verbose about what is happening. This can be used twice to be
232extra-verbose.
a9d69660 233The extra verbosity currently only affects
7e23fc43 234.B \-\-detail \-\-scan
22892d56 235and
7e23fc43 236.BR "\-\-examine \-\-scan" .
52826846 237
dab6685f 238.TP
7e23fc43 239.BR \-q ", " \-\-quiet
dab6685f 240Avoid printing purely informative messages. With this,
51ac42e3 241.I mdadm
dab6685f
NB
242will be silent unless there is something really important to report.
243
cd29a5c8 244.TP
7e23fc43 245.BR \-b ", " \-\-brief
cd29a5c8 246Be less verbose. This is used with
7e23fc43 247.B \-\-detail
cd29a5c8 248and
7e23fc43 249.BR \-\-examine .
22892d56 250Using
7e23fc43 251.B \-\-brief
22892d56 252with
7e23fc43 253.B \-\-verbose
22892d56 254gives an intermediate level of verbosity.
52826846 255
e0d19036 256.TP
7e23fc43 257.BR \-f ", " \-\-force
93e790af 258Be more forceful about certain operations. See the various modes for
e0d19036
NB
259the exact meaning of this option in different contexts.
260
261.TP
7e23fc43 262.BR \-c ", " \-\-config=
2ae555c3
NB
263Specify the config file. Default is to use
264.BR /etc/mdadm.conf ,
93e790af 265or if that is missing then
2ae555c3 266.BR /etc/mdadm/mdadm.conf .
5787fa49 267If the config file given is
93e790af 268.B "partitions"
5787fa49
NB
269then nothing will be read, but
270.I mdadm
271will act as though the config file contained exactly
8fd8d9c4 272.B "DEVICE partitions containers"
5787fa49
NB
273and will read
274.B /proc/partitions
8fd8d9c4
N
275to find a list of devices to scan, and
276.B /proc/mdstat
277to find a list of containers to examine.
d013a55e 278If the word
93e790af 279.B "none"
d013a55e
NB
280is given for the config file, then
281.I mdadm
282will act as though the config file were empty.
e0d19036
NB
283
284.TP
7e23fc43 285.BR \-s ", " \-\-scan
93e790af 286Scan config file or
e0d19036
NB
287.B /proc/mdstat
288for missing information.
289In general, this option gives
51ac42e3 290.I mdadm
93e790af
SW
291permission to get any missing information (like component devices,
292array devices, array identities, and alert destination) from the
293configuration file (see previous option);
294one exception is MISC mode when using
7e23fc43 295.B \-\-detail
e0d19036 296or
93e790af 297.B \-\-stop,
e0d19036 298in which case
7e23fc43 299.B \-\-scan
e0d19036
NB
300says to get a list of array devices from
301.BR /proc/mdstat .
302
570c0542 303.TP
7e23fc43 304.B \-e ", " \-\-metadata=
570c0542 305Declare the style of superblock (raid metadata) to be used. The
53e8b987 306default is 0.90 for
7e23fc43 307.BR \-\-create ,
53e8b987 308and to guess for other operations.
2790ffe3
GB
309The default can be overridden by setting the
310.B metadata
311value for the
312.B CREATE
313keyword in
314.BR mdadm.conf .
570c0542
NB
315
316Options are:
317.RS
318.IP "0, 0.90, default"
319Use the original 0.90 format superblock. This format limits arrays to
93e790af 32028 component devices and limits component devices of levels 1 and
570c0542
NB
321greater to 2 terabytes.
322.IP "1, 1.0, 1.1, 1.2"
323Use the new version-1 format superblock. This has few restrictions.
93e790af 324The different sub-versions store the superblock at different locations
570c0542
NB
325on the device, either at the end (for 1.0), at the start (for 1.1) or
3264K from the start (for 1.2).
8fd8d9c4
N
327.IP ddf
328Use the "Industry Standard" DDF (Disk Data Format) format. When
329creating a DDF array a
330.B CONTAINER
331will be created, and normal arrays can be created in that container.
332.IP imsm
4cce4069 333Use the Intel(R) Matrix Storage Manager metadata format. This creates a
8fd8d9c4 334.B CONTAINER
4cce4069
DW
335which is managed in a similar manner to DDF, and is supported by an
336option-rom on some platforms:
337.IP
338.B http://www.intel.com/design/chipsets/matrixstorage_sb.htm
339.PP
570c0542
NB
340.RE
341
41a3b72a 342.TP
7e23fc43 343.B \-\-homehost=
35cc5be4 344This will override any
41a3b72a 345.B HOMEHOST
93e790af 346setting in the config file and provides the identity of the host which
41a3b72a
NB
347should be considered the home for any arrays.
348
349When creating an array, the
350.B homehost
351will be recorded in the superblock. For version-1 superblocks, it will
93e790af 352be prefixed to the array name. For version-0.90 superblocks, part of
41a3b72a
NB
353the SHA1 hash of the hostname will be stored in the later half of the
354UUID.
355
356When reporting information about an array, any array which is tagged
357for the given homehost will be reported as such.
358
359When using Auto-Assemble, only arrays tagged for the given homehost
0ac91628
N
360will be allowed to use 'local' names (i.e. not ending in '_' followed
361by a digit string).
41a3b72a 362
2ae555c3
NB
363.SH For create, build, or grow:
364
365.TP
7e23fc43 366.BR \-n ", " \-\-raid\-devices=
2ae555c3
NB
367Specify the number of active devices in the array. This, plus the
368number of spare devices (see below) must equal the number of
369.I component-devices
370(including "\fBmissing\fP" devices)
371that are listed on the command line for
7e23fc43 372.BR \-\-create .
2ae555c3
NB
373Setting a value of 1 is probably
374a mistake and so requires that
7e23fc43 375.B \-\-force
2ae555c3
NB
376be specified first. A value of 1 will then be allowed for linear,
377multipath, raid0 and raid1. It is never allowed for raid4 or raid5.
378.br
379This number can only be changed using
7e23fc43 380.B \-\-grow
00be0b12
NB
381for RAID1, RAID5 and RAID6 arrays, and only on kernels which provide
382necessary support.
2ae555c3
NB
383
384.TP
7e23fc43 385.BR \-x ", " \-\-spare\-devices=
2ae555c3
NB
386Specify the number of spare (eXtra) devices in the initial array.
387Spares can also be added
388and removed later. The number of component devices listed
389on the command line must equal the number of raid devices plus the
390number of spare devices.
391
392
393.TP
7e23fc43 394.BR \-z ", " \-\-size=
93e790af 395Amount (in Kibibytes) of space to use from each drive in RAID level 1/4/5/6.
2ae555c3
NB
396This must be a multiple of the chunk size, and must leave about 128Kb
397of space at the end of the drive for the RAID superblock.
398If this is not specified
399(as it normally is not) the smallest drive (or partition) sets the
400size, though if there is a variance among the drives of greater than 1%, a warning is
401issued.
402
403This value can be set with
7e23fc43 404.B \-\-grow
2ae555c3
NB
405for RAID level 1/4/5/6. If the array was created with a size smaller
406than the currently active drives, the extra space can be accessed
407using
7e23fc43 408.BR \-\-grow .
2ae555c3
NB
409The size can be given as
410.B max
411which means to choose the largest size that fits on all current drives.
52826846 412
8fd8d9c4
N
413This value can not be used with
414.B CONTAINER
415metadata such as DDF and IMSM.
416
cd29a5c8 417.TP
7e23fc43 418.BR \-c ", " \-\-chunk=
cd29a5c8 419Specify chunk size of kibibytes. The default is 64.
52826846 420
cd29a5c8 421.TP
7e23fc43 422.BR \-\-rounding=
cd29a5c8 423Specify rounding factor for linear array (==chunk size)
52826846 424
cd29a5c8 425.TP
7e23fc43 426.BR \-l ", " \-\-level=
aa88f531 427Set raid level. When used with
7e23fc43 428.BR \-\-create ,
98c6faba 429options are: linear, raid0, 0, stripe, raid1, 1, mirror, raid4, 4,
8fd8d9c4
N
430raid5, 5, raid6, 6, raid10, 10, multipath, mp, faulty, container.
431Obviously some of these are synonymous.
432
433When a
434.B CONTAINER
435metadata type is requested, only the
436.B container
437level is permitted, and it does not need to be explicitly given.
aa88f531
NB
438
439When used with
7e23fc43 440.BR \-\-build ,
a9d69660 441only linear, stripe, raid0, 0, raid1, multipath, mp, and faulty are valid.
52826846 442
2ae555c3 443Not yet supported with
7e23fc43 444.BR \-\-grow .
2ae555c3 445
cd29a5c8 446.TP
7e23fc43 447.BR \-p ", " \-\-layout=
1a7dfc35
NB
448This option configures the fine details of data layout for raid5,
449and raid10 arrays, and controls the failure modes for
450.IR faulty .
451
452The layout of the raid5 parity block can be one of
7e23fc43
PS
453.BR left\-asymmetric ,
454.BR left\-symmetric ,
455.BR right\-asymmetric ,
456.BR right\-symmetric ,
53e8b987
PS
457.BR la ", " ra ", " ls ", " rs .
458The default is
7e23fc43 459.BR left\-symmetric .
52826846 460
93e790af
SW
461When setting the failure mode for level
462.I faulty,
1a7dfc35 463the options are:
7e23fc43
PS
464.BR write\-transient ", " wt ,
465.BR read\-transient ", " rt ,
466.BR write\-persistent ", " wp ,
467.BR read\-persistent ", " rp ,
468.BR write\-all ,
469.BR read\-fixable ", " rf ,
53e8b987 470.BR clear ", " flush ", " none .
b5e64645 471
93e790af 472Each failure mode can be followed by a number, which is used as a period
b5e64645
NB
473between fault generation. Without a number, the fault is generated
474once on the first relevant request. With a number, the fault will be
93e790af 475generated after that many requests, and will continue to be generated
b5e64645
NB
476every time the period elapses.
477
478Multiple failure modes can be current simultaneously by using the
7e23fc43 479.B \-\-grow
53e8b987 480option to set subsequent failure modes.
b5e64645
NB
481
482"clear" or "none" will remove any pending or periodic failure modes,
2ae555c3 483and "flush" will clear any persistent faults.
b5e64645 484
53e8b987 485To set the parity with
7e23fc43 486.BR \-\-grow ,
53e8b987 487the level of the array ("faulty")
b5e64645
NB
488must be specified before the fault mode is specified.
489
6f9a21a7 490Finally, the layout options for RAID10 are one of 'n', 'o' or 'f' followed
93e790af 491by a small number. The default is 'n2'. The supported options are:
1a7dfc35 492
93e790af 493.I 'n'
b578481c
NB
494signals 'near' copies. Multiple copies of one data block are at
495similar offsets in different devices.
496
93e790af 497.I 'o'
b578481c
NB
498signals 'offset' copies. Rather than the chunks being duplicated
499within a stripe, whole stripes are duplicated but are rotated by one
500device so duplicate blocks are on different devices. Thus subsequent
501copies of a block are in the next drive, and are one chunk further
502down.
503
93e790af 504.I 'f'
1a7dfc35 505signals 'far' copies
93e790af
SW
506(multiple copies have very different offsets).
507See md(4) for more detail about 'near' and 'far'.
1a7dfc35
NB
508
509The number is the number of copies of each datablock. 2 is normal, 3
510can be useful. This number can be at most equal to the number of
511devices in the array. It does not need to divide evenly into that
512number (e.g. it is perfectly legal to have an 'n2' layout for an array
513with an odd number of devices).
514
cd29a5c8 515.TP
7e23fc43 516.BR \-\-parity=
53e8b987 517same as
7e23fc43 518.B \-\-layout
53e8b987 519(thus explaining the p of
7e23fc43 520.BR \-p ).
52826846 521
e793c2e5 522.TP
7e23fc43 523.BR \-b ", " \-\-bitmap=
e793c2e5 524Specify a file to store a write-intent bitmap in. The file should not
53e8b987 525exist unless
7e23fc43 526.B \-\-force
53e8b987 527is also given. The same file should be provided
2ae555c3 528when assembling the array. If the word
93e790af 529.B "internal"
2ae555c3
NB
530is given, then the bitmap is stored with the metadata on the array,
531and so is replicated on all devices. If the word
93e790af 532.B "none"
2ae555c3 533is given with
7e23fc43 534.B \-\-grow
2ae555c3 535mode, then any bitmap that is present is removed.
e793c2e5 536
2ae555c3
NB
537To help catch typing errors, the filename must contain at least one
538slash ('/') if it is a real file (not 'internal' or 'none').
539
540Note: external bitmaps are only known to work on ext2 and ext3.
541Storing bitmap files on other filesystems may result in serious problems.
e793c2e5 542
cd29a5c8 543.TP
7e23fc43 544.BR \-\-bitmap\-chunk=
2ae555c3 545Set the chunksize of the bitmap. Each bit corresponds to that many
1bfdbe01
NB
546Kilobytes of storage.
547When using a file based bitmap, the default is to use the smallest
93e790af 548size that is at-least 4 and requires no more than 2^21 chunks.
2ae555c3
NB
549When using an
550.B internal
551bitmap, the chunksize is automatically determined to make best use of
552available space.
5787fa49 553
cd29a5c8
NB
554
555.TP
7e23fc43 556.BR \-W ", " \-\-write\-mostly
2ae555c3 557subsequent devices lists in a
7e23fc43
PS
558.BR \-\-build ,
559.BR \-\-create ,
2ae555c3 560or
7e23fc43 561.B \-\-add
2ae555c3
NB
562command will be flagged as 'write-mostly'. This is valid for RAID1
563only and means that the 'md' driver will avoid reading from these
564devices if at all possible. This can be useful if mirroring over a
565slow link.
52826846 566
2ae555c3 567.TP
7e23fc43 568.BR \-\-write\-behind=
2ae555c3
NB
569Specify that write-behind mode should be enabled (valid for RAID1
570only). If an argument is specified, it will set the maximum number
571of outstanding writes allowed. The default value is 256.
572A write-intent bitmap is required in order to use write-behind
573mode, and write-behind is only attempted on drives marked as
574.IR write-mostly .
dd0781e5
NB
575
576.TP
7e23fc43 577.BR \-\-assume\-clean
dd0781e5
NB
578Tell
579.I mdadm
47d79ef8
NB
580that the array pre-existed and is known to be clean. It can be useful
581when trying to recover from a major failure as you can be sure that no
582data will be affected unless you actually write to the array. It can
583also be used when creating a RAID1 or RAID10 if you want to avoid the
b3f1c093 584initial resync, however this practice \(em while normally safe \(em is not
93e790af 585recommended. Use this only if you really know what you are doing.
dd0781e5 586
2ae555c3 587.TP
7e23fc43 588.BR \-\-backup\-file=
53e8b987 589This is needed when
7e23fc43 590.B \-\-grow
53e8b987 591is used to increase the number of
2ae555c3
NB
592raid-devices in a RAID5 if there are no spare devices available.
593See the section below on RAID_DEVICE CHANGES. The file should be
594stored on a separate device, not on the raid array being reshaped.
595
947fd4dd 596.TP
7e23fc43 597.BR \-N ", " \-\-name=
947fd4dd
NB
598Set a
599.B name
600for the array. This is currently only effective when creating an
601array with a version-1 superblock. The name is a simple textual
602string that can be used to identify array components when assembling.
603
dd0781e5 604.TP
7e23fc43 605.BR \-R ", " \-\-run
dd0781e5
NB
606Insist that
607.I mdadm
608run the array, even if some of the components
609appear to be active in another array or filesystem. Normally
610.I mdadm
611will ask for confirmation before including such components in an
612array. This option causes that question to be suppressed.
613
614.TP
7e23fc43 615.BR \-f ", " \-\-force
dd0781e5
NB
616Insist that
617.I mdadm
618accept the geometry and layout specified without question. Normally
619.I mdadm
620will not allow creation of an array with only one device, and will try
621to create a raid5 array with one missing drive (as this makes the
622initial resync work faster). With
7e23fc43 623.BR \-\-force ,
dd0781e5
NB
624.I mdadm
625will not try to be so clever.
626
627.TP
7e23fc43 628.BR \-a ", " "\-\-auto{=no,yes,md,mdp,part,p}{NN}"
48f7b27a
NB
629Instruct mdadm to create the device file if needed, possibly allocating
630an unused minor number. "md" causes a non-partitionable array
dd0781e5 631to be used. "mdp", "part" or "p" causes a partitionable array (2.6 and
2ae555c3 632later) to be used. "yes" requires the named md device to have
f9c25f1d 633a 'standard' format, and the type and minor number will be determined
48f7b27a
NB
634from this. See DEVICE NAMES below.
635
a9d69660 636The argument can also come immediately after
7e23fc43 637"\-a". e.g. "\-ap".
dd0781e5 638
53e8b987 639If
7e23fc43 640.B \-\-auto
53e8b987 641is not given on the command line or in the config file, then
75723446 642the default will be
7e23fc43 643.BR \-\-auto=yes .
75723446 644
1337546d 645If
7e23fc43 646.B \-\-scan
1337546d
NB
647is also given, then any
648.I auto=
35cc5be4 649entries in the config file will override the
7e23fc43 650.B \-\-auto
1337546d
NB
651instruction given on the command line.
652
dd0781e5
NB
653For partitionable arrays,
654.I mdadm
655will create the device file for the whole array and for the first 4
656partitions. A different number of partitions can be specified at the
657end of this option (e.g.
7e23fc43 658.BR \-\-auto=p7 ).
2ae555c3 659If the device name ends with a digit, the partition names add a 'p',
8fd8d9c4 660and a number, e.g. "/dev/md/home1p3". If there is no
dd0781e5 661trailing digit, then the partition names just have a number added,
8fd8d9c4 662e.g. "/dev/md/scratch3".
dd0781e5 663
48f7b27a
NB
664If the md device name is in a 'standard' format as described in DEVICE
665NAMES, then it will be created, if necessary, with the appropriate
666number based on that name. If the device name is not in one of these
a9d69660 667formats, then a unused minor number will be allocated. The minor
48f7b27a
NB
668number will be considered unused if there is no active array for that
669number, and there is no entry in /dev for that number and with a
8fd8d9c4
N
670non-standard name. Name that are not in 'standard' format are only
671allowed in "/dev/md/".
672
673\".TP
674\".BR \-\-symlink = no
675\"Normally when
676\".B \-\-auto
677\"causes
678\".I mdadm
679\"to create devices in
680\".B /dev/md/
681\"it will also create symlinks from
682\".B /dev/
683\"with names starting with
684\".B md
685\"or
686\".BR md_ .
687\"Use
688\".B \-\-symlink=no
689\"to suppress this, or
690\".B \-\-symlink=yes
691\"to enforce this even if it is suppressing
692\".IR mdadm.conf .
693\"
38098016 694
52826846
NB
695.SH For assemble:
696
cd29a5c8 697.TP
7e23fc43 698.BR \-u ", " \-\-uuid=
cd29a5c8
NB
699uuid of array to assemble. Devices which don't have this uuid are
700excluded
701
702.TP
7e23fc43 703.BR \-m ", " \-\-super\-minor=
cd29a5c8
NB
704Minor number of device that array was created for. Devices which
705don't have this minor number are excluded. If you create an array as
2d465520 706/dev/md1, then all superblocks will contain the minor number 1, even if
cd29a5c8
NB
707the array is later assembled as /dev/md2.
708
d013a55e 709Giving the literal word "dev" for
7e23fc43 710.B \-\-super\-minor
d013a55e
NB
711will cause
712.I mdadm
713to use the minor number of the md device that is being assembled.
714e.g. when assembling
715.BR /dev/md0 ,
51ac42e3 716.B \-\-super\-minor=dev
d013a55e
NB
717will look for super blocks with a minor number of 0.
718
947fd4dd 719.TP
7e23fc43 720.BR \-N ", " \-\-name=
947fd4dd 721Specify the name of the array to assemble. This must be the name
624920bb 722that was specified when creating the array. It must either match
93e790af 723the name stored in the superblock exactly, or it must match
41a3b72a 724with the current
624920bb 725.I homehost
93e790af 726prefixed to the start of the given name.
947fd4dd 727
cd29a5c8 728.TP
7e23fc43 729.BR \-f ", " \-\-force
52826846
NB
730Assemble the array even if some superblocks appear out-of-date
731
cd29a5c8 732.TP
7e23fc43 733.BR \-R ", " \-\-run
b8a8ccf9
NB
734Attempt to start the array even if fewer drives were given than were
735present last time the array was active. Normally if not all the
736expected drives are found and
7e23fc43 737.B \-\-scan
cd29a5c8
NB
738is not used, then the array will be assembled but not started.
739With
7e23fc43 740.B \-\-run
cd29a5c8 741an attempt will be made to start it anyway.
52826846 742
b8a8ccf9 743.TP
7e23fc43 744.B \-\-no\-degraded
b8a8ccf9 745This is the reverse of
7e23fc43 746.B \-\-run
93e790af 747in that it inhibits the startup of array unless all expected drives
b8a8ccf9 748are present. This is only needed with
93e790af
SW
749.B \-\-scan,
750and can be used if the physical connections to devices are
b8a8ccf9
NB
751not as reliable as you would like.
752
dd0781e5 753.TP
7e23fc43 754.BR \-a ", " "\-\-auto{=no,yes,md,mdp,part}"
dd0781e5
NB
755See this option under Create and Build options.
756
e793c2e5 757.TP
7e23fc43 758.BR \-b ", " \-\-bitmap=
2ae555c3
NB
759Specify the bitmap file that was given when the array was created. If
760an array has an
761.B internal
762bitmap, there is no need to specify this when assembling the array.
763
764.TP
7e23fc43 765.BR \-\-backup\-file=
2ae555c3 766If
7e23fc43 767.B \-\-backup\-file
2ae555c3
NB
768was used to grow the number of raid-devices in a RAID5, and the system
769crashed during the critical section, then the same
7e23fc43 770.B \-\-backup\-file
53e8b987 771must be presented to
7e23fc43 772.B \-\-assemble
53e8b987 773to allow possibly corrupted data to be restored.
e793c2e5 774
5787fa49 775.TP
7e23fc43 776.BR \-U ", " \-\-update=
5787fa49 777Update the superblock on each device while assembling the array. The
feb716e9
NB
778argument given to this flag can be one of
779.BR sparc2.2 ,
780.BR summaries ,
7d99579f 781.BR uuid ,
c4f12c13 782.BR name ,
0237e0ca 783.BR homehost ,
e5329c37 784.BR resync ,
586ed405 785.BR byteorder ,
bee8ec56 786.BR devicesize ,
5787fa49 787or
7e23fc43 788.BR super\-minor .
5787fa49
NB
789
790The
791.B sparc2.2
7d99579f 792option will adjust the superblock of an array what was created on a Sparc
5787fa49
NB
793machine running a patched 2.2 Linux kernel. This kernel got the
794alignment of part of the superblock wrong. You can use the
7e23fc43 795.B "\-\-examine \-\-sparc2.2"
5787fa49
NB
796option to
797.I mdadm
798to see what effect this would have.
799
800The
7e23fc43 801.B super\-minor
5787fa49 802option will update the
2ae555c3 803.B "preferred minor"
5787fa49 804field on each superblock to match the minor number of the array being
45c073c9
NB
805assembled.
806This can be useful if
7e23fc43 807.B \-\-examine
45c073c9 808reports a different "Preferred Minor" to
7e23fc43 809.BR \-\-detail .
45c073c9
NB
810In some cases this update will be performed automatically
811by the kernel driver. In particular the update happens automatically
812at the first write to an array with redundancy (RAID level 1 or
813greater) on a 2.6 (or later) kernel.
5787fa49 814
7d99579f
NB
815The
816.B uuid
817option will change the uuid of the array. If a UUID is given with the
7e23fc43 818.B \-\-uuid
53e8b987 819option that UUID will be used as a new UUID and will
7d99579f
NB
820.B NOT
821be used to help identify the devices in the array.
53e8b987 822If no
7e23fc43 823.B \-\-uuid
53e8b987 824is given, a random UUID is chosen.
7d99579f 825
c4f12c13
NB
826The
827.B name
828option will change the
829.I name
830of the array as stored in the superblock. This is only supported for
831version-1 superblocks.
832
0237e0ca
NB
833The
834.B homehost
835option will change the
836.I homehost
837as recorded in the superblock. For version-0 superblocks, this is the
838same as updating the UUID.
839For version-1 superblocks, this involves updating the name.
840
e5329c37
NB
841The
842.B resync
843option will cause the array to be marked
844.I dirty
845meaning that any redundancy in the array (e.g. parity for raid5,
846copies for raid1) may be incorrect. This will cause the raid system
847to perform a "resync" pass to make sure that all redundant information
848is correct.
849
586ed405
NB
850The
851.B byteorder
852option allows arrays to be moved between machines with different
853byte-order.
2ae555c3 854When assembling such an array for the first time after a move, giving
7e23fc43 855.B "\-\-update=byteorder"
586ed405
NB
856will cause
857.I mdadm
858to expect superblocks to have their byteorder reversed, and will
859correct that order before assembling the array. This is only valid
2ae555c3 860with original (Version 0.90) superblocks.
586ed405 861
feb716e9
NB
862The
863.B summaries
864option will correct the summaries in the superblock. That is the
865counts of total, working, active, failed, and spare devices.
5787fa49 866
bee8ec56
NB
867The
868.B devicesize
869will rarely be of use. It applies to version 1.1 and 1.2 metadata
870only (where the metadata is at the start of the device) and is only
871useful when the component device has changed size (typically become
872larger). The version 1 metadata records the amount of the device that
873can be used to store data, so if a device in a version 1.1 or 1.2
874array becomes larger, the metadata will still be visible, but the
875extra space will not. In this case it might be useful to assemble the
876array with
7e23fc43 877.BR \-\-update=devicesize .
bee8ec56
NB
878This will cause
879.I mdadm
880to determine the maximum usable amount of space on each device and
881update the relevant field in the metadata.
882
41a3b72a 883.TP
7e23fc43 884.B \-\-auto\-update\-homehost
93e790af 885This flag is only meaningful with auto-assembly (see discussion below).
41a3b72a
NB
886In that situation, if no suitable arrays are found for this homehost,
887.I mdadm
93e790af 888will rescan for any arrays at all and will assemble them and update the
41a3b72a
NB
889homehost to match the current host.
890
e0d19036 891.SH For Manage mode:
52826846 892
cd29a5c8 893.TP
7e23fc43 894.BR \-a ", " \-\-add
2ae555c3 895hot-add listed devices.
52826846 896
fe80f49b 897.TP
7e23fc43 898.BR \-\-re\-add
2ae555c3 899re-add a device that was recently removed from an array.
fe80f49b 900
cd29a5c8 901.TP
7e23fc43 902.BR \-r ", " \-\-remove
2d465520 903remove listed devices. They must not be active. i.e. they should
b80da661
NB
904be failed or spare devices. As well as the name of a device file
905(e.g.
906.BR /dev/sda1 )
907the words
908.B failed
909and
910.B detached
911can be given to
912.BR \-\-remove .
913The first causes all failed device to be removed. The second causes
93e790af 914any device which is no longer connected to the system (i.e an 'open'
b80da661
NB
915returns
916.BR ENXIO )
917to be removed. This will only succeed for devices that are spares or
918have already been marked as failed.
52826846 919
cd29a5c8 920.TP
7e23fc43 921.BR \-f ", " \-\-fail
cd29a5c8 922mark listed devices as faulty.
b80da661
NB
923As well as the name of a device file, the word
924.B detached
925can be given. This will cause any device that has been detached from
926the system to be marked as failed. It can then be removed.
52826846 927
cd29a5c8 928.TP
7e23fc43 929.BR \-\-set\-faulty
53e8b987 930same as
7e23fc43 931.BR \-\-fail .
52826846 932
b3d31955
N
933.TP
934.BR \-\-write\-mostly
935Subsequent devices that are added or re-added will have the 'write-mostly'
936flag set. This is only valid for RAID! and means that the 'md' driver
937will avoid reading from these devices if possible.
938.TP
939.BR \-\-readwrite
940Subsequent devices that are added or re-added will have the 'write-mostly'
941flag cleared.
942
943
2ae555c3 944.P
93e790af
SW
945Each of these options require that the first device listed is the array
946to be acted upon, and the remainder are component devices to be added,
947removed, or marked as faulty. Several different operations can be
2ae555c3
NB
948specified for different devices, e.g.
949.in +5
7e23fc43 950mdadm /dev/md0 \-\-add /dev/sda1 \-\-fail /dev/sdb1 \-\-remove /dev/sdb1
2ae555c3
NB
951.in -5
952Each operation applies to all devices listed until the next
93e790af 953operation.
2ae555c3
NB
954
955If an array is using a write-intent bitmap, then devices which have
956been removed can be re-added in a way that avoids a full
93e790af 957reconstruction but instead just updates the blocks that have changed
2ae555c3
NB
958since the device was removed. For arrays with persistent metadata
959(superblocks) this is done automatically. For arrays created with
7e23fc43 960.B \-\-build
2ae555c3 961mdadm needs to be told that this device we removed recently with
7e23fc43 962.BR \-\-re\-add .
2ae555c3
NB
963
964Devices can only be removed from an array if they are not in active
93e790af
SW
965use, i.e. that must be spares or failed devices. To remove an active
966device, it must first be marked as
967.B faulty.
2ae555c3
NB
968
969.SH For Misc mode:
970
971.TP
7e23fc43 972.BR \-Q ", " \-\-query
2ae555c3
NB
973Examine a device to see
974(1) if it is an md device and (2) if it is a component of an md
975array.
976Information about what is discovered is presented.
977
978.TP
7e23fc43 979.BR \-D ", " \-\-detail
2ae555c3 980Print detail of one or more md devices.
5787fa49 981
4cce4069
DW
982.TP
983.BR \-\-detail\-platform
984Print detail of the platform's raid capabilities (firmware / hardware
985topology) for a given metadata format.
986
54bad364
KS
987.TP
988.BR \-Y ", " \-\-export
989When used with
0d726f17
KS
990.B \-\-detail
991or
992.BR \-\-examine ,
54bad364
KS
993output will be formatted as
994.B key=value
995pairs for easy import into the environment.
996
2ae555c3 997.TP
7e23fc43 998.BR \-E ", " \-\-examine
2ae555c3 999Print content of md superblock on device(s).
5787fa49 1000.TP
7e23fc43 1001.B \-\-sparc2.2
a9d69660 1002If an array was created on a 2.2 Linux kernel patched with RAID
5787fa49
NB
1003support, the superblock will have been created incorrectly, or at
1004least incompatibly with 2.4 and later kernels. Using the
7e23fc43 1005.B \-\-sparc2.2
5787fa49 1006flag with
7e23fc43 1007.B \-\-examine
5787fa49
NB
1008will fix the superblock before displaying it. If this appears to do
1009the right thing, then the array can be successfully assembled using
7e23fc43 1010.BR "\-\-assemble \-\-update=sparc2.2" .
5787fa49 1011
2ae555c3 1012.TP
7e23fc43 1013.BR \-X ", " \-\-examine\-bitmap
2ae555c3 1014Report information about a bitmap file.
01d9299c
NB
1015The argument is either an external bitmap file or an array component
1016in case of an internal bitmap.
e0d19036 1017
cd29a5c8 1018.TP
7e23fc43 1019.BR \-R ", " \-\-run
cd29a5c8 1020start a partially built array.
52826846 1021
cd29a5c8 1022.TP
7e23fc43 1023.BR \-S ", " \-\-stop
cd29a5c8 1024deactivate array, releasing all resources.
52826846 1025
cd29a5c8 1026.TP
7e23fc43 1027.BR \-o ", " \-\-readonly
cd29a5c8 1028mark array as readonly.
52826846 1029
cd29a5c8 1030.TP
7e23fc43 1031.BR \-w ", " \-\-readwrite
cd29a5c8 1032mark array as readwrite.
52826846 1033
e0d19036 1034.TP
7e23fc43 1035.B \-\-zero\-superblock
e0d19036 1036If the device contains a valid md superblock, the block is
35cc5be4 1037overwritten with zeros. With
7e23fc43 1038.B \-\-force
35cc5be4 1039the block where the superblock would be is overwritten even if it
e0d19036 1040doesn't appear to be valid.
52826846 1041
feb716e9 1042.TP
7e23fc43 1043.BR \-t ", " \-\-test
feb716e9 1044When used with
7e23fc43 1045.BR \-\-detail ,
feb716e9
NB
1046the exit status of
1047.I mdadm
1048is set to reflect the status of the device.
1049
b90c0e9a 1050.TP
7e23fc43 1051.BR \-W ", " \-\-wait
b90c0e9a
NB
1052For each md device given, wait for any resync, recovery, or reshape
1053activity to finish before returning.
1054.I mdadm
1055will return with success if it actually waited for every device
1056listed, otherwise it will return failure.
1057
1770662b
DW
1058.TP
1059.BR \-\-wait\-clean
fabbfd48
DW
1060For each md device given, or each device in /proc/mdstat if
1061.B \-\-scan
1062is given, arrange for the array to be marked clean as soon as possible.
1063Also, quiesce resync so that the monitor for external metadata arrays
1064(mdmon) has an opportunity to checkpoint the resync position.
7146ec6a
DW
1065.I mdadm
1066will return with success if the array uses external metadata and we
1067successfully waited. For native arrays this returns immediately as the
1068kernel handles both dirty-clean transitions and resync checkpointing in
1069the kernel at shutdown. No action is taken if safe-mode handling is
1070disabled.
1770662b 1071
8382f19b
NB
1072.SH For Incremental Assembly mode:
1073.TP
7e23fc43 1074.BR \-\-rebuild\-map ", " \-r
8382f19b
NB
1075Rebuild the map file
1076.RB ( /var/run/mdadm/map )
1077that
1078.I mdadm
1079uses to help track which arrays are currently being assembled.
1080
1081.TP
7e23fc43 1082.BR \-\-run ", " \-R
8382f19b
NB
1083Run any array assembled as soon as a minimal number of devices are
1084available, rather than waiting until all expected devices are present.
1085
fdb482f9
DW
1086.TP
1087.B \-\-no\-degraded
1088This allows the hot-plug system to prevent arrays from running when it knows
1089that more disks may arrive later in the discovery process.
1090
8382f19b 1091.TP
7e23fc43 1092.BR \-\-scan ", " \-s
8382f19b 1093Only meaningful with
7e23fc43 1094.B \-R
8382f19b
NB
1095this will scan the
1096.B map
1097file for arrays that are being incrementally assembled and will try to
1098start any that are not already started. If any such array is listed
1099in
1100.B mdadm.conf
1101as requiring an external bitmap, that bitmap will be attached first.
1102
e0d19036
NB
1103.SH For Monitor mode:
1104.TP
7e23fc43 1105.BR \-m ", " \-\-mail
e0d19036
NB
1106Give a mail address to send alerts to.
1107
1108.TP
7e23fc43 1109.BR \-p ", " \-\-program ", " \-\-alert
e0d19036
NB
1110Give a program to be run whenever an event is detected.
1111
773135f5 1112.TP
7e23fc43 1113.BR \-y ", " \-\-syslog
773135f5
NB
1114Cause all events to be reported through 'syslog'. The messages have
1115facility of 'daemon' and varying priorities.
1116
e0d19036 1117.TP
7e23fc43 1118.BR \-d ", " \-\-delay
e0d19036 1119Give a delay in seconds.
51ac42e3 1120.I mdadm
e0d19036
NB
1121polls the md arrays and then waits this many seconds before polling
1122again. The default is 60 seconds.
1123
d013a55e 1124.TP
7e23fc43 1125.BR \-f ", " \-\-daemonise
d013a55e 1126Tell
51ac42e3 1127.I mdadm
d013a55e
NB
1128to run as a background daemon if it decides to monitor anything. This
1129causes it to fork and run in the child, and to disconnect form the
1130terminal. The process id of the child is written to stdout.
1131This is useful with
7e23fc43 1132.B \-\-scan
d013a55e
NB
1133which will only continue monitoring if a mail address or alert program
1134is found in the config file.
1135
b5e64645 1136.TP
7e23fc43 1137.BR \-i ", " \-\-pid\-file
b5e64645 1138When
51ac42e3 1139.I mdadm
b5e64645
NB
1140is running in daemon mode, write the pid of the daemon process to
1141the specified file, instead of printing it on standard output.
1142
aa88f531 1143.TP
7e23fc43 1144.BR \-1 ", " \-\-oneshot
aa88f531
NB
1145Check arrays only once. This will generate
1146.B NewArray
1147events and more significantly
1148.B DegradedArray
a9d69660
NB
1149and
1150.B SparesMissing
aa88f531
NB
1151events. Running
1152.in +5
7e23fc43 1153.B " mdadm \-\-monitor \-\-scan \-1"
aa88f531
NB
1154.in -5
1155from a cron script will ensure regular notification of any degraded arrays.
1156
98c6faba 1157.TP
7e23fc43 1158.BR \-t ", " \-\-test
98c6faba
NB
1159Generate a
1160.B TestMessage
1161alert for every array found at startup. This alert gets mailed and
1162passed to the alert program. This can be used for testing that alert
a9d69660 1163message do get through successfully.
98c6faba 1164
e0d19036 1165.SH ASSEMBLE MODE
52826846 1166
cd29a5c8
NB
1167.HP 12
1168Usage:
7e23fc43 1169.B mdadm \-\-assemble
5787fa49
NB
1170.I md-device options-and-component-devices...
1171.HP 12
1172Usage:
7e23fc43 1173.B mdadm \-\-assemble \-\-scan
5787fa49 1174.I md-devices-and-options...
cd29a5c8
NB
1175.HP 12
1176Usage:
7e23fc43 1177.B mdadm \-\-assemble \-\-scan
cd29a5c8 1178.I options...
52826846 1179
cd29a5c8 1180.PP
52826846 1181This usage assembles one or more raid arrays from pre-existing components.
9a9dab36 1182For each array, mdadm needs to know the md device, the identity of the
e0d19036 1183array, and a number of component-devices. These can be found in a number of ways.
52826846 1184
5787fa49 1185In the first usage example (without the
7e23fc43 1186.BR \-\-scan )
5787fa49
NB
1187the first device given is the md device.
1188In the second usage example, all devices listed are treated as md
1189devices and assembly is attempted.
1190In the third (where no devices are listed) all md devices that are
8fd8d9c4
N
1191listed in the configuration file are assembled. Then any arrays that
1192can be found on unused devices will also be assembled.
52826846 1193
d013a55e 1194If precisely one device is listed, but
7e23fc43 1195.B \-\-scan
dd0781e5 1196is not given, then
d013a55e
NB
1197.I mdadm
1198acts as though
7e23fc43 1199.B \-\-scan
93e790af 1200was given and identity information is extracted from the configuration file.
d013a55e 1201
2ae555c3 1202The identity can be given with the
7e23fc43 1203.B \-\-uuid
cd29a5c8 1204option, with the
7e23fc43 1205.B \-\-super\-minor
93e790af
SW
1206option, will be taken from the md-device record in the config file, or
1207will be taken from the super block of the first component-device
1208listed on the command line.
52826846 1209
2ae555c3 1210Devices can be given on the
7e23fc43 1211.B \-\-assemble
5787fa49
NB
1212command line or in the config file. Only devices which have an md
1213superblock which contains the right identity will be considered for
1214any array.
52826846 1215
2ae555c3 1216The config file is only used if explicitly named with
7e23fc43 1217.B \-\-config
d013a55e 1218or requested with (a possibly implicit)
7e23fc43 1219.BR \-\-scan .
52826846 1220In the later case,
9a9dab36 1221.B /etc/mdadm.conf
8fd8d9c4
N
1222or
1223.B /etc/mdadm/mdadm.conf
52826846
NB
1224is used.
1225
2ae555c3 1226If
7e23fc43 1227.B \-\-scan
cd29a5c8
NB
1228is not given, then the config file will only be used to find the
1229identity of md arrays.
52826846 1230
2d465520 1231Normally the array will be started after it is assembled. However if
7e23fc43 1232.B \-\-scan
2d465520 1233is not given and insufficient drives were listed to start a complete
cd29a5c8
NB
1234(non-degraded) array, then the array is not started (to guard against
1235usage errors). To insist that the array be started in this case (as
1a7dfc35 1236may work for RAID1, 4, 5, 6, or 10), give the
7e23fc43 1237.B \-\-run
cd29a5c8 1238flag.
52826846 1239
75723446
NB
1240If the md device does not exist, then it will be created providing the
1241intent is clear. i.e. the name must be in a standard form, or the
7e23fc43 1242.B \-\-auto
75723446
NB
1243option must be given to clarify how and whether the device should be
1244created.
dd0781e5 1245This can be useful for handling partitioned devices (which don't have
b3f1c093 1246a stable device number \(em it can change after a reboot) and when using
dd0781e5
NB
1247"udev" to manage your
1248.B /dev
1249tree (udev cannot handle md devices because of the unusual device
1250initialisation conventions).
1251
1252If the option to "auto" is "mdp" or "part" or (on the command line
1253only) "p", then mdadm will create a partitionable array, using the
93e790af 1254first free one that is not in use and does not already have an entry
dd0781e5
NB
1255in /dev (apart from numeric /dev/md* entries).
1256
1257If the option to "auto" is "yes" or "md" or (on the command line)
1258nothing, then mdadm will create a traditional, non-partitionable md
1259array.
1260
1261It is expected that the "auto" functionality will be used to create
1262device entries with meaningful names such as "/dev/md/home" or
1263"/dev/md/root", rather than names based on the numerical array number.
1264
93e790af 1265When using option "auto" to create a partitionable array, the device
dd0781e5
NB
1266files for the first 4 partitions are also created. If a different
1267number is required it can be simply appended to the auto option.
1268e.g. "auto=part8". Partition names are created by appending a digit
a9d69660 1269string to the device name, with an intervening "p" if the device name
dd0781e5
NB
1270ends with a digit.
1271
1272The
7e23fc43 1273.B \-\-auto
dd0781e5
NB
1274option is also available in Build and Create modes. As those modes do
1275not use a config file, the "auto=" config option does not apply to
1276these modes.
52826846 1277
41a3b72a
NB
1278.SS Auto Assembly
1279When
7e23fc43 1280.B \-\-assemble
41a3b72a 1281is used with
7e23fc43 1282.B \-\-scan
41a3b72a
NB
1283and no devices are listed,
1284.I mdadm
1285will first attempt to assemble all the arrays listed in the config
1286file.
1287
8fd8d9c4
N
1288It will then look further for possible arrays and will try to assemble
1289anything that it finds. Arrays which are tagged as belonging to the given
1290homehost will be assembled and started normally. Arrays which do not
1291obviously belong to this host are given names that are expected not to
1292conflict with anything local, and are started "read-auto" so that
1293nothing is written to any device until the array is written to. i.e.
1294automatic resync etc is delayed.
41a3b72a
NB
1295
1296If
1297.I mdadm
1298finds a consistent set of devices that look like they should comprise
1299an array, and if the superblock is tagged as belonging to the given
1300home host, it will automatically choose a device name and try to
1301assemble the array. If the array uses version-0.90 metadata, then the
1302.B minor
1303number as recorded in the superblock is used to create a name in
1304.B /dev/md/
1305so for example
1306.BR /dev/md/3 .
1307If the array uses version-1 metadata, then the
1308.B name
1309from the superblock is used to similarly create a name in
93e790af
SW
1310.BR /dev/md
1311(the name will have any 'host' prefix stripped first).
41a3b72a
NB
1312
1313If
1314.I mdadm
1315cannot find any array for the given host at all, and if
7e23fc43 1316.B \-\-auto\-update\-homehost
41a3b72a
NB
1317is given, then
1318.I mdadm
1319will search again for any array (not just an array created for this
1320host) and will assemble each assuming
7e23fc43 1321.BR \-\-update=homehost .
41a3b72a
NB
1322This will change the host tag in the superblock so that on the next run,
1323these arrays will be found without the second pass. The intention of
1324this feature is to support transitioning a set of md arrays to using
1325homehost tagging.
1326
1327The reason for requiring arrays to be tagged with the homehost for
1328auto assembly is to guard against problems that can arise when moving
1329devices from one host to another.
1330
cd29a5c8 1331.SH BUILD MODE
52826846 1332
cd29a5c8
NB
1333.HP 12
1334Usage:
7e23fc43 1335.B mdadm \-\-build
93e790af 1336.I md-device
7e23fc43
PS
1337.BI \-\-chunk= X
1338.BI \-\-level= Y
1339.BI \-\-raid\-devices= Z
cd29a5c8
NB
1340.I devices
1341
1342.PP
2ae555c3 1343This usage is similar to
7e23fc43 1344.BR \-\-create .
a9d69660 1345The difference is that it creates an array without a superblock. With
cd29a5c8 1346these arrays there is no difference between initially creating the array and
52826846
NB
1347subsequently assembling the array, except that hopefully there is useful
1348data there in the second case.
1349
a9d69660
NB
1350The level may raid0, linear, multipath, or faulty, or one of their
1351synonyms. All devices must be listed and the array will be started
1352once complete.
cd29a5c8
NB
1353
1354.SH CREATE MODE
1355
1356.HP 12
1357Usage:
7e23fc43 1358.B mdadm \-\-create
93e790af 1359.I md-device
7e23fc43
PS
1360.BI \-\-chunk= X
1361.BI \-\-level= Y
cd29a5c8 1362.br
7e23fc43 1363.BI \-\-raid\-devices= Z
cd29a5c8
NB
1364.I devices
1365
1366.PP
1367This usage will initialise a new md array, associate some devices with
1368it, and activate the array.
1369
a9d69660 1370If the
7e23fc43 1371.B \-\-auto
dd0781e5
NB
1372option is given (as described in more detail in the section on
1373Assemble mode), then the md device will be created with a suitable
1374device number if necessary.
1375
cd29a5c8 1376As devices are added, they are checked to see if they contain raid
2d465520 1377superblocks or filesystems. They are also checked to see if the variance in
cd29a5c8
NB
1378device size exceeds 1%.
1379
1380If any discrepancy is found, the array will not automatically be run, though
2ae555c3 1381the presence of a
7e23fc43 1382.B \-\-run
cd29a5c8
NB
1383can override this caution.
1384
2d465520 1385To create a "degraded" array in which some devices are missing, simply
d013a55e 1386give the word "\fBmissing\fP"
2d465520 1387in place of a device name. This will cause
51ac42e3 1388.I mdadm
2d465520
NB
1389to leave the corresponding slot in the array empty.
1390For a RAID4 or RAID5 array at most one slot can be
98c6faba 1391"\fBmissing\fP"; for a RAID6 array at most two slots.
2d465520
NB
1392For a RAID1 array, only one real device needs to be given. All of the
1393others can be
d013a55e 1394"\fBmissing\fP".
2d465520 1395
feb716e9 1396When creating a RAID5 array,
51ac42e3 1397.I mdadm
feb716e9
NB
1398will automatically create a degraded array with an extra spare drive.
1399This is because building the spare into a degraded array is in general faster than resyncing
1400the parity on a non-degraded, but not clean, array. This feature can
35cc5be4 1401be overridden with the
7e23fc43 1402.B \-\-force
feb716e9
NB
1403option.
1404
0ee4da98 1405When creating an array with version-1 metadata a name for the array is
41a3b72a
NB
1406required.
1407If this is not given with the
7e23fc43 1408.B \-\-name
41a3b72a
NB
1409option,
1410.I mdadm
0ee4da98 1411will choose a name based on the last component of the name of the
41a3b72a
NB
1412device being created. So if
1413.B /dev/md3
1414is being created, then the name
1415.B 3
1416will be chosen.
1417If
1418.B /dev/md/home
1419is being created, then the name
1420.B home
1421will be used.
1422
e0f31f50
PC
1423When creating a partition based array, using
1424.I mdadm
1425with version-1.x metadata, the partition type should be set to
1426.B 0xDA
1427(non fs-data). This type selection allows for greater precision since
1428using any other [RAID auto-detect (0xFD) or a GNU/Linux partition (0x83)],
1429might create problems in the event of array recovery through a live cdrom.
1430
3d3dd91e
NB
1431A new array will normally get a randomly assigned 128bit UUID which is
1432very likely to be unique. If you have a specific need, you can choose
1433a UUID for the array by giving the
7e23fc43 1434.B \-\-uuid=
3d3dd91e
NB
1435option. Be warned that creating two arrays with the same UUID is a
1436recipe for disaster. Also, using
7e23fc43 1437.B \-\-uuid=
3d3dd91e 1438when creating a v0.90 array will silently override any
7e23fc43 1439.B \-\-homehost=
3d3dd91e 1440setting.
e43d0cda
NB
1441.\"If the
1442.\".B \-\-size
1443.\"option is given, it is not necessary to list any component-devices in this command.
1444.\"They can be added later, before a
1445.\".B \-\-run.
1446.\"If no
1447.\".B \-\-size
1448.\"is given, the apparent size of the smallest drive given is used.
cd29a5c8 1449
8fd8d9c4
N
1450When creating an array within a
1451.B CONTAINER
1452.I mdadm
1453can be given either the list of devices to use, or simply the name of
1454the container. The former case gives control over which devices in
1455the container will be used for the array. The latter case allows
1456.I mdadm
1457to automatically choose which devices to use based on how much spare
1458space is available.
1459
53e8b987 1460The General Management options that are valid with
7e23fc43 1461.B \-\-create
53e8b987 1462are:
cd29a5c8 1463.TP
7e23fc43 1464.B \-\-run
dd0781e5 1465insist on running the array even if some devices look like they might
cd29a5c8
NB
1466be in use.
1467
1468.TP
7e23fc43 1469.B \-\-readonly
b3f1c093 1470start the array readonly \(em not supported yet.
52826846 1471
2ae555c3 1472
e0d19036 1473.SH MANAGE MODE
cd29a5c8
NB
1474.HP 12
1475Usage:
e0d19036
NB
1476.B mdadm
1477.I device
1478.I options... devices...
cd29a5c8
NB
1479.PP
1480
e0d19036
NB
1481This usage will allow individual devices in an array to be failed,
1482removed or added. It is possible to perform multiple operations with
1483on command. For example:
1484.br
7e23fc43 1485.B " mdadm /dev/md0 \-f /dev/hda1 \-r /dev/hda1 \-a /dev/hda1"
e0d19036
NB
1486.br
1487will firstly mark
1488.B /dev/hda1
1489as faulty in
1490.B /dev/md0
1491and will then remove it from the array and finally add it back
2d465520 1492in as a spare. However only one md array can be affected by a single
2ae555c3 1493command.
e0d19036
NB
1494
1495.SH MISC MODE
1496.HP 12
1497Usage:
9a9dab36 1498.B mdadm
e0d19036
NB
1499.I options ...
1500.I devices ...
1501.PP
cd29a5c8 1502
b5e64645 1503MISC mode includes a number of distinct operations that
e0d19036
NB
1504operate on distinct devices. The operations are:
1505.TP
962a108f 1506.B \-\-query
e0d19036
NB
1507The device is examined to see if it is
1508(1) an active md array, or
1509(2) a component of an md array.
1510The information discovered is reported.
1511
1512.TP
962a108f 1513.B \-\-detail
2d465520
NB
1514The device should be an active md device.
1515.B mdadm
1516will display a detailed description of the array.
7e23fc43 1517.B \-\-brief
2d465520 1518or
7e23fc43 1519.B \-\-scan
2d465520 1520will cause the output to be less detailed and the format to be
e0d19036 1521suitable for inclusion in
9a9dab36 1522.BR /etc/mdadm.conf .
feb716e9
NB
1523The exit status of
1524.I mdadm
1525will normally be 0 unless
1526.I mdadm
93e790af 1527failed to get useful information about the device(s); however, if the
7e23fc43 1528.B \-\-test
feb716e9
NB
1529option is given, then the exit status will be:
1530.RS
1531.TP
15320
1533The array is functioning normally.
1534.TP
15351
1536The array has at least one failed device.
1537.TP
15382
a77be586 1539The array has multiple failed devices such that it is unusable.
feb716e9
NB
1540.TP
15414
1542There was an error while trying to get information about the device.
1543.RE
cd29a5c8 1544
4cce4069
DW
1545.TP
1546.B \-\-detail\-platform
1547Print detail of the platform's raid capabilities (firmware / hardware
1548topology). If the metadata is specified with
1549.B \-e
1550or
1551.B \-\-metadata=
1552then the return status will be:
1553.RS
1554.TP
15550
1556metadata successfully enumerated its platform components on this system
1557.TP
15581
1559metadata is platform independent
1560.TP
15612
1562metadata failed to find its platform components on this system
1563.RE
1564
e0d19036 1565.TP
962a108f 1566.B \-\-examine
2d465520 1567The device should be a component of an md array.
51ac42e3 1568.I mdadm
2d465520 1569will read the md superblock of the device and display the contents.
e0d19036 1570If
7e23fc43 1571.B \-\-brief
93e790af 1572or
7e23fc43 1573.B \-\-scan
93e790af 1574is given, then multiple devices that are components of the one array
e0d19036
NB
1575are grouped together and reported in a single entry suitable
1576for inclusion in
1577.BR /etc/mdadm.conf .
1578
2d465520 1579Having
7e23fc43 1580.B \-\-scan
e0d19036
NB
1581without listing any devices will cause all devices listed in the
1582config file to be examined.
1583
1584.TP
962a108f 1585.B \-\-stop
98c6faba
NB
1586The devices should be active md arrays which will be deactivated, as
1587long as they are not currently in use.
e0d19036
NB
1588
1589.TP
962a108f 1590.B \-\-run
e0d19036
NB
1591This will fully activate a partially assembled md array.
1592
1593.TP
962a108f 1594.B \-\-readonly
e0d19036
NB
1595This will mark an active array as read-only, providing that it is
1596not currently being used.
1597
1598.TP
962a108f 1599.B \-\-readwrite
e0d19036
NB
1600This will change a
1601.B readonly
1602array back to being read/write.
1603
2d465520 1604.TP
962a108f 1605.B \-\-scan
2d465520 1606For all operations except
7e23fc43
PS
1607.BR \-\-examine ,
1608.B \-\-scan
2d465520
NB
1609will cause the operation to be applied to all arrays listed in
1610.BR /proc/mdstat .
1611For
7e23fc43
PS
1612.BR \-\-examine,
1613.B \-\-scan
2d465520
NB
1614causes all devices listed in the config file to be examined.
1615
1616
e0d19036
NB
1617.SH MONITOR MODE
1618
cd29a5c8
NB
1619.HP 12
1620Usage:
7e23fc43 1621.B mdadm \-\-monitor
e0d19036
NB
1622.I options... devices...
1623
cd29a5c8 1624.PP
e0d19036 1625This usage causes
51ac42e3 1626.I mdadm
e0d19036
NB
1627to periodically poll a number of md arrays and to report on any events
1628noticed.
51ac42e3 1629.I mdadm
e0d19036
NB
1630will never exit once it decides that there are arrays to be checked,
1631so it should normally be run in the background.
1632
2d465520 1633As well as reporting events,
51ac42e3 1634.I mdadm
2d465520
NB
1635may move a spare drive from one array to another if they are in the
1636same
1637.B spare-group
a9d69660 1638and if the destination array has a failed drive but no spares.
2d465520 1639
e0d19036 1640If any devices are listed on the command line,
51ac42e3 1641.I mdadm
e0d19036
NB
1642will only monitor those devices. Otherwise all arrays listed in the
1643configuration file will be monitored. Further, if
7e23fc43 1644.B \-\-scan
e0d19036
NB
1645is given, then any other md devices that appear in
1646.B /proc/mdstat
1647will also be monitored.
1648
1649The result of monitoring the arrays is the generation of events.
bd526cee 1650These events are passed to a separate program (if specified) and may
2d465520 1651be mailed to a given E-mail address.
e0d19036 1652
93e790af
SW
1653When passing events to a program, the program is run once for each event,
1654and is given 2 or 3 command-line arguments: the first is the
1655name of the event (see below), the second is the name of the
bd526cee 1656md device which is affected, and the third is the name of a related
93e790af 1657device if relevant (such as a component device that has failed).
cd29a5c8
NB
1658
1659If
7e23fc43 1660.B \-\-scan
e0d19036
NB
1661is given, then a program or an E-mail address must be specified on the
1662command line or in the config file. If neither are available, then
51ac42e3 1663.I mdadm
e0d19036
NB
1664will not monitor anything.
1665Without
93e790af 1666.B \-\-scan,
51ac42e3 1667.I mdadm
2d465520 1668will continue monitoring as long as something was found to monitor. If
e0d19036
NB
1669no program or email is given, then each event is reported to
1670.BR stdout .
cd29a5c8 1671
e0d19036
NB
1672The different events are:
1673
1674.RS 4
1675.TP
1676.B DeviceDisappeared
2d465520 1677An md array which previously was configured appears to no longer be
773135f5 1678configured. (syslog priority: Critical)
e0d19036 1679
b8f72a62
NB
1680If
1681.I mdadm
1682was told to monitor an array which is RAID0 or Linear, then it will
1683report
1684.B DeviceDisappeared
1685with the extra information
1686.BR Wrong-Level .
1687This is because RAID0 and Linear do not support the device-failed,
1688hot-spare and resync operations which are monitored.
1689
e0d19036
NB
1690.TP
1691.B RebuildStarted
773135f5 1692An md array started reconstruction. (syslog priority: Warning)
e0d19036
NB
1693
1694.TP
1695.BI Rebuild NN
1696Where
1697.I NN
1698is 20, 40, 60, or 80, this indicates that rebuild has passed that many
773135f5 1699percentage of the total. (syslog priority: Warning)
e0d19036 1700
98c6faba
NB
1701.TP
1702.B RebuildFinished
1703An md array that was rebuilding, isn't any more, either because it
773135f5 1704finished normally or was aborted. (syslog priority: Warning)
98c6faba 1705
e0d19036
NB
1706.TP
1707.B Fail
773135f5
NB
1708An active component device of an array has been marked as
1709faulty. (syslog priority: Critical)
e0d19036
NB
1710
1711.TP
1712.B FailSpare
1713A spare component device which was being rebuilt to replace a faulty
93e790af 1714device has failed. (syslog priority: Critical)
e0d19036
NB
1715
1716.TP
1717.B SpareActive
1718A spare component device which was being rebuilt to replace a faulty
98b24a2a 1719device has been successfully rebuilt and has been made active.
773135f5 1720(syslog priority: Info)
e0d19036
NB
1721
1722.TP
1723.B NewArray
1724A new md array has been detected in the
1725.B /proc/mdstat
773135f5 1726file. (syslog priority: Info)
e0d19036 1727
aa88f531
NB
1728.TP
1729.B DegradedArray
1730A newly noticed array appears to be degraded. This message is not
1731generated when
1732.I mdadm
1733notices a drive failure which causes degradation, but only when
1734.I mdadm
1735notices that an array is degraded when it first sees the array.
93e790af 1736(syslog priority: Critical)
aa88f531 1737
e0d19036
NB
1738.TP
1739.B MoveSpare
1740A spare drive has been moved from one array in a
1741.B spare-group
1742to another to allow a failed drive to be replaced.
773135f5 1743(syslog priority: Info)
e0d19036 1744
b8f72a62
NB
1745.TP
1746.B SparesMissing
1747If
1748.I mdadm
1749has been told, via the config file, that an array should have a certain
1750number of spare devices, and
1751.I mdadm
93e790af 1752detects that it has fewer than this number when it first sees the
b8f72a62
NB
1753array, it will report a
1754.B SparesMissing
1755message.
d1732eeb 1756(syslog priority: Warning)
b8f72a62 1757
98c6faba
NB
1758.TP
1759.B TestMessage
1760An array was found at startup, and the
7e23fc43 1761.B \-\-test
98c6faba 1762flag was given.
773135f5 1763(syslog priority: Info)
e0d19036
NB
1764.RE
1765
1766Only
93e790af
SW
1767.B Fail,
1768.B FailSpare,
1769.B DegradedArray,
1770.B SparesMissing
e0d19036 1771and
98c6faba 1772.B TestMessage
e0d19036 1773cause Email to be sent. All events cause the program to be run.
93e790af 1774The program is run with two or three arguments: the event
e0d19036
NB
1775name, the array device and possibly a second device.
1776
1777Each event has an associated array device (e.g.
1778.BR /dev/md1 )
1779and possibly a second device. For
1780.BR Fail ,
1781.BR FailSpare ,
1782and
1783.B SpareActive
1784the second device is the relevant component device.
1785For
1786.B MoveSpare
1787the second device is the array that the spare was moved from.
1788
1789For
51ac42e3 1790.I mdadm
e0d19036 1791to move spares from one array to another, the different arrays need to
93e790af 1792be labeled with the same
e0d19036
NB
1793.B spare-group
1794in the configuration file. The
1795.B spare-group
93e790af 1796name can be any string; it is only necessary that different spare
2d465520 1797groups use different names.
e0d19036
NB
1798
1799When
51ac42e3 1800.I mdadm
93e790af 1801detects that an array in a spare group has fewer active
e0d19036
NB
1802devices than necessary for the complete array, and has no spare
1803devices, it will look for another array in the same spare group that
1804has a full complement of working drive and a spare. It will then
1805attempt to remove the spare from the second drive and add it to the
1806first.
1807If the removal succeeds but the adding fails, then it is added back to
1808the original array.
1809
dd0781e5
NB
1810.SH GROW MODE
1811The GROW mode is used for changing the size or shape of an active
1812array.
1813For this to work, the kernel must support the necessary change.
2ae555c3 1814Various types of growth are being added during 2.6 development,
dd0781e5
NB
1815including restructuring a raid5 array to have more active devices.
1816
dfd4d8ee
NB
1817Currently the only support available is to
1818.IP \(bu 4
1819change the "size" attribute
1820for RAID1, RAID5 and RAID6.
1821.IP \(bu 4
e5669f40 1822increase the "raid\-devices" attribute of RAID1, RAID5, and RAID6.
dfd4d8ee 1823.IP \(bu 4
93e790af 1824add a write-intent bitmap to any array which supports these bitmaps, or
2ae555c3 1825remove a write-intent bitmap from such an array.
dfd4d8ee 1826.PP
dd0781e5 1827
8fd8d9c4
N
1828GROW mode is not currently supported for
1829.B CONTAINERS
1830or arrays inside containers.
1831
2ae555c3 1832.SS SIZE CHANGES
fe80f49b 1833Normally when an array is built the "size" it taken from the smallest
dd0781e5
NB
1834of the drives. If all the small drives in an arrays are, one at a
1835time, removed and replaced with larger drives, then you could have an
1836array of large drives with only a small amount used. In this
1837situation, changing the "size" with "GROW" mode will allow the extra
1838space to start being used. If the size is increased in this way, a
1839"resync" process will start to make sure the new parts of the array
1840are synchronised.
1841
1842Note that when an array changes size, any filesystem that may be
1843stored in the array will not automatically grow to use the space. The
1844filesystem will need to be explicitly told to use the extra space.
1845
2ae555c3
NB
1846.SS RAID-DEVICES CHANGES
1847
dd0781e5
NB
1848A RAID1 array can work with any number of devices from 1 upwards
1849(though 1 is not very useful). There may be times which you want to
1850increase or decrease the number of active devices. Note that this is
1851different to hot-add or hot-remove which changes the number of
1852inactive devices.
1853
1854When reducing the number of devices in a RAID1 array, the slots which
1855are to be removed from the array must already be vacant. That is, the
93e790af 1856devices which were in those slots must be failed and removed.
dd0781e5
NB
1857
1858When the number of devices is increased, any hot spares that are
a9d69660 1859present will be activated immediately.
dd0781e5 1860
2ae555c3
NB
1861Increasing the number of active devices in a RAID5 is much more
1862effort. Every block in the array will need to be read and written
1863back to a new location. From 2.6.17, the Linux Kernel is able to do
1864this safely, including restart and interrupted "reshape".
1865
1866When relocating the first few stripes on a raid5, it is not possible
1867to keep the data on disk completely consistent and crash-proof. To
1868provide the required safety, mdadm disables writes to the array while
1869this "critical section" is reshaped, and takes a backup of the data
1870that is in that section. This backup is normally stored in any spare
1871devices that the array has, however it can also be stored in a
1872separate file specified with the
7e23fc43 1873.B \-\-backup\-file
2ae555c3
NB
1874option. If this option is used, and the system does crash during the
1875critical period, the same file must be passed to
7e23fc43 1876.B \-\-assemble
2ae555c3
NB
1877to restore the backup and reassemble the array.
1878
1879.SS BITMAP CHANGES
1880
1881A write-intent bitmap can be added to, or removed from, an active
93e790af 1882array. Either internal bitmaps, or bitmaps stored in a separate file,
fe80f49b
NB
1883can be added. Note that if you add a bitmap stored in a file which is
1884in a filesystem that is on the raid array being affected, the system
1885will deadlock. The bitmap must be on a separate filesystem.
1886
8382f19b
NB
1887.SH INCREMENTAL MODE
1888
1889.HP 12
1890Usage:
7e23fc43
PS
1891.B mdadm \-\-incremental
1892.RB [ \-\-run ]
1893.RB [ \-\-quiet ]
8382f19b
NB
1894.I component-device
1895.HP 12
1896Usage:
7e23fc43 1897.B mdadm \-\-incremental \-\-rebuild
8382f19b
NB
1898.HP 12
1899Usage:
7e23fc43 1900.B mdadm \-\-incremental \-\-run \-\-scan
8382f19b
NB
1901
1902
1903.PP
1904This mode is designed to be used in conjunction with a device
1905discovery system. As devices are found in a system, they can be
1906passed to
7e23fc43 1907.B "mdadm \-\-incremental"
8382f19b
NB
1908to be conditionally added to an appropriate array.
1909
8fd8d9c4
N
1910If the device passed is a
1911.B CONTAINER
1912device created by a previous call to
1913.IR mdadm ,
1914then rather than trying to add that device to an array, all the arrays
1915described by the metadata of the container will be started.
1916
8382f19b
NB
1917.I mdadm
1918performs a number of tests to determine if the device is part of an
93e790af 1919array, and which array it should be part of. If an appropriate array
8382f19b
NB
1920is found, or can be created,
1921.I mdadm
1922adds the device to the array and conditionally starts the array.
1923
1924Note that
1925.I mdadm
1926will only add devices to an array which were previously working
1927(active or spare) parts of that array. It does not currently support
1928automatic inclusion of a new drive as a spare in some array.
1929
8382f19b
NB
1930The tests that
1931.I mdadm
1932makes are as follow:
1933.IP +
1934Is the device permitted by
1935.BR mdadm.conf ?
1936That is, is it listed in a
1937.B DEVICES
1938line in that file. If
1939.B DEVICES
1940is absent then the default it to allow any device. Similar if
1941.B DEVICES
1942contains the special word
1943.B partitions
1944then any device is allowed. Otherwise the device name given to
1945.I mdadm
1946must match one of the names or patterns in a
1947.B DEVICES
1948line.
1949
1950.IP +
1951Does the device have a valid md superblock. If a specific metadata
1952version is request with
7e23fc43 1953.B \-\-metadata
8382f19b 1954or
7e23fc43 1955.B \-e
8382f19b
NB
1956then only that style of metadata is accepted, otherwise
1957.I mdadm
1958finds any known version of metadata. If no
1959.I md
1960metadata is found, the device is rejected.
1961
1962.IP +
1963Does the metadata match an expected array?
1964The metadata can match in two ways. Either there is an array listed
1965in
1966.B mdadm.conf
1967which identifies the array (either by UUID, by name, by device list,
93e790af 1968or by minor-number), or the array was created with a
8382f19b 1969.B homehost
93e790af 1970specified and that
8382f19b 1971.B homehost
93e790af 1972matches the one in
8382f19b
NB
1973.B mdadm.conf
1974or on the command line.
1975If
1976.I mdadm
1977is not able to positively identify the array as belonging to the
1978current host, the device will be rejected.
1979
1980.IP +
1981.I mdadm
93e790af 1982keeps a list of arrays that it has partially assembled in
8382f19b
NB
1983.B /var/run/mdadm/map
1984(or
1985.B /var/run/mdadm.map
1986if the directory doesn't exist). If no array exists which matches
1987the metadata on the new device,
1988.I mdadm
1989must choose a device name and unit number. It does this based on any
1990name given in
1991.B mdadm.conf
1992or any name information stored in the metadata. If this name
1993suggests a unit number, that number will be used, otherwise a free
1994unit number will be chosen. Normally
1995.I mdadm
1996will prefer to create a partitionable array, however if the
1997.B CREATE
1998line in
1999.B mdadm.conf
2000suggests that a non-partitionable array is preferred, that will be
2001honoured.
2002
2003.IP +
2004Once an appropriate array is found or created and the device is added,
2005.I mdadm
2006must decide if the array is ready to be started. It will
2007normally compare the number of available (non-spare) devices to the
2008number of devices that the metadata suggests need to be active. If
2009there are at least that many, the array will be started. This means
2010that if any devices are missing the array will not be restarted.
2011
2012As an alternative,
7e23fc43 2013.B \-\-run
8382f19b 2014may be passed to
51ac42e3 2015.I mdadm
8382f19b
NB
2016in which case the array will be run as soon as there are enough
2017devices present for the data to be accessible. For a raid1, that
2018means one device will start the array. For a clean raid5, the array
2019will be started as soon as all but one drive is present.
2020
93e790af 2021Note that neither of these approaches is really ideal. If it can
8382f19b
NB
2022be known that all device discovery has completed, then
2023.br
7e23fc43 2024.B " mdadm \-IRs"
8382f19b
NB
2025.br
2026can be run which will try to start all arrays that are being
2027incrementally assembled. They are started in "read-auto" mode in
2028which they are read-only until the first write request. This means
2029that no metadata updates are made and no attempt at resync or recovery
2030happens. Further devices that are found before the first write can
2031still be added safely.
2032
5545fa6d
DW
2033
2034.SH ENVIRONMENT
2035This section describes environment variables that affect how mdadm
2036operates.
2037
2038.TP
2039.B MDADM_NO_MDMON
2040Setting this value to 1 will prevent mdadm from automatically launching
2041mdmon. This variable is intended primarily for debugging mdadm/mdmon.
2042
8fd8d9c4
N
2043.TP
2044.B MDADM_NO_UDEV
2045Normally,
2046.I mdadm
2047does not create any device nodes in /dev, but leaves that task to
2048.IR udev .
2049If
2050.I udev
2051appears not to be configured, or if this environment variable is set
2052to '1', the
2053.I mdadm
2054will create and devices that are needed.
2055
2d465520
NB
2056.SH EXAMPLES
2057
7e23fc43 2058.B " mdadm \-\-query /dev/name-of-device"
2d465520 2059.br
5787fa49
NB
2060This will find out if a given device is a raid array, or is part of
2061one, and will provide brief information about the device.
2d465520 2062
7e23fc43 2063.B " mdadm \-\-assemble \-\-scan"
2d465520 2064.br
93e790af 2065This will assemble and start all arrays listed in the standard config
5787fa49 2066file. This command will typically go in a system startup file.
2d465520 2067
7e23fc43 2068.B " mdadm \-\-stop \-\-scan"
5787fa49 2069.br
93e790af 2070This will shut down all arrays that can be shut down (i.e. are not
19f8b8fc 2071currently in use). This will typically go in a system shutdown script.
2d465520 2072
7e23fc43 2073.B " mdadm \-\-follow \-\-scan \-\-delay=120"
2d465520 2074.br
5787fa49
NB
2075If (and only if) there is an Email address or program given in the
2076standard config file, then
2077monitor the status of all arrays listed in that file by
2078polling them ever 2 minutes.
2d465520 2079
7e23fc43 2080.B " mdadm \-\-create /dev/md0 \-\-level=1 \-\-raid\-devices=2 /dev/hd[ac]1"
2d465520 2081.br
5787fa49 2082Create /dev/md0 as a RAID1 array consisting of /dev/hda1 and /dev/hdc1.
2d465520 2083
2d465520 2084.br
7e23fc43 2085.B " echo 'DEVICE /dev/hd*[0\-9] /dev/sd*[0\-9]' > mdadm.conf"
2d465520 2086.br
7e23fc43 2087.B " mdadm \-\-detail \-\-scan >> mdadm.conf"
2d465520 2088.br
5787fa49
NB
2089This will create a prototype config file that describes currently
2090active arrays that are known to be made from partitions of IDE or SCSI drives.
2d465520
NB
2091This file should be reviewed before being used as it may
2092contain unwanted detail.
2093
7e23fc43 2094.B " echo 'DEVICE /dev/hd[a\-z] /dev/sd*[a\-z]' > mdadm.conf"
2d465520 2095.br
7e23fc43 2096.B " mdadm \-\-examine \-\-scan \-\-config=mdadm.conf >> mdadm.conf"
93e790af
SW
2097.br
2098This will find arrays which could be assembled from existing IDE and
2099SCSI whole drives (not partitions), and store the information in the
5787fa49 2100format of a config file.
2d465520
NB
2101This file is very likely to contain unwanted detail, particularly
2102the
2103.B devices=
5787fa49
NB
2104entries. It should be reviewed and edited before being used as an
2105actual config file.
2d465520 2106
7e23fc43 2107.B " mdadm \-\-examine \-\-brief \-\-scan \-\-config=partitions"
2d465520 2108.br
7e23fc43 2109.B " mdadm \-Ebsc partitions"
5787fa49
NB
2110.br
2111Create a list of devices by reading
2112.BR /proc/partitions ,
2113scan these for RAID superblocks, and printout a brief listing of all
93e790af 2114that were found.
2d465520 2115
7e23fc43 2116.B " mdadm \-Ac partitions \-m 0 /dev/md0"
2d465520 2117.br
5787fa49
NB
2118Scan all partitions and devices listed in
2119.BR /proc/partitions
2120and assemble
2121.B /dev/md0
2122out of all such devices with a RAID superblock with a minor number of 0.
2d465520 2123
7e23fc43 2124.B " mdadm \-\-monitor \-\-scan \-\-daemonise > /var/run/mdadm"
d013a55e
NB
2125.br
2126If config file contains a mail address or alert program, run mdadm in
2127the background in monitor mode monitoring all md devices. Also write
2128pid of mdadm daemon to
2129.BR /var/run/mdadm .
2130
7e23fc43 2131.B " mdadm \-Iq /dev/somedevice"
8382f19b
NB
2132.br
2133Try to incorporate newly discovered device into some array as
2134appropriate.
2135
7e23fc43 2136.B " mdadm \-\-incremental \-\-rebuild \-\-run \-\-scan"
8382f19b
NB
2137.br
2138Rebuild the array map from any current arrays, and then start any that
2139can be started.
2140
b80da661
NB
2141.B " mdadm /dev/md4 --fail detached --remove detached"
2142.br
2143Any devices which are components of /dev/md4 will be marked as faulty
2144and then remove from the array.
2145
8fd8d9c4
N
2146.B " mdadm --create /dev/md/ddf --metadata=ddf --raid-disks 6 /dev/sd[a-f]"
2147.br
2148Create a DDF array over 6 devices.
2149
2150.B " mdadm --create /dev/md/home -n3 -l5 -z 30000000 /dev/md/ddf"
2151.br
2152Create a raid5 array over any 3 devices in the given DDF set. Use
2153only 30 gigabytes of each device.
2154
2155.B " mdadm -A /dev/md/ddf1 /dev/sd[a-f]"
2156.br
2157Assemble a pre-exist ddf array.
2158
2159.B " mdadm -I /dev/md/ddf1"
2160.br
2161Assemble all arrays contained in the ddf array, assigning names as
2162appropriate.
2163
7e23fc43 2164.B " mdadm \-\-create \-\-help"
2d465520 2165.br
2ae555c3 2166Provide help about the Create mode.
2d465520 2167
7e23fc43 2168.B " mdadm \-\-config \-\-help"
5787fa49
NB
2169.br
2170Provide help about the format of the config file.
2d465520 2171
7e23fc43 2172.B " mdadm \-\-help"
5787fa49
NB
2173.br
2174Provide general help.
cd29a5c8 2175
cd29a5c8
NB
2176
2177.SH FILES
2178
2179.SS /proc/mdstat
2180
2ae555c3
NB
2181If you're using the
2182.B /proc
cd29a5c8
NB
2183filesystem,
2184.B /proc/mdstat
2d465520 2185lists all active md devices with information about them.
51ac42e3 2186.I mdadm
2d465520 2187uses this to find arrays when
7e23fc43 2188.B \-\-scan
2d465520
NB
2189is given in Misc mode, and to monitor array reconstruction
2190on Monitor mode.
2191
cd29a5c8 2192
9a9dab36 2193.SS /etc/mdadm.conf
cd29a5c8 2194
11a3e71d
NB
2195The config file lists which devices may be scanned to see if
2196they contain MD super block, and gives identifying information
2197(e.g. UUID) about known MD arrays. See
2198.BR mdadm.conf (5)
2199for more details.
cd29a5c8 2200
8382f19b
NB
2201.SS /var/run/mdadm/map
2202When
7e23fc43 2203.B \-\-incremental
93e790af 2204mode is used, this file gets a list of arrays currently being created.
8382f19b
NB
2205If
2206.B /var/run/mdadm
2207does not exist as a directory, then
2208.B /var/run/mdadm.map
2209is used instead.
2210
48f7b27a
NB
2211.SH DEVICE NAMES
2212
48f7b27a 2213.I mdadm
8fd8d9c4
N
2214understand two sorts of names for array devices.
2215
2216The first is the so-called 'standard' format name, which matches the
2217names used by the kernel and which appear in
2218.IR /proc/mdstat .
2219
2220The second sort can be freely chosen, but must reside in
2221.IR /dev/md/ .
2222When giving a device name to
2223.I mdadm
2224to create or assemble an array, either full path name such as
2225.I /dev/md0
2226or
2227.I /dev/md/home
2228can be given, or just the suffix of the second sort of name, such as
2229.I home
2230can be given.
2231
2232When
2233.I mdadm
2234chooses device names during auto-assembly, it will normally add a
2235small sequence number to the end of the name to avoid conflicted
2236between multiple arrays that have the same name. If
2237.I mdadm
2238can reasonably determine that the array really is meant for this host,
2239either by a hostname in the metadata, or by the presence of the array
2240in /etc/mdadm.conf, then it will leave of the suffix if possible.
48f7b27a
NB
2241
2242The standard names for non-partitioned arrays (the only sort of md
8fd8d9c4 2243array available in 2.4 and earlier) are of the form
48f7b27a
NB
2244.IP
2245/dev/mdNN
48f7b27a
NB
2246.PP
2247where NN is a number.
2248The standard names for partitionable arrays (as available from 2.6
8fd8d9c4 2249onwards) are of the form
48f7b27a 2250.IP
48f7b27a
NB
2251/dev/md_dNN
2252.PP
2253Partition numbers should be indicated by added "pMM" to these, thus "/dev/md/d1p2".
8fd8d9c4
N
2254.PP
2255From kernel version, 2.6.28 the "non-partitioned array" can actually
2256be partitioned. So the "md_dNN" names are no longer needed, and
2257partitions such as "/dev/mdNNpXX" are possible.
52826846 2258
2d465520 2259.SH NOTE
51ac42e3 2260.I mdadm
2d465520 2261was previously known as
51ac42e3 2262.IR mdctl .
a9d69660 2263.P
51ac42e3 2264.I mdadm
a9d69660 2265is completely separate from the
51ac42e3 2266.I raidtools
a9d69660
NB
2267package, and does not use the
2268.I /etc/raidtab
2269configuration file at all.
2270
52826846 2271.SH SEE ALSO
75f74377 2272For further information on mdadm usage, MD and the various levels of
3cdfb6a7 2273RAID, see:
3cdfb6a7 2274.IP
11cd8b79 2275.B http://linux\-raid.osdl.org/
75f74377
DG
2276.PP
2277(based upon Jakob \(/Ostergaard's Software\-RAID.HOWTO)
e43d0cda
NB
2278.\".PP
2279.\"for new releases of the RAID driver check out:
2280.\"
2281.\".IP
2282.\".UR ftp://ftp.kernel.org/pub/linux/kernel/people/mingo/raid-patches
2283.\"ftp://ftp.kernel.org/pub/linux/kernel/people/mingo/raid-patches
2284.\".UE
2285.\".PP
2286.\"or
2287.\".IP
2288.\".UR http://www.cse.unsw.edu.au/~neilb/patches/linux-stable/
2289.\"http://www.cse.unsw.edu.au/~neilb/patches/linux-stable/
2290.\".UE
cd29a5c8 2291.PP
2ae555c3 2292The latest version of
a9d69660
NB
2293.I mdadm
2294should always be available from
cd29a5c8 2295.IP
11cd8b79
N
2296.B http://www.kernel.org/pub/linux/utils/raid/mdadm/
2297.PP
2298Related man pages:
cd29a5c8 2299.PP
a9d69660
NB
2300.IR mdadm.conf (5),
2301.IR md (4).
56eb10c0 2302.PP
52826846
NB
2303.IR raidtab (5),
2304.IR raid0run (8),
2305.IR raidstop (8),
a9d69660 2306.IR mkraid (8).