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