xref: /openbmc/linux/drivers/md/Kconfig (revision 64c70b1c)
1#
2# Block device driver configuration
3#
4
5if BLOCK
6
7menu "Multi-device support (RAID and LVM)"
8
9config MD
10	bool "Multiple devices driver support (RAID and LVM)"
11	help
12	  Support multiple physical spindles through a single logical device.
13	  Required for RAID and logical volume management.
14
15config BLK_DEV_MD
16	tristate "RAID support"
17	depends on MD
18	---help---
19	  This driver lets you combine several hard disk partitions into one
20	  logical block device. This can be used to simply append one
21	  partition to another one or to combine several redundant hard disks
22	  into a RAID1/4/5 device so as to provide protection against hard
23	  disk failures. This is called "Software RAID" since the combining of
24	  the partitions is done by the kernel. "Hardware RAID" means that the
25	  combining is done by a dedicated controller; if you have such a
26	  controller, you do not need to say Y here.
27
28	  More information about Software RAID on Linux is contained in the
29	  Software RAID mini-HOWTO, available from
30	  <http://www.tldp.org/docs.html#howto>. There you will also learn
31	  where to get the supporting user space utilities raidtools.
32
33	  If unsure, say N.
34
35config MD_LINEAR
36	tristate "Linear (append) mode"
37	depends on BLK_DEV_MD
38	---help---
39	  If you say Y here, then your multiple devices driver will be able to
40	  use the so-called linear mode, i.e. it will combine the hard disk
41	  partitions by simply appending one to the other.
42
43	  To compile this as a module, choose M here: the module
44	  will be called linear.
45
46	  If unsure, say Y.
47
48config MD_RAID0
49	tristate "RAID-0 (striping) 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 raid0 mode, i.e. it will combine the hard disk
54	  partitions into one logical device in such a fashion as to fill them
55	  up evenly, one chunk here and one chunk there. This will increase
56	  the throughput rate if the partitions reside on distinct disks.
57
58	  Information about Software RAID on Linux is contained in the
59	  Software-RAID mini-HOWTO, available from
60	  <http://www.tldp.org/docs.html#howto>. There you will also
61	  learn where to get the supporting user space utilities raidtools.
62
63	  To compile this as a module, choose M here: the module
64	  will be called raid0.
65
66	  If unsure, say Y.
67
68config MD_RAID1
69	tristate "RAID-1 (mirroring) mode"
70	depends on BLK_DEV_MD
71	---help---
72	  A RAID-1 set consists of several disk drives which are exact copies
73	  of each other.  In the event of a mirror failure, the RAID driver
74	  will continue to use the operational mirrors in the set, providing
75	  an error free MD (multiple device) to the higher levels of the
76	  kernel.  In a set with N drives, the available space is the capacity
77	  of a single drive, and the set protects against a failure of (N - 1)
78	  drives.
79
80	  Information about Software RAID on Linux is contained in the
81	  Software-RAID mini-HOWTO, available from
82	  <http://www.tldp.org/docs.html#howto>.  There you will also
83	  learn where to get the supporting user space utilities raidtools.
84
85	  If you want to use such a RAID-1 set, say Y.  To compile this code
86	  as a module, choose M here: the module will be called raid1.
87
88	  If unsure, say Y.
89
90config MD_RAID10
91	tristate "RAID-10 (mirrored striping) mode (EXPERIMENTAL)"
92	depends on BLK_DEV_MD && EXPERIMENTAL
93	---help---
94	  RAID-10 provides a combination of striping (RAID-0) and
95	  mirroring (RAID-1) with easier configuration and more flexible
96	  layout.
97	  Unlike RAID-0, but like RAID-1, RAID-10 requires all devices to
98	  be the same size (or at least, only as much as the smallest device
99	  will be used).
100	  RAID-10 provides a variety of layouts that provide different levels
101	  of redundancy and performance.
102
103	  RAID-10 requires mdadm-1.7.0 or later, available at:
104
105	  ftp://ftp.kernel.org/pub/linux/utils/raid/mdadm/
106
107	  If unsure, say Y.
108
109config MD_RAID456
110	tristate "RAID-4/RAID-5/RAID-6 mode"
111	depends on BLK_DEV_MD
112	---help---
113	  A RAID-5 set of N drives with a capacity of C MB per drive provides
114	  the capacity of C * (N - 1) MB, and protects against a failure
115	  of a single drive. For a given sector (row) number, (N - 1) drives
116	  contain data sectors, and one drive contains the parity protection.
117	  For a RAID-4 set, the parity blocks are present on a single drive,
118	  while a RAID-5 set distributes the parity across the drives in one
119	  of the available parity distribution methods.
120
121	  A RAID-6 set of N drives with a capacity of C MB per drive
122	  provides the capacity of C * (N - 2) MB, and protects
123	  against a failure of any two drives. For a given sector
124	  (row) number, (N - 2) drives contain data sectors, and two
125	  drives contains two independent redundancy syndromes.  Like
126	  RAID-5, RAID-6 distributes the syndromes across the drives
127	  in one of the available parity distribution methods.
128
129	  Information about Software RAID on Linux is contained in the
130	  Software-RAID mini-HOWTO, available from
131	  <http://www.tldp.org/docs.html#howto>. There you will also
132	  learn where to get the supporting user space utilities raidtools.
133
134	  If you want to use such a RAID-4/RAID-5/RAID-6 set, say Y.  To
135	  compile this code as a module, choose M here: the module
136	  will be called raid456.
137
138	  If unsure, say Y.
139
140config MD_RAID5_RESHAPE
141	bool "Support adding drives to a raid-5 array"
142	depends on MD_RAID456
143	default y
144	---help---
145	  A RAID-5 set can be expanded by adding extra drives. This
146	  requires "restriping" the array which means (almost) every
147	  block must be written to a different place.
148
149          This option allows such restriping to be done while the array
150	  is online.
151
152	  You will need mdadm version 2.4.1 or later to use this
153	  feature safely.  During the early stage of reshape there is
154	  a critical section where live data is being over-written.  A
155	  crash during this time needs extra care for recovery.  The
156	  newer mdadm takes a copy of the data in the critical section
157	  and will restore it, if necessary, after a crash.
158
159	  The mdadm usage is e.g.
160	       mdadm --grow /dev/md1 --raid-disks=6
161	  to grow '/dev/md1' to having 6 disks.
162
163	  Note: The array can only be expanded, not contracted.
164	  There should be enough spares already present to make the new
165	  array workable.
166
167	  If unsure, say Y.
168
169config MD_MULTIPATH
170	tristate "Multipath I/O support"
171	depends on BLK_DEV_MD
172	help
173	  Multipath-IO is the ability of certain devices to address the same
174	  physical disk over multiple 'IO paths'. The code ensures that such
175	  paths can be defined and handled at runtime, and ensures that a
176	  transparent failover to the backup path(s) happens if a IO errors
177	  arrives on the primary path.
178
179	  If unsure, say N.
180
181config MD_FAULTY
182	tristate "Faulty test module for MD"
183	depends on BLK_DEV_MD
184	help
185	  The "faulty" module allows for a block device that occasionally returns
186	  read or write errors.  It is useful for testing.
187
188	  In unsure, say N.
189
190config BLK_DEV_DM
191	tristate "Device mapper support"
192	depends on MD
193	---help---
194	  Device-mapper is a low level volume manager.  It works by allowing
195	  people to specify mappings for ranges of logical sectors.  Various
196	  mapping types are available, in addition people may write their own
197	  modules containing custom mappings if they wish.
198
199	  Higher level volume managers such as LVM2 use this driver.
200
201	  To compile this as a module, choose M here: the module will be
202	  called dm-mod.
203
204	  If unsure, say N.
205
206config DM_DEBUG
207	boolean "Device mapper debugging support"
208	depends on BLK_DEV_DM && EXPERIMENTAL
209	---help---
210	  Enable this for messages that may help debug device-mapper problems.
211
212	  If unsure, say N.
213
214config DM_CRYPT
215	tristate "Crypt target support"
216	depends on BLK_DEV_DM && EXPERIMENTAL
217	select CRYPTO
218	select CRYPTO_CBC
219	---help---
220	  This device-mapper target allows you to create a device that
221	  transparently encrypts the data on it. You'll need to activate
222	  the ciphers you're going to use in the cryptoapi configuration.
223
224	  Information on how to use dm-crypt can be found on
225
226	  <http://www.saout.de/misc/dm-crypt/>
227
228	  To compile this code as a module, choose M here: the module will
229	  be called dm-crypt.
230
231	  If unsure, say N.
232
233config DM_SNAPSHOT
234       tristate "Snapshot target (EXPERIMENTAL)"
235       depends on BLK_DEV_DM && EXPERIMENTAL
236       ---help---
237         Allow volume managers to take writable snapshots of a device.
238
239config DM_MIRROR
240       tristate "Mirror target (EXPERIMENTAL)"
241       depends on BLK_DEV_DM && EXPERIMENTAL
242       ---help---
243         Allow volume managers to mirror logical volumes, also
244         needed for live data migration tools such as 'pvmove'.
245
246config DM_ZERO
247	tristate "Zero target (EXPERIMENTAL)"
248	depends on BLK_DEV_DM && EXPERIMENTAL
249	---help---
250	  A target that discards writes, and returns all zeroes for
251	  reads.  Useful in some recovery situations.
252
253config DM_MULTIPATH
254	tristate "Multipath target (EXPERIMENTAL)"
255	depends on BLK_DEV_DM && EXPERIMENTAL
256	---help---
257	  Allow volume managers to support multipath hardware.
258
259config DM_MULTIPATH_EMC
260	tristate "EMC CX/AX multipath support (EXPERIMENTAL)"
261	depends on DM_MULTIPATH && BLK_DEV_DM && EXPERIMENTAL
262	---help---
263	  Multipath support for EMC CX/AX series hardware.
264
265config DM_DELAY
266	tristate "I/O delaying target (EXPERIMENTAL)"
267	depends on BLK_DEV_DM && EXPERIMENTAL
268	---help---
269	A target that delays reads and/or writes and can send
270	them to different devices.  Useful for testing.
271
272	If unsure, say N.
273
274endmenu
275
276endif
277