| Device-mapper RAID (dm-raid) is a bridge from DM to MD. It | |
| provides a way to use device-mapper interfaces to access the MD RAID | |
| drivers. | |
| As with all device-mapper targets, the nominal public interfaces are the | |
| constructor (CTR) tables and the status outputs (both STATUSTYPE_INFO | |
| and STATUSTYPE_TABLE). The CTR table looks like the following: | |
| 1: <s> <l> raid \ | |
| 2: <raid_type> <#raid_params> <raid_params> \ | |
| 3: <#raid_devs> <meta_dev1> <dev1> .. <meta_devN> <devN> | |
| Line 1 contains the standard first three arguments to any device-mapper | |
| target - the start, length, and target type fields. The target type in | |
| this case is "raid". | |
| Line 2 contains the arguments that define the particular raid | |
| type/personality/level, the required arguments for that raid type, and | |
| any optional arguments. Possible raid types include: raid4, raid5_la, | |
| raid5_ls, raid5_rs, raid6_zr, raid6_nr, and raid6_nc. (raid1 is | |
| planned for the future.) The list of required and optional parameters | |
| is the same for all the current raid types. The required parameters are | |
| positional, while the optional parameters are given as key/value pairs. | |
| The possible parameters are as follows: | |
| <chunk_size> Chunk size in sectors. | |
| [[no]sync] Force/Prevent RAID initialization | |
| [rebuild <idx>] Rebuild the drive indicated by the index | |
| [daemon_sleep <ms>] Time between bitmap daemon work to clear bits | |
| [min_recovery_rate <kB/sec/disk>] Throttle RAID initialization | |
| [max_recovery_rate <kB/sec/disk>] Throttle RAID initialization | |
| [max_write_behind <sectors>] See '-write-behind=' (man mdadm) | |
| [stripe_cache <sectors>] Stripe cache size for higher RAIDs | |
| Line 3 contains the list of devices that compose the array in | |
| metadata/data device pairs. If the metadata is stored separately, a '-' | |
| is given for the metadata device position. If a drive has failed or is | |
| missing at creation time, a '-' can be given for both the metadata and | |
| data drives for a given position. | |
| NB. Currently all metadata devices must be specified as '-'. | |
| Examples: | |
| # RAID4 - 4 data drives, 1 parity | |
| # No metadata devices specified to hold superblock/bitmap info | |
| # Chunk size of 1MiB | |
| # (Lines separated for easy reading) | |
| 0 1960893648 raid \ | |
| raid4 1 2048 \ | |
| 5 - 8:17 - 8:33 - 8:49 - 8:65 - 8:81 | |
| # RAID4 - 4 data drives, 1 parity (no metadata devices) | |
| # Chunk size of 1MiB, force RAID initialization, | |
| # min recovery rate at 20 kiB/sec/disk | |
| 0 1960893648 raid \ | |
| raid4 4 2048 min_recovery_rate 20 sync\ | |
| 5 - 8:17 - 8:33 - 8:49 - 8:65 - 8:81 | |
| Performing a 'dmsetup table' should display the CTR table used to | |
| construct the mapping (with possible reordering of optional | |
| parameters). | |
| Performing a 'dmsetup status' will yield information on the state and | |
| health of the array. The output is as follows: | |
| 1: <s> <l> raid \ | |
| 2: <raid_type> <#devices> <1 health char for each dev> <resync_ratio> | |
| Line 1 is standard DM output. Line 2 is best shown by example: | |
| 0 1960893648 raid raid4 5 AAAAA 2/490221568 | |
| Here we can see the RAID type is raid4, there are 5 devices - all of | |
| which are 'A'live, and the array is 2/490221568 complete with recovery. |