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