# SPDX-License-Identifier: GPL-2.0-only## Block device driver configuration# menuconfig MD bool "Multiple devices driver support (RAID and LVM)" depends on BLOCK help Support multiple physical spindles through a single logical device. Required for RAID and logical volume management. if MD config BLK_DEV_MD tristate "RAID support" select BLOCK_HOLDER_DEPRECATED if SYSFS select BUFFER_HEAD # BLOCK_LEGACY_AUTOLOAD requirement should be removed # after relevant mdadm enhancements - to make "names=yes" # the default - are widely available. select BLOCK_LEGACY_AUTOLOAD help This driver lets you combine several hard disk partitions into one logical block device. This can be used to simply append one partition to another one or to combine several redundant hard disks into a RAID1/4/5 device so as to provide protection against hard disk failures. This is called "Software RAID" since the combining of the partitions is done by the kernel. "Hardware RAID" means that the combining is done by a dedicated controller; if you have such a controller, you do not need to say Y here. More information about Software RAID on Linux is contained in the Software RAID mini-HOWTO, available from <https://www.tldp.org/docs.html#howto>. There you will also learn where to get the supporting user space utilities raidtools. If unsure, say N. config MD_BITMAP bool "MD RAID bitmap support" default y depends on BLK_DEV_MD help If you say Y here, support for the write intent bitmap will be enabled. The bitmap can be used to optimize resync speed after power failure or readding a disk, limiting it to recorded dirty sectors in bitmap. This feature can be added to existing MD array or MD array can be created with bitmap via mdadm(8). If unsure, say Y. config MD_LLBITMAP bool "MD RAID lockless bitmap support" depends on BLK_DEV_MD help If you say Y here, support for the lockless write intent bitmap will be enabled. Note, this is an experimental feature. If unsure, say N. config MD_AUTODETECT bool "Autodetect RAID arrays during kernel boot" depends on BLK_DEV_MD=y default y help If you say Y here, then the kernel will try to autodetect raid arrays as part of its boot process. If you don't use raid and say Y, this autodetection can cause a several-second delay in the boot time due to various synchronisation steps that are part of this step. If unsure, say Y. config MD_BITMAP_FILE bool "MD bitmap file support (deprecated)" default y depends on MD_BITMAP help If you say Y here, support for write intent bitmaps in files on an external file system is enabled. This is an alternative to the internal bitmaps near the MD superblock, and very problematic code that abuses various kernel APIs and can only work with files on a file system not actually sitting on the MD device. config MD_LINEAR tristate "Linear (append) mode" depends on BLK_DEV_MD help If you say Y here, then your multiple devices driver will be able to use the so-called linear mode, i.e. it will combine the hard disk partitions by simply appending one to the other. To compile this as a module, choose M here: the module will be called linear. If unsure, say Y. config MD_RAID0 tristate "RAID-0 (striping) mode" depends on BLK_DEV_MD help If you say Y here, then your multiple devices driver will be able to use the so-called raid0 mode, i.e. it will combine the hard disk partitions into one logical device in such a fashion as to fill them up evenly, one chunk here and one chunk there. This will increase the throughput rate if the partitions reside on distinct disks. Information about Software RAID on Linux is contained in the Software-RAID mini-HOWTO, available from <https://www.tldp.org/docs.html#howto>. There you will also learn where to get the supporting user space utilities raidtools. To compile this as a module, choose M here: the module will be called raid0. If unsure, say Y. config MD_RAID1 tristate "RAID-1 (mirroring) mode" depends on BLK_DEV_MD help A RAID-1 set consists of several disk drives which are exact copies of each other. In the event of a mirror failure, the RAID driver will continue to use the operational mirrors in the set, providing an error free MD (multiple device) to the higher levels of the kernel. In a set with N drives, the available space is the capacity of a single drive, and the set protects against a failure of (N - 1) drives. Information about Software RAID on Linux is contained in the Software-RAID mini-HOWTO, available from <https://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-1 set, say Y. To compile this code as a module, choose M here: the module will be called raid1. If unsure, say Y. config MD_RAID10 tristate "RAID-10 (mirrored striping) mode" depends on BLK_DEV_MD help RAID-10 provides a combination of striping (RAID-0) and 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 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. RAID-10 requires mdadm-1.7.0 or later, available at: https://www.kernel.org/pub/linux/utils/raid/mdadm/ If unsure, say Y. config MD_RAID456 tristate "RAID-4/RAID-5/RAID-6 mode" depends on BLK_DEV_MD select RAID6_PQ select CRC32 select ASYNC_MEMCPY select ASYNC_XOR select ASYNC_PQ select ASYNC_RAID6_RECOV help A RAID-5 set of N drives with a capacity of C MB per drive provides the capacity of C * (N - 1) MB, and protects against a failure of a single drive. For a given sector (row) number, (N - 1) drives contain data sectors, and one drive contains the parity protection. For a RAID-4 set, the parity blocks are present on a single drive, 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 <https://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/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_CLUSTER tristate "Cluster Support for MD" select MD_BITMAP depends on BLK_DEV_MD depends on DLM default n help Clustering support for MD devices. This enables locking and synchronization across multiple systems on the cluster, so all nodes in the cluster can access the MD devices simultaneously. This brings the redundancy (and uptime) of RAID levels across the nodes of the cluster. Currently, it can work with raid1 and raid10 (limited support). If unsure, say N. source "drivers/md/bcache/Kconfig" config BLK_DEV_DM_BUILTIN bool config BLK_DEV_DM tristate "Device mapper support" select BLOCK_HOLDER_DEPRECATED if SYSFS select BLK_DEV_DM_BUILTIN select BLK_MQ_STACKING select CRYPTO_LIB_SHA256 if IMA depends on DAX || DAX=n help Device-mapper is a low level volume manager. It works by allowing people to specify mappings for ranges of logical sectors. Various mapping types are available, in addition people may write their own modules containing custom mappings if they wish. Higher level volume managers such as LVM2 use this driver. To compile this as a module, choose M here: the module will be called dm-mod. If unsure, say N. config DM_DEBUG bool "Device mapper debugging support" depends on BLK_DEV_DM help Enable this for messages that may help debug device-mapper problems. If unsure, say N. config DM_BUFIO tristate depends on BLK_DEV_DM help This interface allows you to do buffered I/O on a device and acts as a cache, holding recently-read blocks in memory and performing delayed writes. config DM_DEBUG_BLOCK_MANAGER_LOCKING bool "Block manager locking" depends on DM_BUFIO help Block manager locking can catch various metadata corruption issues. If unsure, say N. config DM_DEBUG_BLOCK_STACK_TRACING bool "Keep stack trace of persistent data block lock holders" depends on STACKTRACE_SUPPORT && DM_DEBUG_BLOCK_MANAGER_LOCKING select STACKTRACE help Enable this for messages that may help debug problems with the block manager locking used by thin provisioning and caching. If unsure, say N. config DM_BIO_PRISON tristate depends on BLK_DEV_DM help Some bio locking schemes used by other device-mapper targets including thin provisioning. source "drivers/md/persistent-data/Kconfig" config DM_UNSTRIPED tristate "Unstriped target" depends on BLK_DEV_DM help Unstripes I/O so it is issued solely on a single drive in a HW RAID0 or dm-striped target. config DM_CRYPT tristate "Crypt target support" depends on BLK_DEV_DM depends on (ENCRYPTED_KEYS || ENCRYPTED_KEYS=n) depends on (TRUSTED_KEYS || TRUSTED_KEYS=n) select CRC32 select CRYPTO select CRYPTO_CBC select CRYPTO_ESSIV select CRYPTO_LIB_AES select CRYPTO_LIB_MD5 # needed by lmk IV mode help This device-mapper target allows you to create a device that transparently encrypts the data on it. You'll need to activate the ciphers you're going to use in the cryptoapi configuration. For further information on dm-crypt and userspace tools see: <https://gitlab.com/cryptsetup/cryptsetup/wikis/DMCrypt> To compile this code as a module, choose M here: the module will be called dm-crypt. If unsure, say N. config DM_INLINECRYPT tristate "Inline encryption target support" depends on BLK_DEV_DM depends on (KEYS || KEYS=n) depends on BLK_INLINE_ENCRYPTION help This device-mapper target is similar to dm-crypt, but it uses the blk-crypto API instead of the regular crypto API. This allows it to take advantage of inline encryption hardware such as that commonly built into UFS host controllers. config DM_SNAPSHOT tristate "Snapshot target" depends on BLK_DEV_DM select DM_BUFIO help Allow volume managers to take writable snapshots of a device. config DM_THIN_PROVISIONING tristate "Thin provisioning target" depends on BLK_DEV_DM select DM_PERSISTENT_DATA select DM_BIO_PRISON help Provides thin provisioning and snapshots that share a data store. config DM_CACHE tristate "Cache target (EXPERIMENTAL)" depends on BLK_DEV_DM default n select DM_PERSISTENT_DATA select DM_BIO_PRISON help dm-cache attempts to improve performance of a block device by moving frequently used data to a smaller, higher performance device. Different 'policy' plugins can be used to change the algorithms used to select which blocks are promoted, demoted, cleaned etc. It supports writeback and writethrough modes. config DM_CACHE_SMQ tristate "Stochastic MQ Cache Policy (EXPERIMENTAL)" depends on DM_CACHE default y help A cache policy that uses a multiqueue ordered by recent hits to select which blocks should be promoted and demoted. This is meant to be a general purpose policy. It prioritises reads over writes. This SMQ policy (vs MQ) offers the promise of less memory utilization, improved performance and increased adaptability in the face of changing workloads. config DM_WRITECACHE tristate "Writecache target" depends on BLK_DEV_DM help The writecache target caches writes on persistent memory or SSD. It is intended for databases or other programs that need extremely low commit latency. The writecache target doesn't cache reads because reads are supposed to be cached in standard RAM. config DM_EBS tristate "Emulated block size target (EXPERIMENTAL)" depends on BLK_DEV_DM && !HIGHMEM select DM_BUFIO help dm-ebs emulates smaller logical block size on backing devices with larger ones (e.g. 512 byte sectors on 4K native disks). config DM_ERA tristate "Era target (EXPERIMENTAL)" depends on BLK_DEV_DM default n select DM_PERSISTENT_DATA select DM_BIO_PRISON help dm-era tracks which parts of a block device are written to over time. Useful for maintaining cache coherency when using vendor snapshots. config DM_CLONE tristate "Clone target (EXPERIMENTAL)" depends on BLK_DEV_DM default n select DM_PERSISTENT_DATA help dm-clone produces a one-to-one copy of an existing, read-only source device into a writable destination device. The cloned device is visible/mountable immediately and the copy of the source device to the destination device happens in the background, in parallel with user I/O. If unsure, say N. config DM_MIRROR tristate "Mirror target" depends on BLK_DEV_DM help Allow volume managers to mirror logical volumes, also needed for live data migration tools such as 'pvmove'. config DM_LOG_USERSPACE tristate "Mirror userspace logging" depends on DM_MIRROR && NET select CONNECTOR help The userspace logging module provides a mechanism for relaying the dm-dirty-log API to userspace. Log designs which are more suited to userspace implementation (e.g. shared storage logs) or experimental logs can be implemented by leveraging this framework. config DM_RAID tristate "RAID 1/4/5/6/10 target" depends on BLK_DEV_DM select MD_RAID0 select MD_RAID1 select MD_RAID10 select MD_RAID456 select MD_BITMAP select BLK_DEV_MD help A dm target that supports RAID1, RAID10, RAID4, RAID5 and RAID6 mappings A RAID-5 set of N drives with a capacity of C MB per drive provides the capacity of C * (N - 1) MB, and protects against a failure of a single drive. For a given sector (row) number, (N - 1) drives contain data sectors, and one drive contains the parity protection. For a RAID-4 set, the parity blocks are present on a single drive, 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. config DM_ZERO tristate "Zero target" depends on BLK_DEV_DM help A target that discards writes, and returns all zeroes for reads. Useful in some recovery situations. config DM_MULTIPATH tristate "Multipath target" depends on BLK_DEV_DM # nasty syntax but means make DM_MULTIPATH independent # of SCSI_DH if the latter isn't defined but if # it is, DM_MULTIPATH must depend on it. We get a build # error if SCSI_DH=m and DM_MULTIPATH=y depends on !SCSI_DH || SCSI help Allow volume managers to support multipath hardware. config DM_MULTIPATH_QL tristate "I/O Path Selector based on the number of in-flight I/Os" depends on DM_MULTIPATH help This path selector is a dynamic load balancer which selects the path with the least number of in-flight I/Os. If unsure, say N. config DM_MULTIPATH_ST tristate "I/O Path Selector based on the service time" depends on DM_MULTIPATH help This path selector is a dynamic load balancer which selects the path expected to complete the incoming I/O in the shortest time. If unsure, say N. config DM_MULTIPATH_HST tristate "I/O Path Selector based on historical service time" depends on DM_MULTIPATH help This path selector is a dynamic load balancer which selectsLines 1–500 of 708. Load more
# SPDX-License-Identifier: GPL-2.0-only # # Block device driver configuration # menuconfig MD bool "Multiple devices driver support (RAID and LVM)" depends on BLOCK help Support multiple physical spindles through a single logical device. Required for RAID and logical volume management. if MD config BLK_DEV_MD tristate "RAID support" select BLOCK_HOLDER_DEPRECATED if SYSFS select BUFFER_HEAD # BLOCK_LEGACY_AUTOLOAD requirement should be removed # after relevant mdadm enhancements - to make "names=yes" # the default - are widely available. select BLOCK_LEGACY_AUTOLOAD help This driver lets you combine several hard disk partitions into one logical block device. This can be used to simply append one partition to another one or to combine several redundant hard disks into a RAID1/4/5 device so as to provide protection against hard disk failures. This is called "Software RAID" since the combining of the partitions is done by the kernel. "Hardware RAID" means that the combining is done by a dedicated controller; if you have such a controller, you do not need to say Y here. More information about Software RAID on Linux is contained in the Software RAID mini-HOWTO, available from <https://www.tldp.org/docs.html#howto>. There you will also learn where to get the supporting user space utilities raidtools. If unsure, say N. config MD_BITMAP bool "MD RAID bitmap support" default y depends on BLK_DEV_MD help If you say Y here, support for the write intent bitmap will be enabled. The bitmap can be used to optimize resync speed after power failure or readding a disk, limiting it to recorded dirty sectors in bitmap. This feature can be added to existing MD array or MD array can be created with bitmap via mdadm(8). If unsure, say Y. config MD_LLBITMAP bool "MD RAID lockless bitmap support" depends on BLK_DEV_MD help If you say Y here, support for the lockless write intent bitmap will be enabled. Note, this is an experimental feature. If unsure, say N. config MD_AUTODETECT bool "Autodetect RAID arrays during kernel boot" depends on BLK_DEV_MD=y default y help If you say Y here, then the kernel will try to autodetect raid arrays as part of its boot process. If you don't use raid and say Y, this autodetection can cause a several-second delay in the boot time due to various synchronisation steps that are part of this step. If unsure, say Y. config MD_BITMAP_FILE bool "MD bitmap file support (deprecated)" default y depends on MD_BITMAP help If you say Y here, support for write intent bitmaps in files on an external file system is enabled. This is an alternative to the internal bitmaps near the MD superblock, and very problematic code that abuses various kernel APIs and can only work with files on a file system not actually sitting on the MD device. config MD_LINEAR tristate "Linear (append) mode" depends on BLK_DEV_MD help If you say Y here, then your multiple devices driver will be able to use the so-called linear mode, i.e. it will combine the hard disk partitions by simply appending one to the other. To compile this as a module, choose M here: the module will be called linear. If unsure, say Y. config MD_RAID0 tristate "RAID-0 (striping) mode" depends on BLK_DEV_MD help If you say Y here, then your multiple devices driver will be able to use the so-called raid0 mode, i.e. it will combine the hard disk partitions into one logical device in such a fashion as to fill them up evenly, one chunk here and one chunk there. This will increase the throughput rate if the partitions reside on distinct disks. Information about Software RAID on Linux is contained in the Software-RAID mini-HOWTO, available from <https://www.tldp.org/docs.html#howto>. There you will also learn where to get the supporting user space utilities raidtools. To compile this as a module, choose M here: the module will be called raid0. If unsure, say Y. config MD_RAID1 tristate "RAID-1 (mirroring) mode" depends on BLK_DEV_MD help A RAID-1 set consists of several disk drives which are exact copies of each other. In the event of a mirror failure, the RAID driver will continue to use the operational mirrors in the set, providing an error free MD (multiple device) to the higher levels of the kernel. In a set with N drives, the available space is the capacity of a single drive, and the set protects against a failure of (N - 1) drives. Information about Software RAID on Linux is contained in the Software-RAID mini-HOWTO, available from <https://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-1 set, say Y. To compile this code as a module, choose M here: the module will be called raid1. If unsure, say Y. config MD_RAID10 tristate "RAID-10 (mirrored striping) mode" depends on BLK_DEV_MD help RAID-10 provides a combination of striping (RAID-0) and 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 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. RAID-10 requires mdadm-1.7.0 or later, available at: https://www.kernel.org/pub/linux/utils/raid/mdadm/ If unsure, say Y. config MD_RAID456 tristate "RAID-4/RAID-5/RAID-6 mode" depends on BLK_DEV_MD select RAID6_PQ select CRC32 select ASYNC_MEMCPY select ASYNC_XOR select ASYNC_PQ select ASYNC_RAID6_RECOV help A RAID-5 set of N drives with a capacity of C MB per drive provides the capacity of C * (N - 1) MB, and protects against a failure of a single drive. For a given sector (row) number, (N - 1) drives contain data sectors, and one drive contains the parity protection. For a RAID-4 set, the parity blocks are present on a single drive, 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 <https://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/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_CLUSTER tristate "Cluster Support for MD" select MD_BITMAP depends on BLK_DEV_MD depends on DLM default n help Clustering support for MD devices. This enables locking and synchronization across multiple systems on the cluster, so all nodes in the cluster can access the MD devices simultaneously. This brings the redundancy (and uptime) of RAID levels across the nodes of the cluster. Currently, it can work with raid1 and raid10 (limited support). If unsure, say N. source "drivers/md/bcache/Kconfig" config BLK_DEV_DM_BUILTIN bool config BLK_DEV_DM tristate "Device mapper support" select BLOCK_HOLDER_DEPRECATED if SYSFS select BLK_DEV_DM_BUILTIN select BLK_MQ_STACKING select CRYPTO_LIB_SHA256 if IMA depends on DAX || DAX=n help Device-mapper is a low level volume manager. It works by allowing people to specify mappings for ranges of logical sectors. Various mapping types are available, in addition people may write their own modules containing custom mappings if they wish. Higher level volume managers such as LVM2 use this driver. To compile this as a module, choose M here: the module will be called dm-mod. If unsure, say N. config DM_DEBUG bool "Device mapper debugging support" depends on BLK_DEV_DM help Enable this for messages that may help debug device-mapper problems. If unsure, say N. config DM_BUFIO tristate depends on BLK_DEV_DM help This interface allows you to do buffered I/O on a device and acts as a cache, holding recently-read blocks in memory and performing delayed writes. config DM_DEBUG_BLOCK_MANAGER_LOCKING bool "Block manager locking" depends on DM_BUFIO help Block manager locking can catch various metadata corruption issues. If unsure, say N. config DM_DEBUG_BLOCK_STACK_TRACING bool "Keep stack trace of persistent data block lock holders" depends on STACKTRACE_SUPPORT && DM_DEBUG_BLOCK_MANAGER_LOCKING select STACKTRACE help Enable this for messages that may help debug problems with the block manager locking used by thin provisioning and caching. If unsure, say N. config DM_BIO_PRISON tristate depends on BLK_DEV_DM help Some bio locking schemes used by other device-mapper targets including thin provisioning. source "drivers/md/persistent-data/Kconfig" config DM_UNSTRIPED tristate "Unstriped target" depends on BLK_DEV_DM help Unstripes I/O so it is issued solely on a single drive in a HW RAID0 or dm-striped target. config DM_CRYPT tristate "Crypt target support" depends on BLK_DEV_DM depends on (ENCRYPTED_KEYS || ENCRYPTED_KEYS=n) depends on (TRUSTED_KEYS || TRUSTED_KEYS=n) select CRC32 select CRYPTO select CRYPTO_CBC select CRYPTO_ESSIV select CRYPTO_LIB_AES select CRYPTO_LIB_MD5 # needed by lmk IV mode help This device-mapper target allows you to create a device that transparently encrypts the data on it. You'll need to activate the ciphers you're going to use in the cryptoapi configuration. For further information on dm-crypt and userspace tools see: <https://gitlab.com/cryptsetup/cryptsetup/wikis/DMCrypt> To compile this code as a module, choose M here: the module will be called dm-crypt. If unsure, say N. config DM_INLINECRYPT tristate "Inline encryption target support" depends on BLK_DEV_DM depends on (KEYS || KEYS=n) depends on BLK_INLINE_ENCRYPTION help This device-mapper target is similar to dm-crypt, but it uses the blk-crypto API instead of the regular crypto API. This allows it to take advantage of inline encryption hardware such as that commonly built into UFS host controllers. config DM_SNAPSHOT tristate "Snapshot target" depends on BLK_DEV_DM select DM_BUFIO help Allow volume managers to take writable snapshots of a device. config DM_THIN_PROVISIONING tristate "Thin provisioning target" depends on BLK_DEV_DM select DM_PERSISTENT_DATA select DM_BIO_PRISON help Provides thin provisioning and snapshots that share a data store. config DM_CACHE tristate "Cache target (EXPERIMENTAL)" depends on BLK_DEV_DM default n select DM_PERSISTENT_DATA select DM_BIO_PRISON help dm-cache attempts to improve performance of a block device by moving frequently used data to a smaller, higher performance device. Different 'policy' plugins can be used to change the algorithms used to select which blocks are promoted, demoted, cleaned etc. It supports writeback and writethrough modes. config DM_CACHE_SMQ tristate "Stochastic MQ Cache Policy (EXPERIMENTAL)" depends on DM_CACHE default y help A cache policy that uses a multiqueue ordered by recent hits to select which blocks should be promoted and demoted. This is meant to be a general purpose policy. It prioritises reads over writes. This SMQ policy (vs MQ) offers the promise of less memory utilization, improved performance and increased adaptability in the face of changing workloads. config DM_WRITECACHE tristate "Writecache target" depends on BLK_DEV_DM help The writecache target caches writes on persistent memory or SSD. It is intended for databases or other programs that need extremely low commit latency. The writecache target doesn't cache reads because reads are supposed to be cached in standard RAM. config DM_EBS tristate "Emulated block size target (EXPERIMENTAL)" depends on BLK_DEV_DM && !HIGHMEM select DM_BUFIO help dm-ebs emulates smaller logical block size on backing devices with larger ones (e.g. 512 byte sectors on 4K native disks). config DM_ERA tristate "Era target (EXPERIMENTAL)" depends on BLK_DEV_DM default n select DM_PERSISTENT_DATA select DM_BIO_PRISON help dm-era tracks which parts of a block device are written to over time. Useful for maintaining cache coherency when using vendor snapshots. config DM_CLONE tristate "Clone target (EXPERIMENTAL)" depends on BLK_DEV_DM default n select DM_PERSISTENT_DATA help dm-clone produces a one-to-one copy of an existing, read-only source device into a writable destination device. The cloned device is visible/mountable immediately and the copy of the source device to the destination device happens in the background, in parallel with user I/O. If unsure, say N. config DM_MIRROR tristate "Mirror target" depends on BLK_DEV_DM help Allow volume managers to mirror logical volumes, also needed for live data migration tools such as 'pvmove'. config DM_LOG_USERSPACE tristate "Mirror userspace logging" depends on DM_MIRROR && NET select CONNECTOR help The userspace logging module provides a mechanism for relaying the dm-dirty-log API to userspace. Log designs which are more suited to userspace implementation (e.g. shared storage logs) or experimental logs can be implemented by leveraging this framework. config DM_RAID tristate "RAID 1/4/5/6/10 target" depends on BLK_DEV_DM select MD_RAID0 select MD_RAID1 select MD_RAID10 select MD_RAID456 select MD_BITMAP select BLK_DEV_MD help A dm target that supports RAID1, RAID10, RAID4, RAID5 and RAID6 mappings A RAID-5 set of N drives with a capacity of C MB per drive provides the capacity of C * (N - 1) MB, and protects against a failure of a single drive. For a given sector (row) number, (N - 1) drives contain data sectors, and one drive contains the parity protection. For a RAID-4 set, the parity blocks are present on a single drive, 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. config DM_ZERO tristate "Zero target" depends on BLK_DEV_DM help A target that discards writes, and returns all zeroes for reads. Useful in some recovery situations. config DM_MULTIPATH tristate "Multipath target" depends on BLK_DEV_DM # nasty syntax but means make DM_MULTIPATH independent # of SCSI_DH if the latter isn't defined but if # it is, DM_MULTIPATH must depend on it. We get a build # error if SCSI_DH=m and DM_MULTIPATH=y depends on !SCSI_DH || SCSI help Allow volume managers to support multipath hardware. config DM_MULTIPATH_QL tristate "I/O Path Selector based on the number of in-flight I/Os" depends on DM_MULTIPATH help This path selector is a dynamic load balancer which selects the path with the least number of in-flight I/Os. If unsure, say N. config DM_MULTIPATH_ST tristate "I/O Path Selector based on the service time" depends on DM_MULTIPATH help This path selector is a dynamic load balancer which selects the path expected to complete the incoming I/O in the shortest time. If unsure, say N. config DM_MULTIPATH_HST tristate "I/O Path Selector based on historical service time" depends on DM_MULTIPATH help This path selector is a dynamic load balancer which selects