Merge to Fedora kernel-2.6.18-1.2224_FC5 patched with stable patch-2.6.18.1-vs2.0...
[linux-2.6.git] / drivers / md / Kconfig
index a86569d..bf869ed 100644 (file)
@@ -90,10 +90,10 @@ config MD_RAID10
        depends on BLK_DEV_MD && EXPERIMENTAL
        ---help---
          RAID-10 provides a combination of striping (RAID-0) and
-         mirroring (RAID-1) with easier configuration and more flexable
+         mirroring (RAID-1) with easier configuration and more flexible
          layout.
          Unlike RAID-0, but like RAID-1, RAID-10 requires all devices to
-         be the same size (or atleast, only as much as the smallest device
+         be the same size (or at least, only as much as the smallest device
          will be used).
          RAID-10 provides a variety of layouts that provide different levels
          of redundancy and performance.
@@ -102,9 +102,10 @@ config MD_RAID10
 
          ftp://ftp.kernel.org/pub/linux/utils/raid/mdadm/
 
+         If unsure, say Y.
 
-config MD_RAID5
-       tristate "RAID-4/RAID-5 mode"
+config MD_RAID456
+       tristate "RAID-4/RAID-5/RAID-6 mode"
        depends on BLK_DEV_MD
        ---help---
          A RAID-5 set of N drives with a capacity of C MB per drive provides
@@ -115,42 +116,51 @@ config MD_RAID5
          while a RAID-5 set distributes the parity across the drives in one
          of the available parity distribution methods.
 
+         A RAID-6 set of N drives with a capacity of C MB per drive
+         provides the capacity of C * (N - 2) MB, and protects
+         against a failure of any two drives. For a given sector
+         (row) number, (N - 2) drives contain data sectors, and two
+         drives contains two independent redundancy syndromes.  Like
+         RAID-5, RAID-6 distributes the syndromes across the drives
+         in one of the available parity distribution methods.
+
          Information about Software RAID on Linux is contained in the
          Software-RAID mini-HOWTO, available from
          <http://www.tldp.org/docs.html#howto>. There you will also
          learn where to get the supporting user space utilities raidtools.
 
-         If you want to use such a RAID-4/RAID-5 set, say Y.  To compile
-         this code as a module, choose M here: the module will be called raid5.
+         If you want to use such a RAID-4/RAID-5/RAID-6 set, say Y.  To
+         compile this code as a module, choose M here: the module
+         will be called raid456.
 
          If unsure, say Y.
 
-config MD_RAID6
-       tristate "RAID-6 mode (EXPERIMENTAL)"
-       depends on BLK_DEV_MD && EXPERIMENTAL
+config MD_RAID5_RESHAPE
+       bool "Support adding drives to a raid-5 array (experimental)"
+       depends on MD_RAID456 && EXPERIMENTAL
        ---help---
-         WARNING: RAID-6 is currently highly experimental.  If you
-         use it, there is no guarantee whatsoever that it won't
-         destroy your data, eat your disk drives, insult your mother,
-         or re-appoint George W. Bush.
+         A RAID-5 set can be expanded by adding extra drives. This
+         requires "restriping" the array which means (almost) every
+         block must be written to a different place.
 
-         A RAID-6 set of N drives with a capacity of C MB per drive
-         provides the capacity of C * (N - 2) MB, and protects
-         against a failure of any two drives. For a given sector
-         (row) number, (N - 2) drives contain data sectors, and two
-         drives contains two independent redundancy syndromes.  Like
-         RAID-5, RAID-6 distributes the syndromes across the drives
-         in one of the available parity distribution methods.
-
-         RAID-6 requires mdadm-1.5.0 or later, available at:
+          This option allows such restriping to be done while the array
+         is online.  However it is still EXPERIMENTAL code.  It should
+         work, but please be sure that you have backups.
 
-         ftp://ftp.kernel.org/pub/linux/utils/raid/mdadm/
+         You will need mdadm version 2.4.1 or later to use this
+         feature safely.  During the early stage of reshape there is
+         a critical section where live data is being over-written.  A
+         crash during this time needs extra care for recovery.  The
+         newer mdadm takes a copy of the data in the critical section
+         and will restore it, if necessary, after a crash.
 
-         If you want to use such a RAID-6 set, say Y.  To compile
-         this code as a module, choose M here: the module will be
-         called raid6.
+         The mdadm usage is e.g.
+              mdadm --grow /dev/md1 --raid-disks=6
+         to grow '/dev/md1' to having 6 disks.
 
-         If unsure, say N.
+         Note: The array can only be expanded, not contracted.
+         There should be enough spares already present to make the new
+         array workable.
 
 config MD_MULTIPATH
        tristate "Multipath I/O support"
@@ -211,7 +221,7 @@ config DM_SNAPSHOT
        tristate "Snapshot target (EXPERIMENTAL)"
        depends on BLK_DEV_DM && EXPERIMENTAL
        ---help---
-         Allow volume managers to take writeable snapshots of a device.
+         Allow volume managers to take writable snapshots of a device.
 
 config DM_MIRROR
        tristate "Mirror target (EXPERIMENTAL)"
@@ -227,5 +237,17 @@ config DM_ZERO
          A target that discards writes, and returns all zeroes for
          reads.  Useful in some recovery situations.
 
+config DM_MULTIPATH
+       tristate "Multipath target (EXPERIMENTAL)"
+       depends on BLK_DEV_DM && EXPERIMENTAL
+       ---help---
+         Allow volume managers to support multipath hardware.
+
+config DM_MULTIPATH_EMC
+       tristate "EMC CX/AX multipath support (EXPERIMENTAL)"
+       depends on DM_MULTIPATH && BLK_DEV_DM && EXPERIMENTAL
+       ---help---
+         Multipath support for EMC CX/AX series hardware.
+
 endmenu