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