]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | # |
2 | # Block device driver configuration | |
3 | # | |
4 | ||
afd44034 | 5 | menuconfig MD |
1da177e4 | 6 | bool "Multiple devices driver support (RAID and LVM)" |
afd44034 | 7 | depends on BLOCK |
83fe27ea | 8 | select SRCU |
1da177e4 LT |
9 | help |
10 | Support multiple physical spindles through a single logical device. | |
11 | Required for RAID and logical volume management. | |
12 | ||
afd44034 JE |
13 | if MD |
14 | ||
1da177e4 LT |
15 | config BLK_DEV_MD |
16 | tristate "RAID support" | |
1da177e4 LT |
17 | ---help--- |
18 | This driver lets you combine several hard disk partitions into one | |
19 | logical block device. This can be used to simply append one | |
20 | partition to another one or to combine several redundant hard disks | |
21 | into a RAID1/4/5 device so as to provide protection against hard | |
22 | disk failures. This is called "Software RAID" since the combining of | |
23 | the partitions is done by the kernel. "Hardware RAID" means that the | |
24 | combining is done by a dedicated controller; if you have such a | |
25 | controller, you do not need to say Y here. | |
26 | ||
27 | More information about Software RAID on Linux is contained in the | |
28 | Software RAID mini-HOWTO, available from | |
29 | <http://www.tldp.org/docs.html#howto>. There you will also learn | |
30 | where to get the supporting user space utilities raidtools. | |
31 | ||
32 | If unsure, say N. | |
33 | ||
a364092a AV |
34 | config MD_AUTODETECT |
35 | bool "Autodetect RAID arrays during kernel boot" | |
ce52aebd | 36 | depends on BLK_DEV_MD=y |
a364092a AV |
37 | default y |
38 | ---help--- | |
39 | If you say Y here, then the kernel will try to autodetect raid | |
40 | arrays as part of its boot process. | |
41 | ||
42 | If you don't use raid and say Y, this autodetection can cause | |
43 | a several-second delay in the boot time due to various | |
44 | synchronisation steps that are part of this step. | |
45 | ||
46 | If unsure, say Y. | |
47 | ||
1da177e4 LT |
48 | config MD_LINEAR |
49 | tristate "Linear (append) mode" | |
50 | depends on BLK_DEV_MD | |
51 | ---help--- | |
52 | If you say Y here, then your multiple devices driver will be able to | |
53 | use the so-called linear mode, i.e. it will combine the hard disk | |
54 | partitions by simply appending one to the other. | |
55 | ||
56 | To compile this as a module, choose M here: the module | |
57 | will be called linear. | |
58 | ||
59 | If unsure, say Y. | |
60 | ||
61 | config MD_RAID0 | |
62 | tristate "RAID-0 (striping) mode" | |
63 | depends on BLK_DEV_MD | |
64 | ---help--- | |
65 | If you say Y here, then your multiple devices driver will be able to | |
66 | use the so-called raid0 mode, i.e. it will combine the hard disk | |
67 | partitions into one logical device in such a fashion as to fill them | |
68 | up evenly, one chunk here and one chunk there. This will increase | |
69 | the throughput rate if the partitions reside on distinct disks. | |
70 | ||
71 | Information about Software RAID on Linux is contained in the | |
72 | Software-RAID mini-HOWTO, available from | |
73 | <http://www.tldp.org/docs.html#howto>. There you will also | |
74 | learn where to get the supporting user space utilities raidtools. | |
75 | ||
76 | To compile this as a module, choose M here: the module | |
77 | will be called raid0. | |
78 | ||
79 | If unsure, say Y. | |
80 | ||
81 | config MD_RAID1 | |
82 | tristate "RAID-1 (mirroring) mode" | |
83 | depends on BLK_DEV_MD | |
84 | ---help--- | |
85 | A RAID-1 set consists of several disk drives which are exact copies | |
86 | of each other. In the event of a mirror failure, the RAID driver | |
87 | will continue to use the operational mirrors in the set, providing | |
88 | an error free MD (multiple device) to the higher levels of the | |
89 | kernel. In a set with N drives, the available space is the capacity | |
90 | of a single drive, and the set protects against a failure of (N - 1) | |
91 | drives. | |
92 | ||
93 | Information about Software RAID on Linux is contained in the | |
94 | Software-RAID mini-HOWTO, available from | |
95 | <http://www.tldp.org/docs.html#howto>. There you will also | |
96 | learn where to get the supporting user space utilities raidtools. | |
97 | ||
98 | If you want to use such a RAID-1 set, say Y. To compile this code | |
99 | as a module, choose M here: the module will be called raid1. | |
100 | ||
101 | If unsure, say Y. | |
102 | ||
103 | config MD_RAID10 | |
08fb730c N |
104 | tristate "RAID-10 (mirrored striping) mode" |
105 | depends on BLK_DEV_MD | |
1da177e4 LT |
106 | ---help--- |
107 | RAID-10 provides a combination of striping (RAID-0) and | |
4d2554d0 | 108 | mirroring (RAID-1) with easier configuration and more flexible |
1da177e4 LT |
109 | layout. |
110 | Unlike RAID-0, but like RAID-1, RAID-10 requires all devices to | |
111 | be the same size (or at least, only as much as the smallest device | |
112 | will be used). | |
113 | RAID-10 provides a variety of layouts that provide different levels | |
114 | of redundancy and performance. | |
115 | ||
116 | RAID-10 requires mdadm-1.7.0 or later, available at: | |
117 | ||
118 | ftp://ftp.kernel.org/pub/linux/utils/raid/mdadm/ | |
119 | ||
120 | If unsure, say Y. | |
121 | ||
16a53ecc N |
122 | config MD_RAID456 |
123 | tristate "RAID-4/RAID-5/RAID-6 mode" | |
1da177e4 | 124 | depends on BLK_DEV_MD |
f5e70d0f | 125 | select RAID6_PQ |
14f09e2f | 126 | select LIBCRC32C |
9bc89cd8 DW |
127 | select ASYNC_MEMCPY |
128 | select ASYNC_XOR | |
ac6b53b6 DW |
129 | select ASYNC_PQ |
130 | select ASYNC_RAID6_RECOV | |
1da177e4 LT |
131 | ---help--- |
132 | A RAID-5 set of N drives with a capacity of C MB per drive provides | |
133 | the capacity of C * (N - 1) MB, and protects against a failure | |
134 | of a single drive. For a given sector (row) number, (N - 1) drives | |
135 | contain data sectors, and one drive contains the parity protection. | |
136 | For a RAID-4 set, the parity blocks are present on a single drive, | |
137 | while a RAID-5 set distributes the parity across the drives in one | |
138 | of the available parity distribution methods. | |
139 | ||
16a53ecc N |
140 | A RAID-6 set of N drives with a capacity of C MB per drive |
141 | provides the capacity of C * (N - 2) MB, and protects | |
142 | against a failure of any two drives. For a given sector | |
143 | (row) number, (N - 2) drives contain data sectors, and two | |
144 | drives contains two independent redundancy syndromes. Like | |
145 | RAID-5, RAID-6 distributes the syndromes across the drives | |
146 | in one of the available parity distribution methods. | |
147 | ||
1da177e4 LT |
148 | Information about Software RAID on Linux is contained in the |
149 | Software-RAID mini-HOWTO, available from | |
150 | <http://www.tldp.org/docs.html#howto>. There you will also | |
151 | learn where to get the supporting user space utilities raidtools. | |
152 | ||
16a53ecc | 153 | If you want to use such a RAID-4/RAID-5/RAID-6 set, say Y. To |
1da177e4 | 154 | compile this code as a module, choose M here: the module |
16a53ecc | 155 | will be called raid456. |
1da177e4 LT |
156 | |
157 | If unsure, say Y. | |
158 | ||
1da177e4 LT |
159 | config MD_MULTIPATH |
160 | tristate "Multipath I/O support" | |
161 | depends on BLK_DEV_MD | |
162 | help | |
93bd89a6 N |
163 | MD_MULTIPATH provides a simple multi-path personality for use |
164 | the MD framework. It is not under active development. New | |
165 | projects should consider using DM_MULTIPATH which has more | |
166 | features and more testing. | |
1da177e4 LT |
167 | |
168 | If unsure, say N. | |
169 | ||
170 | config MD_FAULTY | |
171 | tristate "Faulty test module for MD" | |
172 | depends on BLK_DEV_MD | |
173 | help | |
174 | The "faulty" module allows for a block device that occasionally returns | |
175 | read or write errors. It is useful for testing. | |
176 | ||
177 | In unsure, say N. | |
178 | ||
8e854e9c GR |
179 | |
180 | config MD_CLUSTER | |
181 | tristate "Cluster Support for MD (EXPERIMENTAL)" | |
182 | depends on BLK_DEV_MD | |
183 | depends on DLM | |
184 | default n | |
185 | ---help--- | |
186 | Clustering support for MD devices. This enables locking and | |
187 | synchronization across multiple systems on the cluster, so all | |
188 | nodes in the cluster can access the MD devices simultaneously. | |
189 | ||
190 | This brings the redundancy (and uptime) of RAID levels across the | |
191 | nodes of the cluster. | |
192 | ||
193 | If unsure, say N. | |
194 | ||
cafe5635 KO |
195 | source "drivers/md/bcache/Kconfig" |
196 | ||
2995fa78 | 197 | config BLK_DEV_DM_BUILTIN |
6341e62b | 198 | bool |
2995fa78 | 199 | |
1da177e4 LT |
200 | config BLK_DEV_DM |
201 | tristate "Device mapper support" | |
2995fa78 | 202 | select BLK_DEV_DM_BUILTIN |
1da177e4 LT |
203 | ---help--- |
204 | Device-mapper is a low level volume manager. It works by allowing | |
205 | people to specify mappings for ranges of logical sectors. Various | |
206 | mapping types are available, in addition people may write their own | |
207 | modules containing custom mappings if they wish. | |
208 | ||
209 | Higher level volume managers such as LVM2 use this driver. | |
210 | ||
211 | To compile this as a module, choose M here: the module will be | |
212 | called dm-mod. | |
213 | ||
214 | If unsure, say N. | |
215 | ||
17e149b8 MS |
216 | config DM_MQ_DEFAULT |
217 | bool "request-based DM: use blk-mq I/O path by default" | |
218 | depends on BLK_DEV_DM | |
219 | ---help--- | |
220 | This option enables the blk-mq based I/O path for request-based | |
221 | DM devices by default. With the option the dm_mod.use_blk_mq | |
222 | module/boot option defaults to Y, without it to N, but it can | |
223 | still be overriden either way. | |
224 | ||
225 | If unsure say N. | |
226 | ||
cc109201 | 227 | config DM_DEBUG |
6341e62b | 228 | bool "Device mapper debugging support" |
0149e57f | 229 | depends on BLK_DEV_DM |
cc109201 BR |
230 | ---help--- |
231 | Enable this for messages that may help debug device-mapper problems. | |
232 | ||
233 | If unsure, say N. | |
234 | ||
95d402f0 MP |
235 | config DM_BUFIO |
236 | tristate | |
d57916a0 | 237 | depends on BLK_DEV_DM |
95d402f0 MP |
238 | ---help--- |
239 | This interface allows you to do buffered I/O on a device and acts | |
240 | as a cache, holding recently-read blocks in memory and performing | |
241 | delayed writes. | |
242 | ||
2e8ed711 JT |
243 | config DM_DEBUG_BLOCK_MANAGER_LOCKING |
244 | bool "Block manager locking" | |
245 | depends on DM_BUFIO | |
246 | ---help--- | |
247 | Block manager locking can catch various metadata corruption issues. | |
248 | ||
249 | If unsure, say N. | |
250 | ||
86bad0c7 MP |
251 | config DM_DEBUG_BLOCK_STACK_TRACING |
252 | bool "Keep stack trace of persistent data block lock holders" | |
2e8ed711 | 253 | depends on STACKTRACE_SUPPORT && DM_DEBUG_BLOCK_MANAGER_LOCKING |
86bad0c7 MP |
254 | select STACKTRACE |
255 | ---help--- | |
256 | Enable this for messages that may help debug problems with the | |
257 | block manager locking used by thin provisioning and caching. | |
258 | ||
259 | If unsure, say N. | |
3f068040 | 260 | |
4f81a417 MS |
261 | config DM_BIO_PRISON |
262 | tristate | |
d57916a0 | 263 | depends on BLK_DEV_DM |
4f81a417 MS |
264 | ---help--- |
265 | Some bio locking schemes used by other device-mapper targets | |
266 | including thin provisioning. | |
267 | ||
991d9fa0 JT |
268 | source "drivers/md/persistent-data/Kconfig" |
269 | ||
1da177e4 LT |
270 | config DM_CRYPT |
271 | tristate "Crypt target support" | |
0149e57f | 272 | depends on BLK_DEV_DM |
1da177e4 | 273 | select CRYPTO |
3263263f | 274 | select CRYPTO_CBC |
1da177e4 LT |
275 | ---help--- |
276 | This device-mapper target allows you to create a device that | |
277 | transparently encrypts the data on it. You'll need to activate | |
278 | the ciphers you're going to use in the cryptoapi configuration. | |
279 | ||
cf352487 | 280 | For further information on dm-crypt and userspace tools see: |
6ed443c0 | 281 | <https://gitlab.com/cryptsetup/cryptsetup/wikis/DMCrypt> |
1da177e4 LT |
282 | |
283 | To compile this code as a module, choose M here: the module will | |
284 | be called dm-crypt. | |
285 | ||
286 | If unsure, say N. | |
287 | ||
288 | config DM_SNAPSHOT | |
0149e57f AK |
289 | tristate "Snapshot target" |
290 | depends on BLK_DEV_DM | |
55494bf2 | 291 | select DM_BUFIO |
1da177e4 | 292 | ---help--- |
4d2554d0 | 293 | Allow volume managers to take writable snapshots of a device. |
1da177e4 | 294 | |
991d9fa0 | 295 | config DM_THIN_PROVISIONING |
d57916a0 AK |
296 | tristate "Thin provisioning target" |
297 | depends on BLK_DEV_DM | |
991d9fa0 | 298 | select DM_PERSISTENT_DATA |
4f81a417 | 299 | select DM_BIO_PRISON |
991d9fa0 JT |
300 | ---help--- |
301 | Provides thin provisioning and snapshots that share a data store. | |
302 | ||
c6b4fcba JT |
303 | config DM_CACHE |
304 | tristate "Cache target (EXPERIMENTAL)" | |
305 | depends on BLK_DEV_DM | |
306 | default n | |
307 | select DM_PERSISTENT_DATA | |
308 | select DM_BIO_PRISON | |
309 | ---help--- | |
310 | dm-cache attempts to improve performance of a block device by | |
311 | moving frequently used data to a smaller, higher performance | |
312 | device. Different 'policy' plugins can be used to change the | |
313 | algorithms used to select which blocks are promoted, demoted, | |
314 | cleaned etc. It supports writeback and writethrough modes. | |
315 | ||
66a63635 JT |
316 | config DM_CACHE_SMQ |
317 | tristate "Stochastic MQ Cache Policy (EXPERIMENTAL)" | |
318 | depends on DM_CACHE | |
319 | default y | |
320 | ---help--- | |
321 | A cache policy that uses a multiqueue ordered by recent hits | |
322 | to select which blocks should be promoted and demoted. | |
323 | This is meant to be a general purpose policy. It prioritises | |
324 | reads over writes. This SMQ policy (vs MQ) offers the promise | |
325 | of less memory utilization, improved performance and increased | |
326 | adaptability in the face of changing workloads. | |
327 | ||
8735a813 HM |
328 | config DM_CACHE_CLEANER |
329 | tristate "Cleaner Cache Policy (EXPERIMENTAL)" | |
330 | depends on DM_CACHE | |
331 | default y | |
332 | ---help--- | |
333 | A simple cache policy that writes back all data to the | |
334 | origin. Used when decommissioning a dm-cache. | |
335 | ||
eec40579 JT |
336 | config DM_ERA |
337 | tristate "Era target (EXPERIMENTAL)" | |
338 | depends on BLK_DEV_DM | |
339 | default n | |
340 | select DM_PERSISTENT_DATA | |
341 | select DM_BIO_PRISON | |
342 | ---help--- | |
343 | dm-era tracks which parts of a block device are written to | |
344 | over time. Useful for maintaining cache coherency when using | |
345 | vendor snapshots. | |
346 | ||
1da177e4 | 347 | config DM_MIRROR |
0149e57f AK |
348 | tristate "Mirror target" |
349 | depends on BLK_DEV_DM | |
1da177e4 LT |
350 | ---help--- |
351 | Allow volume managers to mirror logical volumes, also | |
352 | needed for live data migration tools such as 'pvmove'. | |
353 | ||
5442851e MP |
354 | config DM_LOG_USERSPACE |
355 | tristate "Mirror userspace logging" | |
356 | depends on DM_MIRROR && NET | |
357 | select CONNECTOR | |
358 | ---help--- | |
359 | The userspace logging module provides a mechanism for | |
360 | relaying the dm-dirty-log API to userspace. Log designs | |
361 | which are more suited to userspace implementation (e.g. | |
362 | shared storage logs) or experimental logs can be implemented | |
363 | by leveraging this framework. | |
364 | ||
9d09e663 | 365 | config DM_RAID |
d9f691c3 | 366 | tristate "RAID 1/4/5/6/10 target" |
035220b3 | 367 | depends on BLK_DEV_DM |
b12d437b | 368 | select MD_RAID1 |
d9f691c3 | 369 | select MD_RAID10 |
9d09e663 N |
370 | select MD_RAID456 |
371 | select BLK_DEV_MD | |
372 | ---help--- | |
d9f691c3 | 373 | A dm target that supports RAID1, RAID10, RAID4, RAID5 and RAID6 mappings |
9d09e663 N |
374 | |
375 | A RAID-5 set of N drives with a capacity of C MB per drive provides | |
376 | the capacity of C * (N - 1) MB, and protects against a failure | |
377 | of a single drive. For a given sector (row) number, (N - 1) drives | |
378 | contain data sectors, and one drive contains the parity protection. | |
379 | For a RAID-4 set, the parity blocks are present on a single drive, | |
380 | while a RAID-5 set distributes the parity across the drives in one | |
381 | of the available parity distribution methods. | |
382 | ||
383 | A RAID-6 set of N drives with a capacity of C MB per drive | |
384 | provides the capacity of C * (N - 2) MB, and protects | |
385 | against a failure of any two drives. For a given sector | |
386 | (row) number, (N - 2) drives contain data sectors, and two | |
387 | drives contains two independent redundancy syndromes. Like | |
388 | RAID-5, RAID-6 distributes the syndromes across the drives | |
389 | in one of the available parity distribution methods. | |
390 | ||
1da177e4 | 391 | config DM_ZERO |
0149e57f AK |
392 | tristate "Zero target" |
393 | depends on BLK_DEV_DM | |
1da177e4 LT |
394 | ---help--- |
395 | A target that discards writes, and returns all zeroes for | |
396 | reads. Useful in some recovery situations. | |
397 | ||
398 | config DM_MULTIPATH | |
0149e57f AK |
399 | tristate "Multipath target" |
400 | depends on BLK_DEV_DM | |
fe9233fb CS |
401 | # nasty syntax but means make DM_MULTIPATH independent |
402 | # of SCSI_DH if the latter isn't defined but if | |
403 | # it is, DM_MULTIPATH must depend on it. We get a build | |
404 | # error if SCSI_DH=m and DM_MULTIPATH=y | |
294ab783 | 405 | depends on !SCSI_DH || SCSI |
1da177e4 LT |
406 | ---help--- |
407 | Allow volume managers to support multipath hardware. | |
408 | ||
fd5e0339 KU |
409 | config DM_MULTIPATH_QL |
410 | tristate "I/O Path Selector based on the number of in-flight I/Os" | |
411 | depends on DM_MULTIPATH | |
412 | ---help--- | |
413 | This path selector is a dynamic load balancer which selects | |
414 | the path with the least number of in-flight I/Os. | |
415 | ||
416 | If unsure, say N. | |
417 | ||
f392ba88 KU |
418 | config DM_MULTIPATH_ST |
419 | tristate "I/O Path Selector based on the service time" | |
420 | depends on DM_MULTIPATH | |
421 | ---help--- | |
422 | This path selector is a dynamic load balancer which selects | |
423 | the path expected to complete the incoming I/O in the shortest | |
424 | time. | |
425 | ||
426 | If unsure, say N. | |
427 | ||
26b9f228 | 428 | config DM_DELAY |
d57916a0 AK |
429 | tristate "I/O delaying target" |
430 | depends on BLK_DEV_DM | |
26b9f228 HM |
431 | ---help--- |
432 | A target that delays reads and/or writes and can send | |
433 | them to different devices. Useful for testing. | |
434 | ||
435 | If unsure, say N. | |
436 | ||
51e5b2bd | 437 | config DM_UEVENT |
e0b215da AK |
438 | bool "DM uevents" |
439 | depends on BLK_DEV_DM | |
51e5b2bd MA |
440 | ---help--- |
441 | Generate udev events for DM events. | |
442 | ||
3407ef52 | 443 | config DM_FLAKEY |
d57916a0 AK |
444 | tristate "Flakey target" |
445 | depends on BLK_DEV_DM | |
3407ef52 JB |
446 | ---help--- |
447 | A target that intermittently fails I/O for debugging purposes. | |
448 | ||
a4ffc152 | 449 | config DM_VERITY |
d57916a0 AK |
450 | tristate "Verity target support" |
451 | depends on BLK_DEV_DM | |
a4ffc152 MP |
452 | select CRYPTO |
453 | select CRYPTO_HASH | |
454 | select DM_BUFIO | |
455 | ---help--- | |
456 | This device-mapper target creates a read-only device that | |
457 | transparently validates the data on one underlying device against | |
458 | a pre-generated tree of cryptographic checksums stored on a second | |
459 | device. | |
460 | ||
461 | You'll need to activate the digests you're going to use in the | |
462 | cryptoapi configuration. | |
463 | ||
464 | To compile this code as a module, choose M here: the module will | |
465 | be called dm-verity. | |
466 | ||
467 | If unsure, say N. | |
468 | ||
a739ff3f ST |
469 | config DM_VERITY_FEC |
470 | bool "Verity forward error correction support" | |
471 | depends on DM_VERITY | |
472 | select REED_SOLOMON | |
473 | select REED_SOLOMON_DEC8 | |
474 | ---help--- | |
475 | Add forward error correction support to dm-verity. This option | |
476 | makes it possible to use pre-generated error correction data to | |
477 | recover from corrupted blocks. | |
478 | ||
479 | If unsure, say N. | |
480 | ||
9d0eb0ab JR |
481 | config DM_SWITCH |
482 | tristate "Switch target support (EXPERIMENTAL)" | |
483 | depends on BLK_DEV_DM | |
484 | ---help--- | |
485 | This device-mapper target creates a device that supports an arbitrary | |
486 | mapping of fixed-size regions of I/O across a fixed set of paths. | |
487 | The path used for any specific region can be switched dynamically | |
488 | by sending the target a message. | |
489 | ||
490 | To compile this code as a module, choose M here: the module will | |
491 | be called dm-switch. | |
492 | ||
493 | If unsure, say N. | |
494 | ||
0e9cebe7 JB |
495 | config DM_LOG_WRITES |
496 | tristate "Log writes target support" | |
497 | depends on BLK_DEV_DM | |
498 | ---help--- | |
499 | This device-mapper target takes two devices, one device to use | |
500 | normally, one to log all write operations done to the first device. | |
501 | This is for use by file system developers wishing to verify that | |
57d42487 | 502 | their fs is writing a consistent file system at all times by allowing |
0e9cebe7 JB |
503 | them to replay the log in a variety of ways and to check the |
504 | contents. | |
505 | ||
506 | To compile this code as a module, choose M here: the module will | |
507 | be called dm-log-writes. | |
508 | ||
509 | If unsure, say N. | |
510 | ||
afd44034 | 511 | endif # MD |