NeilBrown | 9d09e66 | 2011-01-13 20:00:02 +0000 | [diff] [blame] | 1 | Device-mapper RAID (dm-raid) is a bridge from DM to MD. It |
| 2 | provides a way to use device-mapper interfaces to access the MD RAID |
| 3 | drivers. |
| 4 | |
| 5 | As with all device-mapper targets, the nominal public interfaces are the |
| 6 | constructor (CTR) tables and the status outputs (both STATUSTYPE_INFO |
| 7 | and STATUSTYPE_TABLE). The CTR table looks like the following: |
| 8 | |
| 9 | 1: <s> <l> raid \ |
| 10 | 2: <raid_type> <#raid_params> <raid_params> \ |
| 11 | 3: <#raid_devs> <meta_dev1> <dev1> .. <meta_devN> <devN> |
| 12 | |
| 13 | Line 1 contains the standard first three arguments to any device-mapper |
| 14 | target - the start, length, and target type fields. The target type in |
| 15 | this case is "raid". |
| 16 | |
| 17 | Line 2 contains the arguments that define the particular raid |
| 18 | type/personality/level, the required arguments for that raid type, and |
| 19 | any optional arguments. Possible raid types include: raid4, raid5_la, |
| 20 | raid5_ls, raid5_rs, raid6_zr, raid6_nr, and raid6_nc. (raid1 is |
| 21 | planned for the future.) The list of required and optional parameters |
| 22 | is the same for all the current raid types. The required parameters are |
| 23 | positional, while the optional parameters are given as key/value pairs. |
| 24 | The possible parameters are as follows: |
| 25 | <chunk_size> Chunk size in sectors. |
| 26 | [[no]sync] Force/Prevent RAID initialization |
| 27 | [rebuild <idx>] Rebuild the drive indicated by the index |
| 28 | [daemon_sleep <ms>] Time between bitmap daemon work to clear bits |
| 29 | [min_recovery_rate <kB/sec/disk>] Throttle RAID initialization |
| 30 | [max_recovery_rate <kB/sec/disk>] Throttle RAID initialization |
| 31 | [max_write_behind <sectors>] See '-write-behind=' (man mdadm) |
| 32 | [stripe_cache <sectors>] Stripe cache size for higher RAIDs |
| 33 | |
| 34 | Line 3 contains the list of devices that compose the array in |
| 35 | metadata/data device pairs. If the metadata is stored separately, a '-' |
| 36 | is given for the metadata device position. If a drive has failed or is |
| 37 | missing at creation time, a '-' can be given for both the metadata and |
| 38 | data drives for a given position. |
| 39 | |
| 40 | NB. Currently all metadata devices must be specified as '-'. |
| 41 | |
| 42 | Examples: |
| 43 | # RAID4 - 4 data drives, 1 parity |
| 44 | # No metadata devices specified to hold superblock/bitmap info |
| 45 | # Chunk size of 1MiB |
| 46 | # (Lines separated for easy reading) |
| 47 | 0 1960893648 raid \ |
| 48 | raid4 1 2048 \ |
| 49 | 5 - 8:17 - 8:33 - 8:49 - 8:65 - 8:81 |
| 50 | |
| 51 | # RAID4 - 4 data drives, 1 parity (no metadata devices) |
| 52 | # Chunk size of 1MiB, force RAID initialization, |
| 53 | # min recovery rate at 20 kiB/sec/disk |
| 54 | 0 1960893648 raid \ |
| 55 | raid4 4 2048 min_recovery_rate 20 sync\ |
| 56 | 5 - 8:17 - 8:33 - 8:49 - 8:65 - 8:81 |
| 57 | |
| 58 | Performing a 'dmsetup table' should display the CTR table used to |
| 59 | construct the mapping (with possible reordering of optional |
| 60 | parameters). |
| 61 | |
| 62 | Performing a 'dmsetup status' will yield information on the state and |
| 63 | health of the array. The output is as follows: |
| 64 | 1: <s> <l> raid \ |
| 65 | 2: <raid_type> <#devices> <1 health char for each dev> <resync_ratio> |
| 66 | |
| 67 | Line 1 is standard DM output. Line 2 is best shown by example: |
| 68 | 0 1960893648 raid raid4 5 AAAAA 2/490221568 |
| 69 | Here we can see the RAID type is raid4, there are 5 devices - all of |
| 70 | which are 'A'live, and the array is 2/490221568 complete with recovery. |