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