diff options
author | Heinz Mauelshagen <heinzm@redhat.com> | 2016-06-13 19:46:01 -0400 |
---|---|---|
committer | Mike Snitzer <snitzer@redhat.com> | 2016-06-14 18:52:12 -0400 |
commit | d41bfed091db0bdc2e0b2e847e0773a461f9e225 (patch) | |
tree | cee94eaaf03061ab19210b0b3e752fdc61dbce15 /Documentation | |
parent | 9dbd1aa3a81c6166608fec87994b6c464701f73a (diff) |
dm raid: update Documentation about reshaping/takeover/additonal RAID types
Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/device-mapper/dm-raid.txt | 58 |
1 files changed, 55 insertions, 3 deletions
diff --git a/Documentation/device-mapper/dm-raid.txt b/Documentation/device-mapper/dm-raid.txt index df2d636b6088..e5b6497116f4 100644 --- a/Documentation/device-mapper/dm-raid.txt +++ b/Documentation/device-mapper/dm-raid.txt | |||
@@ -14,8 +14,12 @@ The target is named "raid" and it accepts the following parameters: | |||
14 | <#raid_devs> <metadata_dev0> <dev0> [.. <metadata_devN> <devN>] | 14 | <#raid_devs> <metadata_dev0> <dev0> [.. <metadata_devN> <devN>] |
15 | 15 | ||
16 | <raid_type>: | 16 | <raid_type>: |
17 | raid0 RAID0 striping (no resilience) | ||
17 | raid1 RAID1 mirroring | 18 | raid1 RAID1 mirroring |
18 | raid4 RAID4 dedicated parity disk | 19 | raid4 RAID4 with dedicated last parity disk |
20 | raid5_n RAID5 with dedicated last parity disk suporting takeover | ||
21 | Same as raid4 | ||
22 | -Transitory layout | ||
19 | raid5_la RAID5 left asymmetric | 23 | raid5_la RAID5 left asymmetric |
20 | - rotating parity 0 with data continuation | 24 | - rotating parity 0 with data continuation |
21 | raid5_ra RAID5 right asymmetric | 25 | raid5_ra RAID5 right asymmetric |
@@ -30,7 +34,19 @@ The target is named "raid" and it accepts the following parameters: | |||
30 | - rotating parity N (right-to-left) with data restart | 34 | - rotating parity N (right-to-left) with data restart |
31 | raid6_nc RAID6 N continue | 35 | raid6_nc RAID6 N continue |
32 | - rotating parity N (right-to-left) with data continuation | 36 | - rotating parity N (right-to-left) with data continuation |
37 | raid6_n_6 RAID6 with dedicate parity disks | ||
38 | - parity and Q-syndrome on the last 2 disks; | ||
39 | laylout for takeover from/to raid4/raid5_n | ||
40 | raid6_la_6 Same as "raid_la" plus dedicated last Q-syndrome disk | ||
41 | - layout for takeover from raid5_la from/to raid6 | ||
42 | raid6_ra_6 Same as "raid5_ra" dedicated last Q-syndrome disk | ||
43 | - layout for takeover from raid5_ra from/to raid6 | ||
44 | raid6_ls_6 Same as "raid5_ls" dedicated last Q-syndrome disk | ||
45 | - layout for takeover from raid5_ls from/to raid6 | ||
46 | raid6_rs_6 Same as "raid5_rs" dedicated last Q-syndrome disk | ||
47 | - layout for takeover from raid5_rs from/to raid6 | ||
33 | raid10 Various RAID10 inspired algorithms chosen by additional params | 48 | raid10 Various RAID10 inspired algorithms chosen by additional params |
49 | (see raid10_format and raid10_copies below) | ||
34 | - RAID10: Striped Mirrors (aka 'Striping on top of mirrors') | 50 | - RAID10: Striped Mirrors (aka 'Striping on top of mirrors') |
35 | - RAID1E: Integrated Adjacent Stripe Mirroring | 51 | - RAID1E: Integrated Adjacent Stripe Mirroring |
36 | - RAID1E: Integrated Offset Stripe Mirroring | 52 | - RAID1E: Integrated Offset Stripe Mirroring |
@@ -116,10 +132,41 @@ The target is named "raid" and it accepts the following parameters: | |||
116 | Here we see layouts closely akin to 'RAID1E - Integrated | 132 | Here we see layouts closely akin to 'RAID1E - Integrated |
117 | Offset Stripe Mirroring'. | 133 | Offset Stripe Mirroring'. |
118 | 134 | ||
135 | [delta_disks <N>] | ||
136 | The delta_disks option value (-251 < N < +251) triggers | ||
137 | device removal (negative value) or device addition (positive | ||
138 | value) to any reshape supporting raid levels 4/5/6 and 10. | ||
139 | RAID levels 4/5/6 allow for addition of devices (metadata | ||
140 | and data device tupel), raid10_near and raid10_offset only | ||
141 | allow for device addtion. raid10_far does not support any | ||
142 | reshaping at all. | ||
143 | A minimum of devices have to be kept to enforce resilience, | ||
144 | which is 3 devices for raid4/5 and 4 devices for raid6. | ||
145 | |||
146 | [data_offset <sectors>] | ||
147 | This option value defines the offset into each data device | ||
148 | where the data starts. This is used to provide out-of-place | ||
149 | reshaping space to avoid writing over data whilst | ||
150 | changing the layout of stripes, hence an interruption/crash | ||
151 | may happen at any time without the risk of losing data. | ||
152 | E.g. when adding devices to an existing raid set during | ||
153 | forward reshaping, the out-of-place space will be allocated | ||
154 | at the beginning of each raid device. The kernel raid4/5/6/10 | ||
155 | MD personalities supporting such device addition will read the data from | ||
156 | the existing first stripes (those with smaller number of stripes) | ||
157 | starting at data_offset to fill up a new stripe with the larger | ||
158 | number of stripes, calculate the redundancy blocks (CRC/Q-syndrome) | ||
159 | and write that new stripe to offset 0. Same will be applied to all | ||
160 | N-1 other new stripes. This out-of-place scheme is used to change | ||
161 | the RAID type (i.e. the allocation algorithm) as well, e.g. | ||
162 | changing from raid5_ls to raid5_n. | ||
163 | |||
119 | <#raid_devs>: The number of devices composing the array. | 164 | <#raid_devs>: The number of devices composing the array. |
120 | Each device consists of two entries. The first is the device | 165 | Each device consists of two entries. The first is the device |
121 | containing the metadata (if any); the second is the one containing the | 166 | containing the metadata (if any); the second is the one containing the |
122 | data. | 167 | data. A Maximum of 64 metadata/data device entries are supported |
168 | up to target version 1.8.0. | ||
169 | 1.9.0 supports up to 253 which is enforced by the used MD kernel runtime. | ||
123 | 170 | ||
124 | If a drive has failed or is missing at creation time, a '-' can be | 171 | If a drive has failed or is missing at creation time, a '-' can be |
125 | given for both the metadata and data drives for a given position. | 172 | given for both the metadata and data drives for a given position. |
@@ -207,7 +254,6 @@ include: | |||
207 | "recover"- Initiate/continue a recover process. | 254 | "recover"- Initiate/continue a recover process. |
208 | "check" - Initiate a check (i.e. a "scrub") of the array. | 255 | "check" - Initiate a check (i.e. a "scrub") of the array. |
209 | "repair" - Initiate a repair of the array. | 256 | "repair" - Initiate a repair of the array. |
210 | "reshape"- Currently unsupported (-EINVAL). | ||
211 | 257 | ||
212 | 258 | ||
213 | Discard Support | 259 | Discard Support |
@@ -257,3 +303,9 @@ Version History | |||
257 | 1.5.2 'mismatch_cnt' is zero unless [last_]sync_action is "check". | 303 | 1.5.2 'mismatch_cnt' is zero unless [last_]sync_action is "check". |
258 | 1.6.0 Add discard support (and devices_handle_discard_safely module param). | 304 | 1.6.0 Add discard support (and devices_handle_discard_safely module param). |
259 | 1.7.0 Add support for MD RAID0 mappings. | 305 | 1.7.0 Add support for MD RAID0 mappings. |
306 | 1.8.0 Explictely check for compatible flags in the superblock metadata | ||
307 | and reject to start the raid set if any are set by a newer | ||
308 | target version, thus avoiding data corruption on a raid set | ||
309 | with a reshape in progress. | ||
310 | 1.9.0 Add support for RAID level takeover/reshape/region size | ||
311 | and set size reduction. | ||