| 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. |