]> git.ipfire.org Git - thirdparty/mdadm.git/blame - mdadm.8
Add RAID10 and other stuff to md.4
[thirdparty/mdadm.git] / mdadm.8
CommitLineData
52826846 1.\" -*- nroff -*-
5e7519fa 2.TH MDADM 8 "" v2.0-devel-3
52826846 3.SH NAME
9a9dab36 4mdadm \- manage MD devices
cd29a5c8
NB
5.I aka
6Linux Software Raid.
7
52826846
NB
8.SH SYNOPSIS
9
e0d19036 10.BI mdadm " [mode] <raiddevice> [options] <component-devices>"
52826846
NB
11
12.SH DESCRIPTION
13RAID devices are virtual devices created from two or more
cd29a5c8
NB
14real block devices. This allows multiple devices (typically disk
15drives or partitions there-of) to be combined into a single device to
16hold (for example) a single filesystem.
2d465520 17Some RAID levels include redundancy and so can survive some degree of
cd29a5c8
NB
18device failure.
19
2d465520
NB
20Linux Software RAID devices are implemented through the md (Multiple
21Devices) device driver.
cd29a5c8
NB
22
23Currently, Linux supports
24.B LINEAR
25md devices,
26.B RAID0
27(striping),
28.B RAID1
29(mirroring),
d013a55e
NB
30.BR RAID4 ,
31.BR RAID5 ,
98c6faba 32.BR RAID6 ,
b5e64645 33.BR MULTIPATH ,
cd29a5c8 34and
b5e64645 35.BR FAULTY .
d013a55e
NB
36
37.B MULTIPATH is not a Software RAID mechanism, but does involve
38multiple devices. For
39.B MULTIPATH
40each device is a path to one common physical storage device.
41
b5e64645
NB
42.B FAULTY is also no true RAID, and it only involves one device. It
43provides a layer over a true device that can be used to inject faults.
52826846 44
9a9dab36 45.B mdadm
11a3e71d
NB
46is a program that can be used to create, manage, and monitor
47MD devices. As
cd29a5c8
NB
48such it provides a similar set of functionality to the
49.B raidtools
50packages.
51The key differences between
9a9dab36 52.B mdadm
cd29a5c8
NB
53and
54.B raidtools
55are:
56.IP \(bu 4
9a9dab36 57.B mdadm
cd29a5c8
NB
58is a single program and not a collection of programs.
59.IP \(bu 4
9a9dab36 60.B mdadm
cd29a5c8 61can perform (almost) all of its functions without having a
5787fa49 62configuration file and does not use one by default. Also
2d465520
NB
63.B mdadm
64helps with management of the configuration
cd29a5c8
NB
65file.
66.IP \(bu 4
9a9dab36 67.B mdadm
e0d19036 68can provide information about your arrays (through Query, Detail, and Examine)
cd29a5c8
NB
69that
70.B raidtools
71cannot.
5787fa49
NB
72.P
73.I mdadm
74does not use
75.IR /etc/raidtab ,
76the
77.B raidtools
78configuration file, at all. It has a different configuration file
79with a different format and an different purpose.
52826846
NB
80
81.SH MODES
dd0781e5 82mdadm has 7 major modes of operation:
cd29a5c8
NB
83.TP
84.B Assemble
85Assemble the parts of a previously created
52826846
NB
86array into an active array. Components can be explicitly given
87or can be searched for.
9a9dab36 88.B mdadm
cd29a5c8
NB
89checks that the components
90do form a bona fide array, and can, on request, fiddle superblock
91information so as to assemble a faulty array.
92
93.TP
94.B Build
570c0542 95Build an array without per-device superblocks.
cd29a5c8
NB
96
97.TP
98.B Create
99Create a new array with per-device superblocks.
100'''It can progress
101'''in several step create-add-add-run or it can all happen with one command.
102
103.TP
e0d19036
NB
104.B Manage
105This is for doing things to specific components of an array such as
106adding new spares and removing faulty devices.
cd29a5c8
NB
107
108.TP
e0d19036
NB
109.B Misc
110This mode allows operations on independent devices such as examine MD
111superblocks, erasing old superblocks and stopping active arrays.
cd29a5c8
NB
112
113.TP
114.B "Follow or Monitor"
5787fa49 115Monitor one or more md devices and act on any state changes. This is
98c6faba
NB
116only meaningful for raid1, 4, 5, 6 or multipath arrays as
117only these have interesting state. raid0 or linear never have
118missing, spare, or failed drives, so there is nothing to monitor.
5787fa49 119
dd0781e5
NB
120.TP
121.B "Grow"
122Grow (or shrink) an array, or otherwise reshape it in some way.
123Currently supported growth options including changing the active size
124of componenet devices in RAID level 1/4/5/6 and changing the number of
125active devices in RAID1.
cd29a5c8 126
52826846
NB
127.SH OPTIONS
128
129Available options are:
130
cd29a5c8
NB
131.TP
132.BR -A ", " --assemble
2d465520 133Assemble a pre-existing array.
52826846 134
cd29a5c8
NB
135.TP
136.BR -B ", " --build
137Build a legacy array without superblocks.
52826846 138
cd29a5c8
NB
139.TP
140.BR -C ", " --create
141Create a new array.
52826846 142
e0d19036
NB
143.TP
144.BR -Q ", " --query
145Examine a device to see
146(1) if it is an md device and (2) if it is a component of an md
147array.
148Information about what is discovered is presented.
149
cd29a5c8
NB
150.TP
151.BR -D ", " --detail
152Print detail of one or more md devices.
52826846 153
cd29a5c8
NB
154.TP
155.BR -E ", " --examine
156Print content of md superblock on device(s).
52826846 157
cd29a5c8
NB
158.TP
159.BR -F ", " --follow ", " --monitor
160Select
161.B Monitor
162mode.
52826846 163
dd0781e5
NB
164.TP
165.BR -G ", " --grow
166Change the size or shape of an active array.
167
e793c2e5
NB
168.TP
169.BR -X ", " --examine-bitmap
170Report information about a bitmap file.
171
cd29a5c8
NB
172.TP
173.BR -h ", " --help
56eedc1a
NB
174Display help message or, after above option, mode specific help
175message.
176
177.TP
178.B --help-options
179Display more detailed help about command line parsing and some commonly
180used options.
52826846 181
cd29a5c8
NB
182.TP
183.BR -V ", " --version
9a9dab36 184Print version information for mdadm.
52826846 185
cd29a5c8
NB
186.TP
187.BR -v ", " --verbose
22892d56
NB
188Be more verbose about what is happening. This can be used twice to be
189extra-verbose.
190This currently only affects
191.B --detail --scan
192and
193.BR "--examine --scan" .
52826846 194
dab6685f
NB
195.TP
196.BR -q ", " --quiet
197Avoid printing purely informative messages. With this,
198.B mdadm
199will be silent unless there is something really important to report.
200
cd29a5c8
NB
201.TP
202.BR -b ", " --brief
203Be less verbose. This is used with
204.B --detail
205and
206.BR --examine .
22892d56
NB
207Using
208.B --brief
209with
210.B --verbose
211gives an intermediate level of verbosity.
52826846 212
dfd4d8ee
NB
213.TP
214.BR -W ", " --write-mostly
215subsequent devices lists in a
216.BR --build ,
217.BR --create ,
218or
219.B --add
220command will be flagged as 'write-mostly'. This is valid for RAID1
221only and means that the 'md' driver will avoid reading from these
222devices if at all possible. This can be useful if mirroring over a
223slow link.
224
e793c2e5
NB
225.TP
226.BR -b ", " --bitmap=
227Give the name of a bitmap file to use with this array. Can be used
fe80f49b
NB
228with --create (file should not exist), --assemble (file should
229exist), of --grow (file should not exist).
230
231The file
232.B internal
233can be used to indicate that the bitmap should be stored in the array,
234near the superblock. There is a limited amount of space for such
235bitmaps, but it is often sufficient.
236
237The file
238.B none
239can be given when used with --grow to remove a bitmap.
e793c2e5
NB
240
241.TP
242.BR --bitmap-chunk=
243Set the Chunksize of the bitmap. Each bit corresponds to that many
244Kilobytes of storage. Default is 4.
245
dfd4d8ee
NB
246.TP
247.BR --write-behind=
248Specify that write-behind mode should be enabled (valid for RAID1
249only). If an argument is specified, it will set the maximum number
250of outstanding writes allowed. The default value is 256.
251A write-intent bitmap is required in order to use write-behind
252mode, and write-behind is only attempted on drives marked as
253.IR write-mostly .
254
e793c2e5 255
e0d19036
NB
256.TP
257.BR -f ", " --force
258Be more forceful about certain operations. See the various modes of
259the exact meaning of this option in different contexts.
260
261.TP
262.BR -c ", " --config=
263Specify the config file. Default is
264.BR /etc/mdadm.conf .
5787fa49
NB
265If the config file given is
266.B partitions
267then nothing will be read, but
268.I mdadm
269will act as though the config file contained exactly
270.B "DEVICE partitions"
271and will read
272.B /proc/partitions
273to find a list of devices to scan.
d013a55e
NB
274If the word
275.B none
276is given for the config file, then
277.I mdadm
278will act as though the config file were empty.
e0d19036
NB
279
280.TP
281.BR -s ", " --scan
282scan config file or
283.B /proc/mdstat
284for missing information.
285In general, this option gives
286.B mdadm
287permission to get any missing information, like component devices,
288array devices, array identities, and alert destination from the
289configuration file:
290.BR /etc/mdadm.conf .
291One exception is MISC mode when using
292.B --detail
293or
294.B --stop
295in which case
296.B --scan
297says to get a list of array devices from
298.BR /proc/mdstat .
299
570c0542
NB
300.TP
301.B -e ", " --metadata=
302Declare the style of superblock (raid metadata) to be used. The
303default is 0.90 for --create, and to guess for other operations.
304
305Options are:
306.RS
307.IP "0, 0.90, default"
308Use the original 0.90 format superblock. This format limits arrays to
30928 componenet devices and limits component devices of levels 1 and
310greater to 2 terabytes.
311.IP "1, 1.0, 1.1, 1.2"
312Use the new version-1 format superblock. This has few restrictions.
313The different subversion store the superblock at different locations
314on the device, either at the end (for 1.0), at the start (for 1.1) or
3154K from the start (for 1.2).
316.RE
317
cd29a5c8 318.SH For create or build:
52826846 319
cd29a5c8
NB
320.TP
321.BR -c ", " --chunk=
322Specify chunk size of kibibytes. The default is 64.
52826846 323
cd29a5c8
NB
324.TP
325.BR --rounding=
326Specify rounding factor for linear array (==chunk size)
52826846 327
cd29a5c8
NB
328.TP
329.BR -l ", " --level=
aa88f531
NB
330Set raid level. When used with
331.IR --create ,
98c6faba 332options are: linear, raid0, 0, stripe, raid1, 1, mirror, raid4, 4,
b5e64645 333raid5, 5, raid6, 6, multipath, mp, fautly. Obviously some of these are synonymous.
aa88f531
NB
334
335When used with
336.IR --build ,
337only linear, raid0, 0, stripe are valid.
52826846 338
cd29a5c8
NB
339.TP
340.BR -p ", " --parity=
341Set raid5 parity algorithm. Options are:
2d465520
NB
342left-asymmetric,
343left-symmetric,
344right-asymmetric,
345right-symmetric,
346la, ra, ls, rs. The default is left-symmetric.
52826846 347
b5e64645
NB
348This option is also used to set the failure mode for
349.IR faulty .
350The options are:
351write-transient,
352wt,
353read-transient,
354rt,
355write-presistent,
356wp,
357read-persistent,
358rp,
359write-all,
360read-fixable,
361rf,
362clear,
363flush,
364none.
365
366Each mode can be followed by a number which is used as a period
367between fault generation. Without a number, the fault is generated
368once on the first relevant request. With a number, the fault will be
369generated after that many request, and will continue to be generated
370every time the period elapses.
371
372Multiple failure modes can be current simultaneously by using the
373"--grow" option to set subsequent failure modes.
374
375"clear" or "none" will remove any pending or periodic failure modes,
376and "flush" will clear any persistant faults.
377
378To set the parity with "--grow", the level of the array ("faulty")
379must be specified before the fault mode is specified.
380
cd29a5c8
NB
381.TP
382.BR --layout=
383same as --parity
52826846 384
e793c2e5
NB
385.TP
386.BR -b ", " --bitmap=
387Specify a file to store a write-intent bitmap in. The file should not
388exist unless --force is also given. The same file should be provided
389when assembling the array.
390
391.TP
392.BR --bitmap-chunk=
393Specifty the chunksize for the bitmap.
394
cd29a5c8 395.TP
b83d95f3 396.BR -n ", " --raid-devices=
5787fa49
NB
397Specify the number of active devices in the array. This, plus the
398number of spare devices (see below) must equal the number of
399.I component-devices
d013a55e 400(including "\fBmissing\fP" devices)
dd0781e5
NB
401that are listed on the command line for
402.BR --create .
403Setting a value of 1 is probably
aa88f531
NB
404a mistake and so requires that
405.B --force
406be specified first. A value of 1 will then be allowed for linear,
407multipath, raid0 and raid1. It is never allowed for raid4 or raid5.
408.br
dd0781e5
NB
409This number can only be changed using
410.B --grow
411for RAID1 arrays, and only on kernels which provide necessary support.
cd29a5c8
NB
412
413.TP
b83d95f3 414.BR -x ", " --spare-devices=
5787fa49
NB
415Specify the number of spare (eXtra) devices in the initial array.
416Spares can also be added
417and removed later. The number of component devices listed
418on the command line must equal the number of raid devices plus the
419number of spare devices.
420
cd29a5c8
NB
421
422.TP
423.BR -z ", " --size=
98c6faba 424Amount (in Kibibytes) of space to use from each drive in RAID1/4/5/6.
cd29a5c8
NB
425This must be a multiple of the chunk size, and must leave about 128Kb
426of space at the end of the drive for the RAID superblock.
427If this is not specified
428(as it normally is not) the smallest drive (or partition) sets the
429size, though if there is a variance among the drives of greater than 1%, a warning is
430issued.
52826846 431
dd0781e5
NB
432This value can be set with
433.B --grow
434for RAID level 1/4/5/6. If the array was created with a size smaller
435than the currently active drives, the extra space can be accessed
436using
437.BR --grow .
779043ef
NB
438The size can be given as
439.B max
440which means to choose the largest size that fits all on all current drives.
dd0781e5
NB
441
442.TP
443.BR --assume-clean
444Tell
445.I mdadm
446that the array pre-existed and is known to be clean. This is only
447really useful for Building RAID1 array. Only use this if you really
448know what you are doing. This is currently only supported for --build.
449
947fd4dd
NB
450.TP
451.BR -N ", " --name=
452Set a
453.B name
454for the array. This is currently only effective when creating an
455array with a version-1 superblock. The name is a simple textual
456string that can be used to identify array components when assembling.
457
dd0781e5
NB
458.TP
459.BR -R ", " --run
460Insist that
461.I mdadm
462run the array, even if some of the components
463appear to be active in another array or filesystem. Normally
464.I mdadm
465will ask for confirmation before including such components in an
466array. This option causes that question to be suppressed.
467
468.TP
469.BR -f ", " --force
470Insist that
471.I mdadm
472accept the geometry and layout specified without question. Normally
473.I mdadm
474will not allow creation of an array with only one device, and will try
475to create a raid5 array with one missing drive (as this makes the
476initial resync work faster). With
477.BR --force ,
478.I mdadm
479will not try to be so clever.
480
481.TP
482.BR -a ", " "--auto{=no,yes,md,mdp,part,p}{NN}"
48f7b27a
NB
483Instruct mdadm to create the device file if needed, possibly allocating
484an unused minor number. "md" causes a non-partitionable array
dd0781e5 485to be used. "mdp", "part" or "p" causes a partitionable array (2.6 and
48f7b27a
NB
486later) to be used. "yes" requires the named md device to have a
487'standard' format, and the type and minor number will be determined
488from this. See DEVICE NAMES below.
489
490The argumentment can also come immediately after
dd0781e5
NB
491"-a". e.g. "-ap".
492
1337546d
NB
493If
494.I --scan
495is also given, then any
496.I auto=
497entries in the config file will over-ride the
498.I --auto
499instruction given on the command line.
500
dd0781e5
NB
501For partitionable arrays,
502.I mdadm
503will create the device file for the whole array and for the first 4
504partitions. A different number of partitions can be specified at the
505end of this option (e.g.
506.BR --auto=p7 ).
48f7b27a
NB
507If the device name ends with a digit, the partition names add a'p',
508and a number, e.g. "/dev/home1p3". If there is no
dd0781e5
NB
509trailing digit, then the partition names just have a number added,
510e.g. "/dev/scratch3".
511
48f7b27a
NB
512If the md device name is in a 'standard' format as described in DEVICE
513NAMES, then it will be created, if necessary, with the appropriate
514number based on that name. If the device name is not in one of these
515formats, then a unused minor number will be allocted. The minor
516number will be considered unused if there is no active array for that
517number, and there is no entry in /dev for that number and with a
518non-standard name.
519
52826846
NB
520.SH For assemble:
521
cd29a5c8
NB
522.TP
523.BR -u ", " --uuid=
524uuid of array to assemble. Devices which don't have this uuid are
525excluded
526
527.TP
528.BR -m ", " --super-minor=
529Minor number of device that array was created for. Devices which
530don't have this minor number are excluded. If you create an array as
2d465520 531/dev/md1, then all superblocks will contain the minor number 1, even if
cd29a5c8
NB
532the array is later assembled as /dev/md2.
533
d013a55e
NB
534Giving the literal word "dev" for
535.B --super-minor
536will cause
537.I mdadm
538to use the minor number of the md device that is being assembled.
539e.g. when assembling
540.BR /dev/md0 ,
541.M --super-minor=dev
542will look for super blocks with a minor number of 0.
543
947fd4dd
NB
544.TP
545.BR -N ", " --name=
546Specify the name of the array to assemble. This must be the name
547that was specified when creating the array.
548
cd29a5c8
NB
549.TP
550.BR -f ", " --force
52826846
NB
551Assemble the array even if some superblocks appear out-of-date
552
cd29a5c8
NB
553.TP
554.BR -R ", " --run
555Attempt to start the array even if fewer drives were given than are
556needed for a full array. Normally if not all drives are found and
557.B --scan
558is not used, then the array will be assembled but not started.
559With
560.B --run
561an attempt will be made to start it anyway.
52826846 562
dd0781e5
NB
563.TP
564.BR -a ", " "--auto{=no,yes,md,mdp,part}"
565See this option under Create and Build options.
566
e793c2e5
NB
567.TP
568.BR -b ", " --bitmap=
569Specify the bitmap file that was given when the array was created.
570
5787fa49
NB
571.TP
572.BR -U ", " --update=
573Update the superblock on each device while assembling the array. The
feb716e9
NB
574argument given to this flag can be one of
575.BR sparc2.2 ,
576.BR summaries ,
e5329c37 577.BR resync ,
586ed405 578.BR byteorder ,
5787fa49
NB
579or
580.BR super-minor .
581
582The
583.B sparc2.2
584option will adjust the superblock of an array what was created on a Sparc
585machine running a patched 2.2 Linux kernel. This kernel got the
586alignment of part of the superblock wrong. You can use the
587.B "--examine --sparc2.2"
588option to
589.I mdadm
590to see what effect this would have.
591
592The
593.B super-minor
594option will update the
595.B "prefered minor"
596field on each superblock to match the minor number of the array being
feb716e9 597assembled. This is not needed on 2.6 and later kernels as they make
5787fa49
NB
598this adjustment automatically.
599
e5329c37
NB
600The
601.B resync
602option will cause the array to be marked
603.I dirty
604meaning that any redundancy in the array (e.g. parity for raid5,
605copies for raid1) may be incorrect. This will cause the raid system
606to perform a "resync" pass to make sure that all redundant information
607is correct.
608
586ed405
NB
609The
610.B byteorder
611option allows arrays to be moved between machines with different
612byte-order.
613When assembling such an array for the first time after a move, giving
614.B "--update=byteorder"
615will cause
616.I mdadm
617to expect superblocks to have their byteorder reversed, and will
618correct that order before assembling the array. This is only valid
619with original (Verion 0.90) superblocks.
620
feb716e9
NB
621The
622.B summaries
623option will correct the summaries in the superblock. That is the
624counts of total, working, active, failed, and spare devices.
5787fa49 625
e0d19036 626.SH For Manage mode:
52826846 627
cd29a5c8
NB
628.TP
629.BR -a ", " --add
630'''add, or
631hotadd listed devices.
52826846 632
fe80f49b
NB
633.TP
634.BR --re-add
635Listed devices are assumed to have recently been part of the array,
636and they are re-added. This is only different from --add when a
637write-intent bitmap is present. It causes only those parts of the
638device that have changed since the device was removed from the array
639to be reconstructed.
640
641This flag is only needed with arrays that are built without a
642superblock (i.e. --build, not --create). For array with a superblock,
643.I mdadm
644checks if a superblock is present and automatically determines if a
645re-add is appropriate.
646
cd29a5c8
NB
647.TP
648.BR -r ", " --remove
2d465520 649remove listed devices. They must not be active. i.e. they should
cd29a5c8 650be failed or spare devices.
52826846 651
cd29a5c8
NB
652.TP
653.BR -f ", " --fail
654mark listed devices as faulty.
52826846 655
cd29a5c8
NB
656.TP
657.BR --set-faulty
658same as --fail.
52826846 659
5787fa49
NB
660.SH For Examine mode:
661
662.TP
663.B --sparc2.2
664In an array was created on a 2.2 Linux kernel patched with RAID
665support, the superblock will have been created incorrectly, or at
666least incompatibly with 2.4 and later kernels. Using the
667.B --sparc2.2
668flag with
669.B --examine
670will fix the superblock before displaying it. If this appears to do
671the right thing, then the array can be successfully assembled using
672.BR "--assemble --update=sparc2.2" .
673
e0d19036
NB
674.SH For Misc mode:
675
cd29a5c8
NB
676.TP
677.BR -R ", " --run
678start a partially built array.
52826846 679
cd29a5c8
NB
680.TP
681.BR -S ", " --stop
682deactivate array, releasing all resources.
52826846 683
cd29a5c8
NB
684.TP
685.BR -o ", " --readonly
686mark array as readonly.
52826846 687
cd29a5c8
NB
688.TP
689.BR -w ", " --readwrite
690mark array as readwrite.
52826846 691
e0d19036
NB
692.TP
693.B --zero-superblock
694If the device contains a valid md superblock, the block is
695over-written with zeros. With
696--force
697the block where the superblock would be is over-written even if it
698doesn't appear to be valid.
52826846 699
feb716e9
NB
700.TP
701.BR -t ", " --test
702When used with
703.BR --detail ,
704the exit status of
705.I mdadm
706is set to reflect the status of the device.
707
e0d19036
NB
708.SH For Monitor mode:
709.TP
710.BR -m ", " --mail
711Give a mail address to send alerts to.
712
713.TP
714.BR -p ", " --program ", " --alert
715Give a program to be run whenever an event is detected.
716
717.TP
718.BR -d ", " --delay
719Give a delay in seconds.
720.B mdadm
721polls the md arrays and then waits this many seconds before polling
722again. The default is 60 seconds.
723
d013a55e
NB
724.TP
725.BR -f ", " --daemonise
726Tell
727.B mdadm
728to run as a background daemon if it decides to monitor anything. This
729causes it to fork and run in the child, and to disconnect form the
730terminal. The process id of the child is written to stdout.
731This is useful with
732.B --scan
733which will only continue monitoring if a mail address or alert program
734is found in the config file.
735
b5e64645
NB
736.TP
737.BR -i ", " --pid-file
738When
739.B mdadm
740is running in daemon mode, write the pid of the daemon process to
741the specified file, instead of printing it on standard output.
742
aa88f531
NB
743.TP
744.BR -1 ", " --oneshot
745Check arrays only once. This will generate
746.B NewArray
747events and more significantly
748.B DegradedArray
749events. Running
750.in +5
751.B " mdadm --monitor --scan -1"
752.in -5
753from a cron script will ensure regular notification of any degraded arrays.
754
98c6faba
NB
755.TP
756.BR -t ", " --test
757Generate a
758.B TestMessage
759alert for every array found at startup. This alert gets mailed and
760passed to the alert program. This can be used for testing that alert
761message to get through successfully.
762
e0d19036 763.SH ASSEMBLE MODE
52826846 764
cd29a5c8
NB
765.HP 12
766Usage:
9a9dab36 767.B mdadm --assemble
5787fa49
NB
768.I md-device options-and-component-devices...
769.HP 12
770Usage:
771.B mdadm --assemble --scan
772.I md-devices-and-options...
cd29a5c8
NB
773.HP 12
774Usage:
9a9dab36 775.B mdadm --assemble --scan
cd29a5c8 776.I options...
52826846 777
cd29a5c8 778.PP
52826846 779This usage assembles one or more raid arrays from pre-existing components.
9a9dab36 780For each array, mdadm needs to know the md device, the identity of the
e0d19036 781array, and a number of component-devices. These can be found in a number of ways.
52826846 782
5787fa49
NB
783In the first usage example (without the
784.BR --scan )
785the first device given is the md device.
786In the second usage example, all devices listed are treated as md
787devices and assembly is attempted.
788In the third (where no devices are listed) all md devices that are
789listed in the configuration file are assembled.
52826846 790
d013a55e
NB
791If precisely one device is listed, but
792.B --scan
dd0781e5 793is not given, then
d013a55e
NB
794.I mdadm
795acts as though
796.B --scan
797was given and identify information is extracted from the configuration file.
798
cd29a5c8 799The identity can be given with the
52826846 800.B --uuid
cd29a5c8
NB
801option, with the
802.B --super-minor
5787fa49 803option, can be found in the config file, or will be taken from the
e0d19036 804super block on the first component-device listed on the command line.
52826846
NB
805
806Devices can be given on the
807.B --assemble
5787fa49
NB
808command line or in the config file. Only devices which have an md
809superblock which contains the right identity will be considered for
810any array.
52826846
NB
811
812The config file is only used if explicitly named with
813.B --config
d013a55e 814or requested with (a possibly implicit)
52826846
NB
815.B --scan.
816In the later case,
9a9dab36 817.B /etc/mdadm.conf
52826846
NB
818is used.
819
820If
821.B --scan
cd29a5c8
NB
822is not given, then the config file will only be used to find the
823identity of md arrays.
52826846 824
2d465520 825Normally the array will be started after it is assembled. However if
cd29a5c8 826.B --scan
2d465520 827is not given and insufficient drives were listed to start a complete
cd29a5c8
NB
828(non-degraded) array, then the array is not started (to guard against
829usage errors). To insist that the array be started in this case (as
98c6faba 830may work for RAID1, 4, 5 or 6), give the
cd29a5c8
NB
831.B --run
832flag.
52826846 833
dd0781e5
NB
834If an
835.B auto
836option is given, either on the command line (--auto) or in the
837configuration file (e.g. auto=part), then
838.I mdadm
839will create the md device if necessary or will re-create it if it
840doesn't look usable as it is.
841
842This can be useful for handling partitioned devices (which don't have
843a stable device number - it can change after a reboot) and when using
844"udev" to manage your
845.B /dev
846tree (udev cannot handle md devices because of the unusual device
847initialisation conventions).
848
849If the option to "auto" is "mdp" or "part" or (on the command line
850only) "p", then mdadm will create a partitionable array, using the
851first free one that is not inuse, and does not already have an entry
852in /dev (apart from numeric /dev/md* entries).
853
854If the option to "auto" is "yes" or "md" or (on the command line)
855nothing, then mdadm will create a traditional, non-partitionable md
856array.
857
858It is expected that the "auto" functionality will be used to create
859device entries with meaningful names such as "/dev/md/home" or
860"/dev/md/root", rather than names based on the numerical array number.
861
862When using this option to create a partitionable array, the device
863files for the first 4 partitions are also created. If a different
864number is required it can be simply appended to the auto option.
865e.g. "auto=part8". Partition names are created by appending a digit
866string to the device name, with an intervening "_p" if the device name
867ends with a digit.
868
869The
870.B --auto
871option is also available in Build and Create modes. As those modes do
872not use a config file, the "auto=" config option does not apply to
873these modes.
52826846 874
cd29a5c8 875.SH BUILD MODE
52826846 876
cd29a5c8
NB
877.HP 12
878Usage:
9a9dab36 879.B mdadm --build
cd29a5c8
NB
880.I device
881.BI --chunk= X
882.BI --level= Y
b83d95f3 883.BI --raid-devices= Z
cd29a5c8
NB
884.I devices
885
886.PP
52826846 887This usage is similar to
cd29a5c8 888.BR --create .
52826846 889The difference is that it creates a legacy array without a superblock. With
cd29a5c8 890these arrays there is no difference between initially creating the array and
52826846
NB
891subsequently assembling the array, except that hopefully there is useful
892data there in the second case.
893
cd29a5c8
NB
894The level may only be 0, raid0, or linear. All devices must be listed
895and the array will be started once complete.
896
897.SH CREATE MODE
898
899.HP 12
900Usage:
9a9dab36 901.B mdadm --create
cd29a5c8
NB
902.I device
903.BI --chunk= X
904.BI --level= Y
905.br
b83d95f3 906.BI --raid-devices= Z
cd29a5c8
NB
907.I devices
908
909.PP
910This usage will initialise a new md array, associate some devices with
911it, and activate the array.
912
dd0781e5
NB
913This the
914.B --auto
915option is given (as described in more detail in the section on
916Assemble mode), then the md device will be created with a suitable
917device number if necessary.
918
cd29a5c8 919As devices are added, they are checked to see if they contain raid
2d465520 920superblocks or filesystems. They are also checked to see if the variance in
cd29a5c8
NB
921device size exceeds 1%.
922
923If any discrepancy is found, the array will not automatically be run, though
924the presence of a
925.B --run
926can override this caution.
927
2d465520 928To create a "degraded" array in which some devices are missing, simply
d013a55e 929give the word "\fBmissing\fP"
2d465520
NB
930in place of a device name. This will cause
931.B mdadm
932to leave the corresponding slot in the array empty.
933For a RAID4 or RAID5 array at most one slot can be
98c6faba 934"\fBmissing\fP"; for a RAID6 array at most two slots.
2d465520
NB
935For a RAID1 array, only one real device needs to be given. All of the
936others can be
d013a55e 937"\fBmissing\fP".
2d465520 938
feb716e9
NB
939When creating a RAID5 array,
940.B mdadm
941will automatically create a degraded array with an extra spare drive.
942This is because building the spare into a degraded array is in general faster than resyncing
943the parity on a non-degraded, but not clean, array. This feature can
944be over-ridden with the
b5e64645 945.I --force
feb716e9
NB
946option.
947
cd29a5c8
NB
948'''If the
949'''.B --size
e0d19036 950'''option is given, it is not necessary to list any component-devices in this command.
cd29a5c8
NB
951'''They can be added later, before a
952'''.B --run.
953'''If no
954'''.B --size
955'''is given, the apparent size of the smallest drive given is used.
956
957The General Management options that are valid with --create are:
958.TP
959.B --run
dd0781e5 960insist on running the array even if some devices look like they might
cd29a5c8
NB
961be in use.
962
963.TP
964.B --readonly
965start the array readonly - not supported yet.
52826846 966
e0d19036 967.SH MANAGE MODE
cd29a5c8
NB
968.HP 12
969Usage:
e0d19036
NB
970.B mdadm
971.I device
972.I options... devices...
cd29a5c8
NB
973.PP
974
e0d19036
NB
975This usage will allow individual devices in an array to be failed,
976removed or added. It is possible to perform multiple operations with
977on command. For example:
978.br
5787fa49 979.B " mdadm /dev/md0 -f /dev/hda1 -r /dev/hda1 -a /dev/hda1"
e0d19036
NB
980.br
981will firstly mark
982.B /dev/hda1
983as faulty in
984.B /dev/md0
985and will then remove it from the array and finally add it back
2d465520 986in as a spare. However only one md array can be affected by a single
e0d19036
NB
987command.
988
989.SH MISC MODE
990.HP 12
991Usage:
9a9dab36 992.B mdadm
e0d19036
NB
993.I options ...
994.I devices ...
995.PP
cd29a5c8 996
b5e64645 997MISC mode includes a number of distinct operations that
e0d19036
NB
998operate on distinct devices. The operations are:
999.TP
1000--query
1001The device is examined to see if it is
1002(1) an active md array, or
1003(2) a component of an md array.
1004The information discovered is reported.
1005
1006.TP
1007--detail
2d465520
NB
1008The device should be an active md device.
1009.B mdadm
1010will display a detailed description of the array.
cd29a5c8 1011.B --brief
2d465520
NB
1012or
1013.B --scan
1014will cause the output to be less detailed and the format to be
e0d19036 1015suitable for inclusion in
9a9dab36 1016.BR /etc/mdadm.conf .
feb716e9
NB
1017The exit status of
1018.I mdadm
1019will normally be 0 unless
1020.I mdadm
1021failed to get useful information about the device(s). However if the
1022.B --test
1023option is given, then the exit status will be:
1024.RS
1025.TP
10260
1027The array is functioning normally.
1028.TP
10291
1030The array has at least one failed device.
1031.TP
10322
1033The array has multiple failed devices and hence is unusable (raid4 or
1034raid5).
1035.TP
10364
1037There was an error while trying to get information about the device.
1038.RE
cd29a5c8 1039
e0d19036
NB
1040.TP
1041--examine
2d465520
NB
1042The device should be a component of an md array.
1043.B mdadm
1044will read the md superblock of the device and display the contents.
e0d19036
NB
1045If
1046.B --brief
1047is given, or
1048.B --scan
1049then multiple devices that are components of the one array
1050are grouped together and reported in a single entry suitable
1051for inclusion in
1052.BR /etc/mdadm.conf .
1053
2d465520 1054Having
e0d19036
NB
1055.B --scan
1056without listing any devices will cause all devices listed in the
1057config file to be examined.
1058
1059.TP
1060--stop
98c6faba
NB
1061The devices should be active md arrays which will be deactivated, as
1062long as they are not currently in use.
e0d19036
NB
1063
1064.TP
1065--run
1066This will fully activate a partially assembled md array.
1067
1068.TP
1069--readonly
1070This will mark an active array as read-only, providing that it is
1071not currently being used.
1072
1073.TP
1074--readwrite
1075This will change a
1076.B readonly
1077array back to being read/write.
1078
2d465520
NB
1079.TP
1080--scan
1081For all operations except
1082.BR --examine ,
1083.B --scan
1084will cause the operation to be applied to all arrays listed in
1085.BR /proc/mdstat .
1086For
1087.BR --examine,
1088.B --scan
1089causes all devices listed in the config file to be examined.
1090
1091
e0d19036
NB
1092.SH MONITOR MODE
1093
cd29a5c8
NB
1094.HP 12
1095Usage:
e0d19036
NB
1096.B mdadm --monitor
1097.I options... devices...
1098
cd29a5c8 1099.PP
e0d19036
NB
1100This usage causes
1101.B mdadm
1102to periodically poll a number of md arrays and to report on any events
1103noticed.
1104.B mdadm
1105will never exit once it decides that there are arrays to be checked,
1106so it should normally be run in the background.
1107
2d465520
NB
1108As well as reporting events,
1109.B mdadm
1110may move a spare drive from one array to another if they are in the
1111same
1112.B spare-group
1113and if the destination array has a failed drive but not spares.
1114
e0d19036
NB
1115If any devices are listed on the command line,
1116.B mdadm
1117will only monitor those devices. Otherwise all arrays listed in the
1118configuration file will be monitored. Further, if
1119.B --scan
1120is given, then any other md devices that appear in
1121.B /proc/mdstat
1122will also be monitored.
1123
1124The result of monitoring the arrays is the generation of events.
bd526cee 1125These events are passed to a separate program (if specified) and may
2d465520 1126be mailed to a given E-mail address.
e0d19036 1127
bd526cee
NB
1128When passing event to program, the program is run once for each event
1129and is given 2 or 3 command-line arguements. The first is the
1130name of the event (see below). The second is the name of the
1131md device which is affected, and the third is the name of a related
1132device if relevant, such as a component device that has failed.
cd29a5c8
NB
1133
1134If
1135.B --scan
e0d19036
NB
1136is given, then a program or an E-mail address must be specified on the
1137command line or in the config file. If neither are available, then
1138.B mdadm
1139will not monitor anything.
1140Without
cd29a5c8 1141.B --scan
e0d19036 1142.B mdadm
2d465520 1143will continue monitoring as long as something was found to monitor. If
e0d19036
NB
1144no program or email is given, then each event is reported to
1145.BR stdout .
cd29a5c8 1146
e0d19036
NB
1147The different events are:
1148
1149.RS 4
1150.TP
1151.B DeviceDisappeared
2d465520 1152An md array which previously was configured appears to no longer be
e0d19036
NB
1153configured.
1154
b8f72a62
NB
1155If
1156.I mdadm
1157was told to monitor an array which is RAID0 or Linear, then it will
1158report
1159.B DeviceDisappeared
1160with the extra information
1161.BR Wrong-Level .
1162This is because RAID0 and Linear do not support the device-failed,
1163hot-spare and resync operations which are monitored.
1164
e0d19036
NB
1165.TP
1166.B RebuildStarted
1167An md array started reconstruction.
1168
1169.TP
1170.BI Rebuild NN
1171Where
1172.I NN
1173is 20, 40, 60, or 80, this indicates that rebuild has passed that many
1174percentage of the total.
1175
98c6faba
NB
1176.TP
1177.B RebuildFinished
1178An md array that was rebuilding, isn't any more, either because it
1179finished normally or was aborted.
1180
e0d19036
NB
1181.TP
1182.B Fail
1183An active component device of an array has been marked as faulty.
1184
1185.TP
1186.B FailSpare
1187A spare component device which was being rebuilt to replace a faulty
1188device has failed.
1189
1190.TP
1191.B SpareActive
1192A spare component device which was being rebuilt to replace a faulty
1193device as been successfully rebuild and has been made active.
1194
1195.TP
1196.B NewArray
1197A new md array has been detected in the
1198.B /proc/mdstat
1199file.
1200
aa88f531
NB
1201.TP
1202.B DegradedArray
1203A newly noticed array appears to be degraded. This message is not
1204generated when
1205.I mdadm
1206notices a drive failure which causes degradation, but only when
1207.I mdadm
1208notices that an array is degraded when it first sees the array.
1209
e0d19036
NB
1210.TP
1211.B MoveSpare
1212A spare drive has been moved from one array in a
1213.B spare-group
1214to another to allow a failed drive to be replaced.
1215
b8f72a62
NB
1216.TP
1217.B SparesMissing
1218If
1219.I mdadm
1220has been told, via the config file, that an array should have a certain
1221number of spare devices, and
1222.I mdadm
1223detects that it has fewer that this number when it first sees the
1224array, it will report a
1225.B SparesMissing
1226message.
1227
98c6faba
NB
1228.TP
1229.B TestMessage
1230An array was found at startup, and the
1231.B --test
1232flag was given.
e0d19036
NB
1233.RE
1234
1235Only
98c6faba
NB
1236.B Fail ,
1237.B FailSpare ,
1238.B DegradedArray ,
e0d19036 1239and
98c6faba 1240.B TestMessage
e0d19036
NB
1241cause Email to be sent. All events cause the program to be run.
1242The program is run with two or three arguments, they being the event
1243name, the array device and possibly a second device.
1244
1245Each event has an associated array device (e.g.
1246.BR /dev/md1 )
1247and possibly a second device. For
1248.BR Fail ,
1249.BR FailSpare ,
1250and
1251.B SpareActive
1252the second device is the relevant component device.
1253For
1254.B MoveSpare
1255the second device is the array that the spare was moved from.
1256
1257For
1258.B mdadm
1259to move spares from one array to another, the different arrays need to
1260be labelled with the same
1261.B spare-group
1262in the configuration file. The
1263.B spare-group
1264name can be any string. It is only necessary that different spare
2d465520 1265groups use different names.
e0d19036
NB
1266
1267When
9a9dab36 1268.B mdadm
e0d19036
NB
1269detects that an array which is in a spare group has fewer active
1270devices than necessary for the complete array, and has no spare
1271devices, it will look for another array in the same spare group that
1272has a full complement of working drive and a spare. It will then
1273attempt to remove the spare from the second drive and add it to the
1274first.
1275If the removal succeeds but the adding fails, then it is added back to
1276the original array.
1277
dd0781e5
NB
1278.SH GROW MODE
1279The GROW mode is used for changing the size or shape of an active
1280array.
1281For this to work, the kernel must support the necessary change.
1282Various types of growth may be added during 2.6 development, possibly
1283including restructuring a raid5 array to have more active devices.
1284
dfd4d8ee
NB
1285Currently the only support available is to
1286.IP \(bu 4
1287change the "size" attribute
1288for RAID1, RAID5 and RAID6.
1289.IP \(bu 4
1290change the "raid-disks" attribute of RAID1.
1291.IP \(bu 4
1292add a write-intent bitmap to a RAID1 array.
1293.PP
dd0781e5 1294
fe80f49b 1295Normally when an array is built the "size" it taken from the smallest
dd0781e5
NB
1296of the drives. If all the small drives in an arrays are, one at a
1297time, removed and replaced with larger drives, then you could have an
1298array of large drives with only a small amount used. In this
1299situation, changing the "size" with "GROW" mode will allow the extra
1300space to start being used. If the size is increased in this way, a
1301"resync" process will start to make sure the new parts of the array
1302are synchronised.
1303
1304Note that when an array changes size, any filesystem that may be
1305stored in the array will not automatically grow to use the space. The
1306filesystem will need to be explicitly told to use the extra space.
1307
1308A RAID1 array can work with any number of devices from 1 upwards
1309(though 1 is not very useful). There may be times which you want to
1310increase or decrease the number of active devices. Note that this is
1311different to hot-add or hot-remove which changes the number of
1312inactive devices.
1313
1314When reducing the number of devices in a RAID1 array, the slots which
1315are to be removed from the array must already be vacant. That is, the
1316devices that which were in those slots must be failed and removed.
1317
1318When the number of devices is increased, any hot spares that are
1319present may be activated immediately.
1320
fe80f49b
NB
1321A write-intent bitmap can be added to, or remove from, an active RAID1
1322array. Either internal bitmap, of bitmaps stored in a separate file
1323can be added. Note that if you add a bitmap stored in a file which is
1324in a filesystem that is on the raid array being affected, the system
1325will deadlock. The bitmap must be on a separate filesystem.
1326
2d465520
NB
1327.SH EXAMPLES
1328
5787fa49 1329.B " mdadm --query /dev/name-of-device"
2d465520 1330.br
5787fa49
NB
1331This will find out if a given device is a raid array, or is part of
1332one, and will provide brief information about the device.
2d465520 1333
5787fa49 1334.B " mdadm --assemble --scan"
2d465520 1335.br
5787fa49
NB
1336This will assemble and start all arrays listed in the standard confile
1337file. This command will typically go in a system startup file.
2d465520 1338
2d465520 1339.B " mdadm --stop --scan"
5787fa49
NB
1340.br
1341This will shut down all array that can be shut down (i.e. are not
19f8b8fc 1342currently in use). This will typically go in a system shutdown script.
2d465520 1343
5787fa49 1344.B " mdadm --follow --scan --delay=120"
2d465520 1345.br
5787fa49
NB
1346If (and only if) there is an Email address or program given in the
1347standard config file, then
1348monitor the status of all arrays listed in that file by
1349polling them ever 2 minutes.
2d465520 1350
5787fa49 1351.B " mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/hd[ac]1"
2d465520 1352.br
5787fa49 1353Create /dev/md0 as a RAID1 array consisting of /dev/hda1 and /dev/hdc1.
2d465520 1354
2d465520
NB
1355.br
1356.B " echo 'DEVICE /dev/hd*[0-9] /dev/sd*[0-9]' > mdadm.conf"
1357.br
1358.B " mdadm --detail --scan >> mdadm.conf"
1359.br
5787fa49
NB
1360This will create a prototype config file that describes currently
1361active arrays that are known to be made from partitions of IDE or SCSI drives.
2d465520
NB
1362This file should be reviewed before being used as it may
1363contain unwanted detail.
1364
2d465520
NB
1365.B " echo 'DEVICE /dev/hd[a-z] /dev/sd*[a-z]' > mdadm.conf"
1366.br
5787fa49
NB
1367.B " mdadm --examine --scan --config=mdadm.conf >> mdadm.conf"
1368.ber
1369This will find what arrays could be assembled from existign IDE and
1370SCSI whole drives (not partitions) and store the information is the
1371format of a config file.
2d465520
NB
1372This file is very likely to contain unwanted detail, particularly
1373the
1374.B devices=
5787fa49
NB
1375entries. It should be reviewed and edited before being used as an
1376actual config file.
2d465520 1377
5787fa49 1378.B " mdadm --examine --brief --scan --config=partitions"
2d465520 1379.br
5787fa49
NB
1380.B " mdadm -Ebsc partitions"
1381.br
1382Create a list of devices by reading
1383.BR /proc/partitions ,
1384scan these for RAID superblocks, and printout a brief listing of all
1385that was found.
2d465520 1386
5787fa49 1387.B " mdadm -Ac partitions -m 0 /dev/md0"
2d465520 1388.br
5787fa49
NB
1389Scan all partitions and devices listed in
1390.BR /proc/partitions
1391and assemble
1392.B /dev/md0
1393out of all such devices with a RAID superblock with a minor number of 0.
2d465520 1394
d013a55e
NB
1395.B " mdadm --monitor --scan --daemonise > /var/run/mdadm"
1396.br
1397If config file contains a mail address or alert program, run mdadm in
1398the background in monitor mode monitoring all md devices. Also write
1399pid of mdadm daemon to
1400.BR /var/run/mdadm .
1401
5787fa49 1402.B " mdadm --create --help"
2d465520 1403.br
5787fa49 1404Providew help about the Create mode.
2d465520 1405
5787fa49
NB
1406.B " mdadm --config --help"
1407.br
1408Provide help about the format of the config file.
2d465520 1409
5787fa49
NB
1410.B " mdadm --help"
1411.br
1412Provide general help.
cd29a5c8 1413
cd29a5c8
NB
1414
1415.SH FILES
1416
1417.SS /proc/mdstat
1418
1419If you're using the
1420.B /proc
1421filesystem,
1422.B /proc/mdstat
2d465520
NB
1423lists all active md devices with information about them.
1424.B mdadm
1425uses this to find arrays when
1426.B --scan
1427is given in Misc mode, and to monitor array reconstruction
1428on Monitor mode.
1429
cd29a5c8 1430
9a9dab36 1431.SS /etc/mdadm.conf
cd29a5c8 1432
11a3e71d
NB
1433The config file lists which devices may be scanned to see if
1434they contain MD super block, and gives identifying information
1435(e.g. UUID) about known MD arrays. See
1436.BR mdadm.conf (5)
1437for more details.
cd29a5c8 1438
48f7b27a
NB
1439.SH DEVICE NAMES
1440
1441While entries in the /dev directory can have any format you like,
1442.I mdadm
1443has an understanding of 'standard' formats which it uses to guide its
1444behaviour when creating device files via the
1445.I --auto
1446option.
1447
1448The standard names for non-partitioned arrays (the only sort of md
1449array available in 2.4 and earlier) either of
1450.IP
1451/dev/mdNN
1452.br
1453/dev/md/NN
1454.PP
1455where NN is a number.
1456The standard names for partitionable arrays (as available from 2.6
1457onwards) is one of
1458.IP
1459/dev/md/dNN
1460.br
1461/dev/md_dNN
1462.PP
1463Partition numbers should be indicated by added "pMM" to these, thus "/dev/md/d1p2".
52826846 1464
2d465520
NB
1465.SH NOTE
1466.B mdadm
1467was previously known as
1468.BR mdctl .
1469
52826846 1470.SH SEE ALSO
cd29a5c8
NB
1471For information on the various levels of
1472RAID, check out:
1473
1474.IP
1475.UR http://ostenfeld.dk/~jakob/Software-RAID.HOWTO/
1476http://ostenfeld.dk/~jakob/Software-RAID.HOWTO/
1477.UE
1478.PP
1479for new releases of the RAID driver check out:
1480
1481.IP
1482.UR ftp://ftp.kernel.org/pub/linux/kernel/people/mingo/raid-patches
1483ftp://ftp.kernel.org/pub/linux/kernel/people/mingo/raid-patches
1484.UE
1485.PP
1486or
1487.IP
1488.UR http://www.cse.unsw.edu.au/~neilb/patches/linux-stable/
1489http://www.cse.unsw.edu.au/~neilb/patches/linux-stable/
1490.URk
1491.PP
56eb10c0
NB
1492.BR mdadm.conf (5),
1493.BR md (4).
1494.PP
52826846
NB
1495.IR raidtab (5),
1496.IR raid0run (8),
1497.IR raidstop (8),
1498.IR mkraid (8)