Device Mapper RAID - manage RAID
dmraid discovers block and software RAID devices (eg, ATARAID) by using different metadata format handlers (eg, Highpoint 37x series).
It offers activating RAID sets , display properties of devices and sets.
Block device access to activated RAID sets occurs via device-mapper nodes /dev/mapper/RaidSetName.
RaidSetName starts with the format name (see -l option) which can be used to access all RAID sets of a specific format with certain options (eg, -a below).
-a --activate {y|n} [RAID set...]
Activates or deactivates all or particular software RAID set. In case metadata format handlers are chosen with -f , only RAID sets with such format(s) can be activated or deacti‐
vated. Useful if devices have multiple metadata signatures. When activating RAID sets, -p disables the activation of partitions on them, and -Z will make dmraid tell the kernel
to remove the partitions from the disks underlying the set, ie if sda is part of the set, remove sda1, sda2, etc. This prevents applications from directly accessiong the disks
bypassing dmraid. RAID set names given on command line don't need to be fully specified (eg, "dmraid -ay sil" would activate all discovered Silicon Image Medley RAID sets). Option
-u defers metadata update in case of rebuild is triggered parallelly with activation. Awoids metadata update to "OK" state if volume is not registered to the event monitoring.
Useful if volume is activating at early stage of booting process when registration to the event monitoring is impossible.
| -b --block_devices [device-path...]
List all or particular discovered block devices with their properties (size, serial number). Add -c to display block device names only and -cc for CSV column output of block
device properties. See description of -c below for FIELD identifiers.
| [-d|--debug]...|
Enable debugging output. Opion can be given multiple times increasing the debug output level.
| -c --display_columns [FIELD[,FIELD...]]...
Display properties of block devices, RAID sets and devices in column(s). Optional list specifying which FIELDs to display.
For -b:
d[evpath]|p[ath], sec[tors]|si[ze], ser[ialnumber].
For -r:
de[vpath]|p[ath], f[ormat], r[aidname], t[ype], st[atus], se[ctors]|si[ze], da[taoffset]|o[ffset].
For -s:
f[ormat], r[aidname], t[ype], sta[tus], str[ide], se[ctors]|si[ze], su[bsets], d[evices], sp[ares].
| -f --format FORMAT[,FORMAT...]
Use metadata format handler(s) to discover RAID devices. See -l for a list of supported format handler names. This is useful to select particular formats in case multiple metadata
signatures are found on a device. A comma seperated list of format names can be specified which may not contain white space.
| {-i|--ignorelocking}|
Don't take out any locks. Useful in early boot where no read/write access to /var is available.
| {-l|--list_formats}|
List all available metadata format handlers with their names and descriptions. Supported RAID levels are listed in parenthesis:
S: Span (concatination)
0: RAID0 (stripe)
1: RAID1 (mirror)
10: RAID10 (mirror on top of stripes)
01: RAID10 (stripe on top of mirrors) Note: Intel OROM displays this as RAID10
| {-n|--native_log} [device-path...]|
Display metadata in native, vendor-specific format. In case a metadata format handler is chosen with -f only RAID devices with such format will be displayed in native format. If
device-path(s) is/are given on the command line, native metadata output is restricted to those listed.
| [{-P|--partchar} CHAR]|
Use CHAR as the separator between the device name and the partition number.
| {-R| --rebuild} RAID-set [device-path]|
Rebuild raid array after a drive has failed and a new drive is added. For Intel chipset based systems, there are two methods in which a new drive is added to the system. Option -u
defers metadata update in case of rebuild is triggered. Awoids metadata update to "OK" state if volume is not registered to the event monitoring.
1. Using OROM to identify a new drive
During system reboot, enter OROM and mark the new drive as the rebuild drive.
After booting to the OS, use the dmraid command to rebuild.
Example: dmraid -R raid_set
2. Using dmraid to identify a new drive
Boot to the OS and use the dmraid command with the new drive as the second parameter.
Example: dmraid -R raid_set /dev/sdc
3. Using hot spare drive
Mark a drive as hot spare using the "dmraid -f isw -S" command. Then use the dmraid command to start the rebuild.
Example: dmraid -R raid_set
| {-x|--remove} [RAID-set]|
Delete one or all existing software RAID devices from the metadata.
| -f FORMAT-handler
-C --create
--type raidlevel
--disk device-path, device-path [,device-path]
--strip stripsize
--size=setsize
Stores the configuration data in a group consisting of this array,
after deleting all existing Configure a software RAID device.
-f FORMAT-handler metadata format (see dmraid -l
0, 1, 5, 01: raid01 (isw raid10)
| --strip: [digits[k|K|m|M|g|G][b|B]]| specify the strip size of a RAID1, RAID5, and RAID10 RAID set (as above)
| --disk: device-path[{,| }device-path...]|
specify the array of the hard drives, e.g. /dev/sda.
| --size: [nnn[k|K|m|M|g|G][b|B]] (m==M=1024*K, …)
Ommitting size uses the default value pre-configured by the vendor is used.
| | | | |
Add hot spare support for one or more RAID sets.:
-f FORMAT-handler -S -M device-path
-S -M device-path
- When used with a format handler, which supports hot spare sets (e.g. isw), a hot spare is marked to be used when rebuilding any RAID set of that format.
- When used when specifying a RAID set, the drive is added to that RAID set and will be used only to rebuild that set. Note: If the specified name does not match an existing RAID-set, a set with the
new name will be created.
| {-r|--raid_devices} [device-path...]
List all discovered RAID devices with format, RAID level, sectors used and data offset into the device. In case a metadata format handler is chosen with -f , only RAID devices
with such format can be discovered. Useful if devices have multiple metadata signatures. If -D is added to -r the RAID metadata gets dumped into a subdirectory named dmraid.for‐
mat_name (eg. format_name = isw) in files named devicename.dat. The byte offset where the metadata is located on the device is written into files named devicename.offset and the
size of the device in sectors into files named devicename.size.
If -E is added to -r the RAID metadata on the devices gets conditionally erased. Useful to erase old metadata after new one of different type has been stored on a device in order
to avoid discovering both. If you enter -E option -D will be enforced in order to have a fallback in case the wrong metadata got erased. Manual copying back onto the device is
needed to recover from erasing the wrong metadata using the dumped files devicename_formatname.dat and devicename_formatname.offset. Eg, to restore all *.dat files in the working
directory to the respective devices:
for f in *.dat
do
dd if=$f of=/dev/${f%%.dat} \
seek=`cat ${f%%dat}offset` bs=1
done
If device-path(s) is/are given on the command line, the above actions are restricted to those listed.
Add -c to display RAID device names only and -cc for CSV column output of
RAID device properties. See description of -c above for FIELD identifiers.
| --separator sep| delimiter for all options taking or displaying lists.
| -s... [a|i] [RAID-set...]|
Display properties of RAID sets. Multiple RAID set names can be given on the command line which don't need to be fully specified (eg, "dmraid -s hpt" would display all discovered
Highpoint RAID sets). Enter -s twice to display RAID subsets too. Add -c to display names of RAID sets only, -cc for CSV column output of RAID set properties and -ccc for inclu‐
sion of block devices in the listing. Doesn't imply -s -s to show RAID subsets (implied for group sets, e.g. isw). Add -g to include information about group RAID sets (as with
Intel Software RAID) in the listing. See description of -c above for FIELD identifiers. Note: Size is given in sectors (not bytes).
| -v --verbose...given multiple times increasing the verbosity level.
| -h --help Display help text.
| | | | | | | | | | | | | | | | | |
EXAMPLES
"dmraid -l" lists all supported metadata formats with their names along with some descriptive information, eg:
hpt37x : (+) Highpoint HPT37X
hpt45x : (+) Highpoint HPT45X
isw : (+) Intel Software RAID
lsi : (0) LSI Logic MegaRAID
nvidia : (+) NVidia RAID
pdc : (+) Promise FastTrack
sil : (+) Silicon Image(tm) Medley(tm)
via : (+) VIA Software RAID
dos : (+) DOS partitions on SW RAIDs
(0): Discover, (+): Discover+Activate
"dmraid -ay" activates all software RAID sets discovered.
"dmraid -an" deactivates all active software RAID sets which are not open (eg, mounted filesystem on them).
"dmraid -ay -f pdc" (pdc looked up from "dmraid -l") activates all software RAID sets with Promise format discovered and ignores all other supported formats.
"dmraid -r" discovers all software RAID devices supported on your system, eg:
/dev/dm-46: hpt45x, "hpt45x_chidjhaiaa-0", striped, ok, 320172928 sectors, data@ 0
/dev/dm-50: hpt45x, "hpt45x_chidjhaiaa-0", striped, ok, 320172928 sectors, data@ 0
/dev/dm-54: hpt45x, "hpt45x_chidjhaiaa-1", striped, ok, 320172928 sectors, data@ 0
/dev/dm-58: hpt45x, "hpt45x_chidjhaiaa-1", striped, ok, 320172928 sectors, data@ 0
"dmraid -s -s hpt45x_chidjhaiaa" displays properties of set "hpt45x_chidjhaiaa", eg:
*** Superset
name : hpt45x_chidjhaiaa
size : 640345856
stride : 128
type : raid10
status : ok
subsets: 2
dev : 4
spare : 0
---> Subset
name : hpt45x_chidjhaiaa-0
size : 640345856
stride : 128
type : stripe
status : ok
subsets: 0
dev : 2
spare : 0
---> Subset
name : hpt45x_chidjhaiaa-1
size : 640345856
stride : 128
type : stripe
status : ok
subsets: 0
dev : 2
spare : 0
---> Subset
name : hpt45x_chidjhaiaa-1
size : 640345856
stride : 128
type : stripe
status : ok
subsets: 0
dev : 2
spare : 0
"dmraid -s -ccs hpt45" displays properties in column format of all sets and subsets with hpt45* format, eg:
hpt45x_chidjhaiaa,640345856,128,raid10,ok,4,0
hpt45x_chidjhaiaa-a,640345856,128,stripe,ok,2,0
hpt45x_chidjhaiaa-b,640345856,128,stripe,ok,2,0
"dmraid -r --sep : -cpath:size" display paths and sizes in sectors for RAID devices in column format using ':' as a delimiter, eg:
/dev/dm-8:320173055
/dev/dm-12:320173055
/dev/dm-22:320173055
/dev/dm-26:320173055
/dev/dm-30:586114703
/dev/dm-34:586114703
/dev/dm-38:586114703
/dev/dm-42:586114703
/dev/dm-46:156301487
/dev/dm-50:156301487
/dev/dm-54:390624896
/dev/dm-58:390624896
/dev/dm-62:390624896
/dev/dm-66:390624896
"dmraid -f isw -C Raid0 --type 0 --strip 8k --size 20g --disk "/dev/sdb /dev/sdc"" creates an ISW volume with a name of "Raid0", 20Gig bytes in total, and 8kilo bytes strip size on two
disks.
"dmraid -f isw -C Test0 --type 0 --disk "/dev/sdd /dev/sde"" creates an ISW volume with the default size and strip size.
"dmraid -f isw -C Test10 --type 01 --strip 128B --disk "/dev/sda /dev/sdb /dev/sdc /dev/sdd" creates a stacked RAID device, RAID10 (isw format), with a name of "Test10", 128 blocks
(512bytes) strip size , and the default volume size on 4 disks.
"dmraid -f isw -S -M /dev/sde" marks the device /dev/sde as a hot spare for rebuild
"dmraid -R isw_djaggchdde_RAID1 /dev/sde" starts rebuild of the RAID volume on device /dev/sde
dmraid returns an exit code of 0 for success or 1 for error.
AUTHOR
Heinz Mauelshagen
Heinz Mauelshagen DMRAID TOOL
help
dmraid: Device-Mapper Software RAID tool
* = [-d|--debug]... [-v|--verbose]... [-i|--ignorelocking]
dmraid {-a|--activate} {y|n|yes|no}
[-f|--format FORMAT[,FORMAT...]]
[-P|--partchar CHAR]
[-p|--no_partitions]
[--separator SEPARATOR]
[-t|--test]
[-Z|--rm_partitions] [RAID-set...]
[-u|--update_defer]
dmraid {-b|--block_devices} *
[-c|--display_columns][FIELD[,FIELD...]]...
[device-path...]
dmraid {-h|--help}
dmraid {-l|--list_formats} *
dmraid {-n|--native_log} *
[-f|--format FORMAT[,FORMAT...]]
[--separator SEPARATOR]
[device-path...]
dmraid {-r|--raid_devices} *
[-c|--display_columns][FIELD[,FIELD...]]...
[-D|--dump_metadata]
[-f|--format FORMAT[,FORMAT...]]
[--separator SEPARATOR]
[device-path...]
dmraid {-r|--raid_devices} *
{-E|--erase_metadata}
[-f|--format FORMAT[,FORMAT...]]
[--separator SEPARATOR]
[device-path...]
dmraid {-s|--sets}...[a|i|active|inactive] *
[-c|--display_columns][FIELD[,FIELD...]]...
[-f|--format FORMAT[,FORMAT...]]
[-g|--display_group]
[--separator SEPARATOR]
[RAID-set...]
dmraid {-f|--format FORMAT}
{-C|--create RAID-set}
{--type RAID-level}
[--size [0-9]...[kKgG][bB]]
[--str[i[de]] [0-9]...[kK][bB]]
{--disk[s] "device-path[, device-path..."}
dmraid {-x|--remove RAID-set}
dmraid {-R|--rebuild} RAID-set [drive_name]
[-u|--update_defer]
dmraid [{-f|--format FORMAT}]
{-S|--spare [RAID-set]}
{-M|--media "device-path"}
dmraid {-V/--version}