aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorHeinz Mauelshagen <heinzm@redhat.com>2016-06-13 19:46:01 -0400
committerMike Snitzer <snitzer@redhat.com>2016-06-14 18:52:12 -0400
commitd41bfed091db0bdc2e0b2e847e0773a461f9e225 (patch)
treecee94eaaf03061ab19210b0b3e752fdc61dbce15 /Documentation
parent9dbd1aa3a81c6166608fec87994b6c464701f73a (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.txt58
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
213Discard Support 259Discard Support
@@ -257,3 +303,9 @@ Version History
2571.5.2 'mismatch_cnt' is zero unless [last_]sync_action is "check". 3031.5.2 'mismatch_cnt' is zero unless [last_]sync_action is "check".
2581.6.0 Add discard support (and devices_handle_discard_safely module param). 3041.6.0 Add discard support (and devices_handle_discard_safely module param).
2591.7.0 Add support for MD RAID0 mappings. 3051.7.0 Add support for MD RAID0 mappings.
3061.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.
3101.9.0 Add support for RAID level takeover/reshape/region size
311 and set size reduction.