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