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