]> git.ipfire.org Git - thirdparty/mdadm.git/blame_incremental - mdadm.8
mdadm-1.0.9
[thirdparty/mdadm.git] / mdadm.8
... / ...
CommitLineData
1.\" -*- nroff -*-
2.TH MDADM 8
3.SH NAME
4mdadm \- manage MD devices
5.I aka
6Linux Software Raid.
7
8.SH SYNOPSIS
9
10.BI mdadm " [mode] <raiddevice> [options] <component-devices>"
11
12.SH DESCRIPTION
13RAID devices are virtual devices created from two or more
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.
17Some RAID levels include redundancy and so can survive some degree of
18device failure.
19
20Linux Software RAID devices are implemented through the md (Multiple
21Devices) device driver.
22
23Currently, Linux supports
24.B LINEAR
25md devices,
26.B RAID0
27(striping),
28.B RAID1
29(mirroring),
30.B RAID4
31and
32.B RAID5.
33
34Recent kernels (2002) also support a mode known as
35.BR MULTIPATH .
36.B mdadm
37only provides limited support for MULTIPATH as yet.
38
39.B mdadm
40is a program that can be used to create, manage, and monitor
41MD devices. As
42such it provides a similar set of functionality to the
43.B raidtools
44packages.
45The key differences between
46.B mdadm
47and
48.B raidtools
49are:
50.IP \(bu 4
51.B mdadm
52is a single program and not a collection of programs.
53.IP \(bu 4
54.B mdadm
55can perform (almost) all of its functions without having a
56configuration file and does not use one by default. Also
57.B mdadm
58helps with management of the configuration
59file.
60.IP \(bu 4
61.B mdadm
62can provide information about your arrays (through Query, Detail, and Examine)
63that
64.B raidtools
65cannot.
66.P
67.I mdadm
68does not use
69.IR /etc/raidtab ,
70the
71.B raidtools
72configuration file, at all. It has a different configuration file
73with a different format and an different purpose.
74
75.SH MODES
76mdadm has 6 major modes of operation:
77.TP
78.B Assemble
79Assemble the parts of a previously created
80array into an active array. Components can be explicitly given
81or can be searched for.
82.B mdadm
83checks that the components
84do form a bona fide array, and can, on request, fiddle superblock
85information so as to assemble a faulty array.
86
87.TP
88.B Build
89Build a legacy array without per-device superblocks.
90
91.TP
92.B Create
93Create a new array with per-device superblocks.
94'''It can progress
95'''in several step create-add-add-run or it can all happen with one command.
96
97.TP
98.B Manage
99This is for doing things to specific components of an array such as
100adding new spares and removing faulty devices.
101
102.TP
103.B Misc
104This mode allows operations on independent devices such as examine MD
105superblocks, erasing old superblocks and stopping active arrays.
106
107.TP
108.B "Follow or Monitor"
109Monitor one or more md devices and act on any state changes. This is
110only meaningful for raid1, raid5 or multipath arrays as only these have
111interesting state. raid0 or linear never have missing, spare, or
112failed drives, so there is nothing to monitor.
113
114
115.SH OPTIONS
116
117Available options are:
118
119.TP
120.BR -A ", " --assemble
121Assemble a pre-existing array.
122
123.TP
124.BR -B ", " --build
125Build a legacy array without superblocks.
126
127.TP
128.BR -C ", " --create
129Create a new array.
130
131.TP
132.BR -Q ", " --query
133Examine a device to see
134(1) if it is an md device and (2) if it is a component of an md
135array.
136Information about what is discovered is presented.
137
138.TP
139.BR -D ", " --detail
140Print detail of one or more md devices.
141
142.TP
143.BR -E ", " --examine
144Print content of md superblock on device(s).
145
146.TP
147.BR -F ", " --follow ", " --monitor
148Select
149.B Monitor
150mode.
151
152.TP
153.BR -h ", " --help
154Display help message or, after above option, mode specific help message.
155
156.TP
157.BR -V ", " --version
158Print version information for mdadm.
159
160.TP
161.BR -v ", " --verbose
162Be more verbose about what is happening.
163
164.TP
165.BR -b ", " --brief
166Be less verbose. This is used with
167.B --detail
168and
169.BR --examine .
170
171.TP
172.BR -f ", " --force
173Be more forceful about certain operations. See the various modes of
174the exact meaning of this option in different contexts.
175
176.TP
177.BR -c ", " --config=
178Specify the config file. Default is
179.BR /etc/mdadm.conf .
180If the config file given is
181.B partitions
182then nothing will be read, but
183.I mdadm
184will act as though the config file contained exactly
185.B "DEVICE partitions"
186and will read
187.B /proc/partitions
188to find a list of devices to scan.
189
190.TP
191.BR -s ", " --scan
192scan config file or
193.B /proc/mdstat
194for missing information.
195In general, this option gives
196.B mdadm
197permission to get any missing information, like component devices,
198array devices, array identities, and alert destination from the
199configuration file:
200.BR /etc/mdadm.conf .
201One exception is MISC mode when using
202.B --detail
203or
204.B --stop
205in which case
206.B --scan
207says to get a list of array devices from
208.BR /proc/mdstat .
209
210.SH For create or build:
211
212.TP
213.BR -c ", " --chunk=
214Specify chunk size of kibibytes. The default is 64.
215
216.TP
217.BR --rounding=
218Specify rounding factor for linear array (==chunk size)
219
220.TP
221.BR -l ", " --level=
222Set raid level. Options are: linear, raid0, 0, stripe, raid1, 1, mirror, raid5, 4,
223raid5, 5, multipath, mp. Obviously some of these are synonymous.
224Only the first 4 are valid when Building.
225
226.TP
227.BR -p ", " --parity=
228Set raid5 parity algorithm. Options are:
229left-asymmetric,
230left-symmetric,
231right-asymmetric,
232right-symmetric,
233la, ra, ls, rs. The default is left-symmetric.
234
235.TP
236.BR --layout=
237same as --parity
238
239.TP
240.BR -n ", " --raid-devices=
241Specify the number of active devices in the array. This, plus the
242number of spare devices (see below) must equal the number of
243.I component-devices
244(including
245.B missing
246devices) that are listed on the command line.
247
248.TP
249.BR -x ", " --spare-devices=
250Specify the number of spare (eXtra) devices in the initial array.
251Spares can also be added
252and removed later. The number of component devices listed
253on the command line must equal the number of raid devices plus the
254number of spare devices.
255
256
257.TP
258.BR -z ", " --size=
259Amount (in Kibibytes) of space to use from each drive in RAID1/4/5.
260This must be a multiple of the chunk size, and must leave about 128Kb
261of space at the end of the drive for the RAID superblock.
262If this is not specified
263(as it normally is not) the smallest drive (or partition) sets the
264size, though if there is a variance among the drives of greater than 1%, a warning is
265issued.
266
267.SH For assemble:
268
269.TP
270.BR -u ", " --uuid=
271uuid of array to assemble. Devices which don't have this uuid are
272excluded
273
274.TP
275.BR -m ", " --super-minor=
276Minor number of device that array was created for. Devices which
277don't have this minor number are excluded. If you create an array as
278/dev/md1, then all superblocks will contain the minor number 1, even if
279the array is later assembled as /dev/md2.
280
281.TP
282.BR -f ", " --force
283Assemble the array even if some superblocks appear out-of-date
284
285.TP
286.BR -R ", " --run
287Attempt to start the array even if fewer drives were given than are
288needed for a full array. Normally if not all drives are found and
289.B --scan
290is not used, then the array will be assembled but not started.
291With
292.B --run
293an attempt will be made to start it anyway.
294
295.TP
296.BR -U ", " --update=
297Update the superblock on each device while assembling the array. The
298argument given to this flag can be either
299.B sparc2.2
300or
301.BR super-minor .
302
303The
304.B sparc2.2
305option will adjust the superblock of an array what was created on a Sparc
306machine running a patched 2.2 Linux kernel. This kernel got the
307alignment of part of the superblock wrong. You can use the
308.B "--examine --sparc2.2"
309option to
310.I mdadm
311to see what effect this would have.
312
313The
314.B super-minor
315option will update the
316.B "prefered minor"
317field on each superblock to match the minor number of the array being
318assembled. This is not need on 2.6 and later kernels as they make
319this adjustment automatically.
320
321
322.SH For Manage mode:
323
324.TP
325.BR -a ", " --add
326'''add, or
327hotadd listed devices.
328
329.TP
330.BR -r ", " --remove
331remove listed devices. They must not be active. i.e. they should
332be failed or spare devices.
333
334.TP
335.BR -f ", " --fail
336mark listed devices as faulty.
337
338.TP
339.BR --set-faulty
340same as --fail.
341
342.SH For Examine mode:
343
344.TP
345.B --sparc2.2
346In an array was created on a 2.2 Linux kernel patched with RAID
347support, the superblock will have been created incorrectly, or at
348least incompatibly with 2.4 and later kernels. Using the
349.B --sparc2.2
350flag with
351.B --examine
352will fix the superblock before displaying it. If this appears to do
353the right thing, then the array can be successfully assembled using
354.BR "--assemble --update=sparc2.2" .
355
356.SH For Misc mode:
357
358.TP
359.BR -R ", " --run
360start a partially built array.
361
362.TP
363.BR -S ", " --stop
364deactivate array, releasing all resources.
365
366.TP
367.BR -o ", " --readonly
368mark array as readonly.
369
370.TP
371.BR -w ", " --readwrite
372mark array as readwrite.
373
374.TP
375.B --zero-superblock
376If the device contains a valid md superblock, the block is
377over-written with zeros. With
378--force
379the block where the superblock would be is over-written even if it
380doesn't appear to be valid.
381
382.SH For Monitor mode:
383.TP
384.BR -m ", " --mail
385Give a mail address to send alerts to.
386
387.TP
388.BR -p ", " --program ", " --alert
389Give a program to be run whenever an event is detected.
390
391.TP
392.BR -d ", " --delay
393Give a delay in seconds.
394.B mdadm
395polls the md arrays and then waits this many seconds before polling
396again. The default is 60 seconds.
397
398.SH ASSEMBLE MODE
399
400.HP 12
401Usage:
402.B mdadm --assemble
403.I md-device options-and-component-devices...
404.HP 12
405Usage:
406.B mdadm --assemble --scan
407.I md-devices-and-options...
408.HP 12
409Usage:
410.B mdadm --assemble --scan
411.I options...
412
413.PP
414This usage assembles one or more raid arrays from pre-existing components.
415For each array, mdadm needs to know the md device, the identity of the
416array, and a number of component-devices. These can be found in a number of ways.
417
418In the first usage example (without the
419.BR --scan )
420the first device given is the md device.
421In the second usage example, all devices listed are treated as md
422devices and assembly is attempted.
423In the third (where no devices are listed) all md devices that are
424listed in the configuration file are assembled.
425
426The identity can be given with the
427.B --uuid
428option, with the
429.B --super-minor
430option, can be found in the config file, or will be taken from the
431super block on the first component-device listed on the command line.
432
433Devices can be given on the
434.B --assemble
435command line or in the config file. Only devices which have an md
436superblock which contains the right identity will be considered for
437any array.
438
439The config file is only used if explicitly named with
440.B --config
441or requested with
442.B --scan.
443In the later case,
444.B /etc/mdadm.conf
445is used.
446
447If
448.B --scan
449is not given, then the config file will only be used to find the
450identity of md arrays.
451
452Normally the array will be started after it is assembled. However if
453.B --scan
454is not given and insufficient drives were listed to start a complete
455(non-degraded) array, then the array is not started (to guard against
456usage errors). To insist that the array be started in this case (as
457may work for RAID1 or RAID5), give the
458.B --run
459flag.
460
461
462.SH BUILD MODE
463
464.HP 12
465Usage:
466.B mdadm --build
467.I device
468.BI --chunk= X
469.BI --level= Y
470.BI --raid-devices= Z
471.I devices
472
473.PP
474This usage is similar to
475.BR --create .
476The difference is that it creates a legacy array without a superblock. With
477these arrays there is no difference between initially creating the array and
478subsequently assembling the array, except that hopefully there is useful
479data there in the second case.
480
481The level may only be 0, raid0, or linear. All devices must be listed
482and the array will be started once complete.
483
484.SH CREATE MODE
485
486.HP 12
487Usage:
488.B mdadm --create
489.I device
490.BI --chunk= X
491.BI --level= Y
492.br
493.BI --raid-devices= Z
494.I devices
495
496.PP
497This usage will initialise a new md array, associate some devices with
498it, and activate the array.
499
500As devices are added, they are checked to see if they contain raid
501superblocks or filesystems. They are also checked to see if the variance in
502device size exceeds 1%.
503
504If any discrepancy is found, the array will not automatically be run, though
505the presence of a
506.B --run
507can override this caution.
508
509To create a "degraded" array in which some devices are missing, simply
510give the word
511.B missing
512in place of a device name. This will cause
513.B mdadm
514to leave the corresponding slot in the array empty.
515For a RAID4 or RAID5 array at most one slot can be
516.BR missing .
517For a RAID1 array, only one real device needs to be given. All of the
518others can be
519.BR missing .
520
521'''If the
522'''.B --size
523'''option is given, it is not necessary to list any component-devices in this command.
524'''They can be added later, before a
525'''.B --run.
526'''If no
527'''.B --size
528'''is given, the apparent size of the smallest drive given is used.
529
530The General Management options that are valid with --create are:
531.TP
532.B --run
533insist of running the array even if some devices look like they might
534be in use.
535
536.TP
537.B --readonly
538start the array readonly - not supported yet.
539
540.SH MANAGE MODE
541.HP 12
542Usage:
543.B mdadm
544.I device
545.I options... devices...
546.PP
547
548This usage will allow individual devices in an array to be failed,
549removed or added. It is possible to perform multiple operations with
550on command. For example:
551.br
552.B " mdadm /dev/md0 -f /dev/hda1 -r /dev/hda1 -a /dev/hda1"
553.br
554will firstly mark
555.B /dev/hda1
556as faulty in
557.B /dev/md0
558and will then remove it from the array and finally add it back
559in as a spare. However only one md array can be affected by a single
560command.
561
562.SH MISC MODE
563.HP 12
564Usage:
565.B mdadm
566.I options ...
567.I devices ...
568.PP
569
570MISC mode includes a number if distinct operations that
571operate on distinct devices. The operations are:
572.TP
573--query
574The device is examined to see if it is
575(1) an active md array, or
576(2) a component of an md array.
577The information discovered is reported.
578
579.TP
580--detail
581The device should be an active md device.
582.B mdadm
583will display a detailed description of the array.
584.B --brief
585or
586.B --scan
587will cause the output to be less detailed and the format to be
588suitable for inclusion in
589.BR /etc/mdadm.conf .
590
591.TP
592--examine
593The device should be a component of an md array.
594.B mdadm
595will read the md superblock of the device and display the contents.
596If
597.B --brief
598is given, or
599.B --scan
600then multiple devices that are components of the one array
601are grouped together and reported in a single entry suitable
602for inclusion in
603.BR /etc/mdadm.conf .
604
605Having
606.B --scan
607without listing any devices will cause all devices listed in the
608config file to be examined.
609
610.TP
611--stop
612This devices should active md arrays which will be deactivated, if
613they are not currently in use.
614
615.TP
616--run
617This will fully activate a partially assembled md array.
618
619.TP
620--readonly
621This will mark an active array as read-only, providing that it is
622not currently being used.
623
624.TP
625--readwrite
626This will change a
627.B readonly
628array back to being read/write.
629
630.TP
631--scan
632For all operations except
633.BR --examine ,
634.B --scan
635will cause the operation to be applied to all arrays listed in
636.BR /proc/mdstat .
637For
638.BR --examine,
639.B --scan
640causes all devices listed in the config file to be examined.
641
642
643.SH MONITOR MODE
644
645.HP 12
646Usage:
647.B mdadm --monitor
648.I options... devices...
649
650.PP
651This usage causes
652.B mdadm
653to periodically poll a number of md arrays and to report on any events
654noticed.
655.B mdadm
656will never exit once it decides that there are arrays to be checked,
657so it should normally be run in the background.
658
659As well as reporting events,
660.B mdadm
661may move a spare drive from one array to another if they are in the
662same
663.B spare-group
664and if the destination array has a failed drive but not spares.
665
666If any devices are listed on the command line,
667.B mdadm
668will only monitor those devices. Otherwise all arrays listed in the
669configuration file will be monitored. Further, if
670.B --scan
671is given, then any other md devices that appear in
672.B /proc/mdstat
673will also be monitored.
674
675The result of monitoring the arrays is the generation of events.
676These events are passed to a separate program (if specified) and may
677be mailed to a given E-mail address.
678
679When passing event to program, the program is run once for each event
680and is given 2 or 3 command-line arguements. The first is the
681name of the event (see below). The second is the name of the
682md device which is affected, and the third is the name of a related
683device if relevant, such as a component device that has failed.
684
685If
686.B --scan
687is given, then a program or an E-mail address must be specified on the
688command line or in the config file. If neither are available, then
689.B mdadm
690will not monitor anything.
691Without
692.B --scan
693.B mdadm
694will continue monitoring as long as something was found to monitor. If
695no program or email is given, then each event is reported to
696.BR stdout .
697
698The different events are:
699
700.RS 4
701.TP
702.B DeviceDisappeared
703An md array which previously was configured appears to no longer be
704configured.
705
706.TP
707.B RebuildStarted
708An md array started reconstruction.
709
710.TP
711.BI Rebuild NN
712Where
713.I NN
714is 20, 40, 60, or 80, this indicates that rebuild has passed that many
715percentage of the total.
716
717.TP
718.B Fail
719An active component device of an array has been marked as faulty.
720
721.TP
722.B FailSpare
723A spare component device which was being rebuilt to replace a faulty
724device has failed.
725
726.TP
727.B SpareActive
728A spare component device which was being rebuilt to replace a faulty
729device as been successfully rebuild and has been made active.
730
731.TP
732.B NewArray
733A new md array has been detected in the
734.B /proc/mdstat
735file.
736
737.TP
738.B MoveSpare
739A spare drive has been moved from one array in a
740.B spare-group
741to another to allow a failed drive to be replaced.
742
743.RE
744
745Only
746.B Fail
747and
748.B FailSpare
749cause Email to be sent. All events cause the program to be run.
750The program is run with two or three arguments, they being the event
751name, the array device and possibly a second device.
752
753Each event has an associated array device (e.g.
754.BR /dev/md1 )
755and possibly a second device. For
756.BR Fail ,
757.BR FailSpare ,
758and
759.B SpareActive
760the second device is the relevant component device.
761For
762.B MoveSpare
763the second device is the array that the spare was moved from.
764
765For
766.B mdadm
767to move spares from one array to another, the different arrays need to
768be labelled with the same
769.B spare-group
770in the configuration file. The
771.B spare-group
772name can be any string. It is only necessary that different spare
773groups use different names.
774
775When
776.B mdadm
777detects that an array which is in a spare group has fewer active
778devices than necessary for the complete array, and has no spare
779devices, it will look for another array in the same spare group that
780has a full complement of working drive and a spare. It will then
781attempt to remove the spare from the second drive and add it to the
782first.
783If the removal succeeds but the adding fails, then it is added back to
784the original array.
785
786.SH EXAMPLES
787
788.B " mdadm --query /dev/name-of-device"
789.br
790This will find out if a given device is a raid array, or is part of
791one, and will provide brief information about the device.
792
793.B " mdadm --assemble --scan"
794.br
795This will assemble and start all arrays listed in the standard confile
796file. This command will typically go in a system startup file.
797
798.B " mdadm --stop --scan"
799.br
800This will shut down all array that can be shut down (i.e. are not
801currently in used). This will typically going in a system shutdown script.
802
803.B " mdadm --follow --scan --delay=120"
804.br
805If (and only if) there is an Email address or program given in the
806standard config file, then
807monitor the status of all arrays listed in that file by
808polling them ever 2 minutes.
809
810.B " mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/hd[ac]1"
811.br
812Create /dev/md0 as a RAID1 array consisting of /dev/hda1 and /dev/hdc1.
813
814.br
815.B " echo 'DEVICE /dev/hd*[0-9] /dev/sd*[0-9]' > mdadm.conf"
816.br
817.B " mdadm --detail --scan >> mdadm.conf"
818.br
819This will create a prototype config file that describes currently
820active arrays that are known to be made from partitions of IDE or SCSI drives.
821This file should be reviewed before being used as it may
822contain unwanted detail.
823
824.B " echo 'DEVICE /dev/hd[a-z] /dev/sd*[a-z]' > mdadm.conf"
825.br
826.B " mdadm --examine --scan --config=mdadm.conf >> mdadm.conf"
827.ber
828This will find what arrays could be assembled from existign IDE and
829SCSI whole drives (not partitions) and store the information is the
830format of a config file.
831This file is very likely to contain unwanted detail, particularly
832the
833.B devices=
834entries. It should be reviewed and edited before being used as an
835actual config file.
836
837.B " mdadm --examine --brief --scan --config=partitions"
838.br
839.B " mdadm -Ebsc partitions"
840.br
841Create a list of devices by reading
842.BR /proc/partitions ,
843scan these for RAID superblocks, and printout a brief listing of all
844that was found.
845
846.B " mdadm -Ac partitions -m 0 /dev/md0"
847.br
848Scan all partitions and devices listed in
849.BR /proc/partitions
850and assemble
851.B /dev/md0
852out of all such devices with a RAID superblock with a minor number of 0.
853
854.B " mdadm --create --help"
855.br
856Providew help about the Create mode.
857
858.B " mdadm --config --help"
859.br
860Provide help about the format of the config file.
861
862.B " mdadm --help"
863.br
864Provide general help.
865
866
867.SH FILES
868
869.SS /proc/mdstat
870
871If you're using the
872.B /proc
873filesystem,
874.B /proc/mdstat
875lists all active md devices with information about them.
876.B mdadm
877uses this to find arrays when
878.B --scan
879is given in Misc mode, and to monitor array reconstruction
880on Monitor mode.
881
882
883.SS /etc/mdadm.conf
884
885The config file lists which devices may be scanned to see if
886they contain MD super block, and gives identifying information
887(e.g. UUID) about known MD arrays. See
888.BR mdadm.conf (5)
889for more details.
890
891
892.SH NOTE
893.B mdadm
894was previously known as
895.BR mdctl .
896
897.SH SEE ALSO
898For information on the various levels of
899RAID, check out:
900
901.IP
902.UR http://ostenfeld.dk/~jakob/Software-RAID.HOWTO/
903http://ostenfeld.dk/~jakob/Software-RAID.HOWTO/
904.UE
905.PP
906for new releases of the RAID driver check out:
907
908.IP
909.UR ftp://ftp.kernel.org/pub/linux/kernel/people/mingo/raid-patches
910ftp://ftp.kernel.org/pub/linux/kernel/people/mingo/raid-patches
911.UE
912.PP
913or
914.IP
915.UR http://www.cse.unsw.edu.au/~neilb/patches/linux-stable/
916http://www.cse.unsw.edu.au/~neilb/patches/linux-stable/
917.URk
918.PP
919.BR mdadm.conf (5),
920.BR md (4).
921.PP
922.IR raidtab (5),
923.IR raid0run (8),
924.IR raidstop (8),
925.IR mkraid (8)