162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# Block device driver configuration 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ci 662306a36Sopenharmony_cimenuconfig MD 762306a36Sopenharmony_ci bool "Multiple devices driver support (RAID and LVM)" 862306a36Sopenharmony_ci depends on BLOCK 962306a36Sopenharmony_ci help 1062306a36Sopenharmony_ci Support multiple physical spindles through a single logical device. 1162306a36Sopenharmony_ci Required for RAID and logical volume management. 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ciif MD 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciconfig BLK_DEV_MD 1662306a36Sopenharmony_ci tristate "RAID support" 1762306a36Sopenharmony_ci select BLOCK_HOLDER_DEPRECATED if SYSFS 1862306a36Sopenharmony_ci select BUFFER_HEAD 1962306a36Sopenharmony_ci # BLOCK_LEGACY_AUTOLOAD requirement should be removed 2062306a36Sopenharmony_ci # after relevant mdadm enhancements - to make "names=yes" 2162306a36Sopenharmony_ci # the default - are widely available. 2262306a36Sopenharmony_ci select BLOCK_LEGACY_AUTOLOAD 2362306a36Sopenharmony_ci help 2462306a36Sopenharmony_ci This driver lets you combine several hard disk partitions into one 2562306a36Sopenharmony_ci logical block device. This can be used to simply append one 2662306a36Sopenharmony_ci partition to another one or to combine several redundant hard disks 2762306a36Sopenharmony_ci into a RAID1/4/5 device so as to provide protection against hard 2862306a36Sopenharmony_ci disk failures. This is called "Software RAID" since the combining of 2962306a36Sopenharmony_ci the partitions is done by the kernel. "Hardware RAID" means that the 3062306a36Sopenharmony_ci combining is done by a dedicated controller; if you have such a 3162306a36Sopenharmony_ci controller, you do not need to say Y here. 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci More information about Software RAID on Linux is contained in the 3462306a36Sopenharmony_ci Software RAID mini-HOWTO, available from 3562306a36Sopenharmony_ci <https://www.tldp.org/docs.html#howto>. There you will also learn 3662306a36Sopenharmony_ci where to get the supporting user space utilities raidtools. 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci If unsure, say N. 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ciconfig MD_AUTODETECT 4162306a36Sopenharmony_ci bool "Autodetect RAID arrays during kernel boot" 4262306a36Sopenharmony_ci depends on BLK_DEV_MD=y 4362306a36Sopenharmony_ci default y 4462306a36Sopenharmony_ci help 4562306a36Sopenharmony_ci If you say Y here, then the kernel will try to autodetect raid 4662306a36Sopenharmony_ci arrays as part of its boot process. 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci If you don't use raid and say Y, this autodetection can cause 4962306a36Sopenharmony_ci a several-second delay in the boot time due to various 5062306a36Sopenharmony_ci synchronisation steps that are part of this step. 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci If unsure, say Y. 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ciconfig MD_BITMAP_FILE 5562306a36Sopenharmony_ci bool "MD bitmap file support (deprecated)" 5662306a36Sopenharmony_ci default y 5762306a36Sopenharmony_ci help 5862306a36Sopenharmony_ci If you say Y here, support for write intent bitmaps in files on an 5962306a36Sopenharmony_ci external file system is enabled. This is an alternative to the internal 6062306a36Sopenharmony_ci bitmaps near the MD superblock, and very problematic code that abuses 6162306a36Sopenharmony_ci various kernel APIs and can only work with files on a file system not 6262306a36Sopenharmony_ci actually sitting on the MD device. 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ciconfig MD_LINEAR 6562306a36Sopenharmony_ci tristate "Linear (append) mode (deprecated)" 6662306a36Sopenharmony_ci depends on BLK_DEV_MD 6762306a36Sopenharmony_ci help 6862306a36Sopenharmony_ci If you say Y here, then your multiple devices driver will be able to 6962306a36Sopenharmony_ci use the so-called linear mode, i.e. it will combine the hard disk 7062306a36Sopenharmony_ci partitions by simply appending one to the other. 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci To compile this as a module, choose M here: the module 7362306a36Sopenharmony_ci will be called linear. 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci If unsure, say Y. 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ciconfig MD_RAID0 7862306a36Sopenharmony_ci tristate "RAID-0 (striping) mode" 7962306a36Sopenharmony_ci depends on BLK_DEV_MD 8062306a36Sopenharmony_ci help 8162306a36Sopenharmony_ci If you say Y here, then your multiple devices driver will be able to 8262306a36Sopenharmony_ci use the so-called raid0 mode, i.e. it will combine the hard disk 8362306a36Sopenharmony_ci partitions into one logical device in such a fashion as to fill them 8462306a36Sopenharmony_ci up evenly, one chunk here and one chunk there. This will increase 8562306a36Sopenharmony_ci the throughput rate if the partitions reside on distinct disks. 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci Information about Software RAID on Linux is contained in the 8862306a36Sopenharmony_ci Software-RAID mini-HOWTO, available from 8962306a36Sopenharmony_ci <https://www.tldp.org/docs.html#howto>. There you will also 9062306a36Sopenharmony_ci learn where to get the supporting user space utilities raidtools. 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci To compile this as a module, choose M here: the module 9362306a36Sopenharmony_ci will be called raid0. 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci If unsure, say Y. 9662306a36Sopenharmony_ci 9762306a36Sopenharmony_ciconfig MD_RAID1 9862306a36Sopenharmony_ci tristate "RAID-1 (mirroring) mode" 9962306a36Sopenharmony_ci depends on BLK_DEV_MD 10062306a36Sopenharmony_ci help 10162306a36Sopenharmony_ci A RAID-1 set consists of several disk drives which are exact copies 10262306a36Sopenharmony_ci of each other. In the event of a mirror failure, the RAID driver 10362306a36Sopenharmony_ci will continue to use the operational mirrors in the set, providing 10462306a36Sopenharmony_ci an error free MD (multiple device) to the higher levels of the 10562306a36Sopenharmony_ci kernel. In a set with N drives, the available space is the capacity 10662306a36Sopenharmony_ci of a single drive, and the set protects against a failure of (N - 1) 10762306a36Sopenharmony_ci drives. 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci Information about Software RAID on Linux is contained in the 11062306a36Sopenharmony_ci Software-RAID mini-HOWTO, available from 11162306a36Sopenharmony_ci <https://www.tldp.org/docs.html#howto>. There you will also 11262306a36Sopenharmony_ci learn where to get the supporting user space utilities raidtools. 11362306a36Sopenharmony_ci 11462306a36Sopenharmony_ci If you want to use such a RAID-1 set, say Y. To compile this code 11562306a36Sopenharmony_ci as a module, choose M here: the module will be called raid1. 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci If unsure, say Y. 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ciconfig MD_RAID10 12062306a36Sopenharmony_ci tristate "RAID-10 (mirrored striping) mode" 12162306a36Sopenharmony_ci depends on BLK_DEV_MD 12262306a36Sopenharmony_ci help 12362306a36Sopenharmony_ci RAID-10 provides a combination of striping (RAID-0) and 12462306a36Sopenharmony_ci mirroring (RAID-1) with easier configuration and more flexible 12562306a36Sopenharmony_ci layout. 12662306a36Sopenharmony_ci Unlike RAID-0, but like RAID-1, RAID-10 requires all devices to 12762306a36Sopenharmony_ci be the same size (or at least, only as much as the smallest device 12862306a36Sopenharmony_ci will be used). 12962306a36Sopenharmony_ci RAID-10 provides a variety of layouts that provide different levels 13062306a36Sopenharmony_ci of redundancy and performance. 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ci RAID-10 requires mdadm-1.7.0 or later, available at: 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ci https://www.kernel.org/pub/linux/utils/raid/mdadm/ 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ci If unsure, say Y. 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ciconfig MD_RAID456 13962306a36Sopenharmony_ci tristate "RAID-4/RAID-5/RAID-6 mode" 14062306a36Sopenharmony_ci depends on BLK_DEV_MD 14162306a36Sopenharmony_ci select RAID6_PQ 14262306a36Sopenharmony_ci select LIBCRC32C 14362306a36Sopenharmony_ci select ASYNC_MEMCPY 14462306a36Sopenharmony_ci select ASYNC_XOR 14562306a36Sopenharmony_ci select ASYNC_PQ 14662306a36Sopenharmony_ci select ASYNC_RAID6_RECOV 14762306a36Sopenharmony_ci help 14862306a36Sopenharmony_ci A RAID-5 set of N drives with a capacity of C MB per drive provides 14962306a36Sopenharmony_ci the capacity of C * (N - 1) MB, and protects against a failure 15062306a36Sopenharmony_ci of a single drive. For a given sector (row) number, (N - 1) drives 15162306a36Sopenharmony_ci contain data sectors, and one drive contains the parity protection. 15262306a36Sopenharmony_ci For a RAID-4 set, the parity blocks are present on a single drive, 15362306a36Sopenharmony_ci while a RAID-5 set distributes the parity across the drives in one 15462306a36Sopenharmony_ci of the available parity distribution methods. 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ci A RAID-6 set of N drives with a capacity of C MB per drive 15762306a36Sopenharmony_ci provides the capacity of C * (N - 2) MB, and protects 15862306a36Sopenharmony_ci against a failure of any two drives. For a given sector 15962306a36Sopenharmony_ci (row) number, (N - 2) drives contain data sectors, and two 16062306a36Sopenharmony_ci drives contains two independent redundancy syndromes. Like 16162306a36Sopenharmony_ci RAID-5, RAID-6 distributes the syndromes across the drives 16262306a36Sopenharmony_ci in one of the available parity distribution methods. 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_ci Information about Software RAID on Linux is contained in the 16562306a36Sopenharmony_ci Software-RAID mini-HOWTO, available from 16662306a36Sopenharmony_ci <https://www.tldp.org/docs.html#howto>. There you will also 16762306a36Sopenharmony_ci learn where to get the supporting user space utilities raidtools. 16862306a36Sopenharmony_ci 16962306a36Sopenharmony_ci If you want to use such a RAID-4/RAID-5/RAID-6 set, say Y. To 17062306a36Sopenharmony_ci compile this code as a module, choose M here: the module 17162306a36Sopenharmony_ci will be called raid456. 17262306a36Sopenharmony_ci 17362306a36Sopenharmony_ci If unsure, say Y. 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ciconfig MD_MULTIPATH 17662306a36Sopenharmony_ci tristate "Multipath I/O support (deprecated)" 17762306a36Sopenharmony_ci depends on BLK_DEV_MD 17862306a36Sopenharmony_ci help 17962306a36Sopenharmony_ci MD_MULTIPATH provides a simple multi-path personality for use 18062306a36Sopenharmony_ci the MD framework. It is not under active development. New 18162306a36Sopenharmony_ci projects should consider using DM_MULTIPATH which has more 18262306a36Sopenharmony_ci features and more testing. 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ci If unsure, say N. 18562306a36Sopenharmony_ci 18662306a36Sopenharmony_ciconfig MD_FAULTY 18762306a36Sopenharmony_ci tristate "Faulty test module for MD (deprecated)" 18862306a36Sopenharmony_ci depends on BLK_DEV_MD 18962306a36Sopenharmony_ci help 19062306a36Sopenharmony_ci The "faulty" module allows for a block device that occasionally returns 19162306a36Sopenharmony_ci read or write errors. It is useful for testing. 19262306a36Sopenharmony_ci 19362306a36Sopenharmony_ci In unsure, say N. 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ciconfig MD_CLUSTER 19762306a36Sopenharmony_ci tristate "Cluster Support for MD" 19862306a36Sopenharmony_ci depends on BLK_DEV_MD 19962306a36Sopenharmony_ci depends on DLM 20062306a36Sopenharmony_ci default n 20162306a36Sopenharmony_ci help 20262306a36Sopenharmony_ci Clustering support for MD devices. This enables locking and 20362306a36Sopenharmony_ci synchronization across multiple systems on the cluster, so all 20462306a36Sopenharmony_ci nodes in the cluster can access the MD devices simultaneously. 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_ci This brings the redundancy (and uptime) of RAID levels across the 20762306a36Sopenharmony_ci nodes of the cluster. Currently, it can work with raid1 and raid10 20862306a36Sopenharmony_ci (limited support). 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ci If unsure, say N. 21162306a36Sopenharmony_ci 21262306a36Sopenharmony_cisource "drivers/md/bcache/Kconfig" 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ciconfig BLK_DEV_DM_BUILTIN 21562306a36Sopenharmony_ci bool 21662306a36Sopenharmony_ci 21762306a36Sopenharmony_ciconfig BLK_DEV_DM 21862306a36Sopenharmony_ci tristate "Device mapper support" 21962306a36Sopenharmony_ci select BLOCK_HOLDER_DEPRECATED if SYSFS 22062306a36Sopenharmony_ci select BLK_DEV_DM_BUILTIN 22162306a36Sopenharmony_ci select BLK_MQ_STACKING 22262306a36Sopenharmony_ci depends on DAX || DAX=n 22362306a36Sopenharmony_ci help 22462306a36Sopenharmony_ci Device-mapper is a low level volume manager. It works by allowing 22562306a36Sopenharmony_ci people to specify mappings for ranges of logical sectors. Various 22662306a36Sopenharmony_ci mapping types are available, in addition people may write their own 22762306a36Sopenharmony_ci modules containing custom mappings if they wish. 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_ci Higher level volume managers such as LVM2 use this driver. 23062306a36Sopenharmony_ci 23162306a36Sopenharmony_ci To compile this as a module, choose M here: the module will be 23262306a36Sopenharmony_ci called dm-mod. 23362306a36Sopenharmony_ci 23462306a36Sopenharmony_ci If unsure, say N. 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ciconfig DM_DEBUG 23762306a36Sopenharmony_ci bool "Device mapper debugging support" 23862306a36Sopenharmony_ci depends on BLK_DEV_DM 23962306a36Sopenharmony_ci help 24062306a36Sopenharmony_ci Enable this for messages that may help debug device-mapper problems. 24162306a36Sopenharmony_ci 24262306a36Sopenharmony_ci If unsure, say N. 24362306a36Sopenharmony_ci 24462306a36Sopenharmony_ciconfig DM_BUFIO 24562306a36Sopenharmony_ci tristate 24662306a36Sopenharmony_ci depends on BLK_DEV_DM 24762306a36Sopenharmony_ci help 24862306a36Sopenharmony_ci This interface allows you to do buffered I/O on a device and acts 24962306a36Sopenharmony_ci as a cache, holding recently-read blocks in memory and performing 25062306a36Sopenharmony_ci delayed writes. 25162306a36Sopenharmony_ci 25262306a36Sopenharmony_ciconfig DM_DEBUG_BLOCK_MANAGER_LOCKING 25362306a36Sopenharmony_ci bool "Block manager locking" 25462306a36Sopenharmony_ci depends on DM_BUFIO 25562306a36Sopenharmony_ci help 25662306a36Sopenharmony_ci Block manager locking can catch various metadata corruption issues. 25762306a36Sopenharmony_ci 25862306a36Sopenharmony_ci If unsure, say N. 25962306a36Sopenharmony_ci 26062306a36Sopenharmony_ciconfig DM_DEBUG_BLOCK_STACK_TRACING 26162306a36Sopenharmony_ci bool "Keep stack trace of persistent data block lock holders" 26262306a36Sopenharmony_ci depends on STACKTRACE_SUPPORT && DM_DEBUG_BLOCK_MANAGER_LOCKING 26362306a36Sopenharmony_ci select STACKTRACE 26462306a36Sopenharmony_ci help 26562306a36Sopenharmony_ci Enable this for messages that may help debug problems with the 26662306a36Sopenharmony_ci block manager locking used by thin provisioning and caching. 26762306a36Sopenharmony_ci 26862306a36Sopenharmony_ci If unsure, say N. 26962306a36Sopenharmony_ci 27062306a36Sopenharmony_ciconfig DM_BIO_PRISON 27162306a36Sopenharmony_ci tristate 27262306a36Sopenharmony_ci depends on BLK_DEV_DM 27362306a36Sopenharmony_ci help 27462306a36Sopenharmony_ci Some bio locking schemes used by other device-mapper targets 27562306a36Sopenharmony_ci including thin provisioning. 27662306a36Sopenharmony_ci 27762306a36Sopenharmony_cisource "drivers/md/persistent-data/Kconfig" 27862306a36Sopenharmony_ci 27962306a36Sopenharmony_ciconfig DM_UNSTRIPED 28062306a36Sopenharmony_ci tristate "Unstriped target" 28162306a36Sopenharmony_ci depends on BLK_DEV_DM 28262306a36Sopenharmony_ci help 28362306a36Sopenharmony_ci Unstripes I/O so it is issued solely on a single drive in a HW 28462306a36Sopenharmony_ci RAID0 or dm-striped target. 28562306a36Sopenharmony_ci 28662306a36Sopenharmony_ciconfig DM_CRYPT 28762306a36Sopenharmony_ci tristate "Crypt target support" 28862306a36Sopenharmony_ci depends on BLK_DEV_DM 28962306a36Sopenharmony_ci depends on (ENCRYPTED_KEYS || ENCRYPTED_KEYS=n) 29062306a36Sopenharmony_ci depends on (TRUSTED_KEYS || TRUSTED_KEYS=n) 29162306a36Sopenharmony_ci select CRYPTO 29262306a36Sopenharmony_ci select CRYPTO_CBC 29362306a36Sopenharmony_ci select CRYPTO_ESSIV 29462306a36Sopenharmony_ci help 29562306a36Sopenharmony_ci This device-mapper target allows you to create a device that 29662306a36Sopenharmony_ci transparently encrypts the data on it. You'll need to activate 29762306a36Sopenharmony_ci the ciphers you're going to use in the cryptoapi configuration. 29862306a36Sopenharmony_ci 29962306a36Sopenharmony_ci For further information on dm-crypt and userspace tools see: 30062306a36Sopenharmony_ci <https://gitlab.com/cryptsetup/cryptsetup/wikis/DMCrypt> 30162306a36Sopenharmony_ci 30262306a36Sopenharmony_ci To compile this code as a module, choose M here: the module will 30362306a36Sopenharmony_ci be called dm-crypt. 30462306a36Sopenharmony_ci 30562306a36Sopenharmony_ci If unsure, say N. 30662306a36Sopenharmony_ci 30762306a36Sopenharmony_ciconfig DM_SNAPSHOT 30862306a36Sopenharmony_ci tristate "Snapshot target" 30962306a36Sopenharmony_ci depends on BLK_DEV_DM 31062306a36Sopenharmony_ci select DM_BUFIO 31162306a36Sopenharmony_ci help 31262306a36Sopenharmony_ci Allow volume managers to take writable snapshots of a device. 31362306a36Sopenharmony_ci 31462306a36Sopenharmony_ciconfig DM_THIN_PROVISIONING 31562306a36Sopenharmony_ci tristate "Thin provisioning target" 31662306a36Sopenharmony_ci depends on BLK_DEV_DM 31762306a36Sopenharmony_ci select DM_PERSISTENT_DATA 31862306a36Sopenharmony_ci select DM_BIO_PRISON 31962306a36Sopenharmony_ci help 32062306a36Sopenharmony_ci Provides thin provisioning and snapshots that share a data store. 32162306a36Sopenharmony_ci 32262306a36Sopenharmony_ciconfig DM_CACHE 32362306a36Sopenharmony_ci tristate "Cache target (EXPERIMENTAL)" 32462306a36Sopenharmony_ci depends on BLK_DEV_DM 32562306a36Sopenharmony_ci default n 32662306a36Sopenharmony_ci select DM_PERSISTENT_DATA 32762306a36Sopenharmony_ci select DM_BIO_PRISON 32862306a36Sopenharmony_ci help 32962306a36Sopenharmony_ci dm-cache attempts to improve performance of a block device by 33062306a36Sopenharmony_ci moving frequently used data to a smaller, higher performance 33162306a36Sopenharmony_ci device. Different 'policy' plugins can be used to change the 33262306a36Sopenharmony_ci algorithms used to select which blocks are promoted, demoted, 33362306a36Sopenharmony_ci cleaned etc. It supports writeback and writethrough modes. 33462306a36Sopenharmony_ci 33562306a36Sopenharmony_ciconfig DM_CACHE_SMQ 33662306a36Sopenharmony_ci tristate "Stochastic MQ Cache Policy (EXPERIMENTAL)" 33762306a36Sopenharmony_ci depends on DM_CACHE 33862306a36Sopenharmony_ci default y 33962306a36Sopenharmony_ci help 34062306a36Sopenharmony_ci A cache policy that uses a multiqueue ordered by recent hits 34162306a36Sopenharmony_ci to select which blocks should be promoted and demoted. 34262306a36Sopenharmony_ci This is meant to be a general purpose policy. It prioritises 34362306a36Sopenharmony_ci reads over writes. This SMQ policy (vs MQ) offers the promise 34462306a36Sopenharmony_ci of less memory utilization, improved performance and increased 34562306a36Sopenharmony_ci adaptability in the face of changing workloads. 34662306a36Sopenharmony_ci 34762306a36Sopenharmony_ciconfig DM_WRITECACHE 34862306a36Sopenharmony_ci tristate "Writecache target" 34962306a36Sopenharmony_ci depends on BLK_DEV_DM 35062306a36Sopenharmony_ci help 35162306a36Sopenharmony_ci The writecache target caches writes on persistent memory or SSD. 35262306a36Sopenharmony_ci It is intended for databases or other programs that need extremely 35362306a36Sopenharmony_ci low commit latency. 35462306a36Sopenharmony_ci 35562306a36Sopenharmony_ci The writecache target doesn't cache reads because reads are supposed 35662306a36Sopenharmony_ci to be cached in standard RAM. 35762306a36Sopenharmony_ci 35862306a36Sopenharmony_ciconfig DM_EBS 35962306a36Sopenharmony_ci tristate "Emulated block size target (EXPERIMENTAL)" 36062306a36Sopenharmony_ci depends on BLK_DEV_DM && !HIGHMEM 36162306a36Sopenharmony_ci select DM_BUFIO 36262306a36Sopenharmony_ci help 36362306a36Sopenharmony_ci dm-ebs emulates smaller logical block size on backing devices 36462306a36Sopenharmony_ci with larger ones (e.g. 512 byte sectors on 4K native disks). 36562306a36Sopenharmony_ci 36662306a36Sopenharmony_ciconfig DM_ERA 36762306a36Sopenharmony_ci tristate "Era target (EXPERIMENTAL)" 36862306a36Sopenharmony_ci depends on BLK_DEV_DM 36962306a36Sopenharmony_ci default n 37062306a36Sopenharmony_ci select DM_PERSISTENT_DATA 37162306a36Sopenharmony_ci select DM_BIO_PRISON 37262306a36Sopenharmony_ci help 37362306a36Sopenharmony_ci dm-era tracks which parts of a block device are written to 37462306a36Sopenharmony_ci over time. Useful for maintaining cache coherency when using 37562306a36Sopenharmony_ci vendor snapshots. 37662306a36Sopenharmony_ci 37762306a36Sopenharmony_ciconfig DM_CLONE 37862306a36Sopenharmony_ci tristate "Clone target (EXPERIMENTAL)" 37962306a36Sopenharmony_ci depends on BLK_DEV_DM 38062306a36Sopenharmony_ci default n 38162306a36Sopenharmony_ci select DM_PERSISTENT_DATA 38262306a36Sopenharmony_ci help 38362306a36Sopenharmony_ci dm-clone produces a one-to-one copy of an existing, read-only source 38462306a36Sopenharmony_ci device into a writable destination device. The cloned device is 38562306a36Sopenharmony_ci visible/mountable immediately and the copy of the source device to the 38662306a36Sopenharmony_ci destination device happens in the background, in parallel with user 38762306a36Sopenharmony_ci I/O. 38862306a36Sopenharmony_ci 38962306a36Sopenharmony_ci If unsure, say N. 39062306a36Sopenharmony_ci 39162306a36Sopenharmony_ciconfig DM_MIRROR 39262306a36Sopenharmony_ci tristate "Mirror target" 39362306a36Sopenharmony_ci depends on BLK_DEV_DM 39462306a36Sopenharmony_ci help 39562306a36Sopenharmony_ci Allow volume managers to mirror logical volumes, also 39662306a36Sopenharmony_ci needed for live data migration tools such as 'pvmove'. 39762306a36Sopenharmony_ci 39862306a36Sopenharmony_ciconfig DM_LOG_USERSPACE 39962306a36Sopenharmony_ci tristate "Mirror userspace logging" 40062306a36Sopenharmony_ci depends on DM_MIRROR && NET 40162306a36Sopenharmony_ci select CONNECTOR 40262306a36Sopenharmony_ci help 40362306a36Sopenharmony_ci The userspace logging module provides a mechanism for 40462306a36Sopenharmony_ci relaying the dm-dirty-log API to userspace. Log designs 40562306a36Sopenharmony_ci which are more suited to userspace implementation (e.g. 40662306a36Sopenharmony_ci shared storage logs) or experimental logs can be implemented 40762306a36Sopenharmony_ci by leveraging this framework. 40862306a36Sopenharmony_ci 40962306a36Sopenharmony_ciconfig DM_RAID 41062306a36Sopenharmony_ci tristate "RAID 1/4/5/6/10 target" 41162306a36Sopenharmony_ci depends on BLK_DEV_DM 41262306a36Sopenharmony_ci select MD_RAID0 41362306a36Sopenharmony_ci select MD_RAID1 41462306a36Sopenharmony_ci select MD_RAID10 41562306a36Sopenharmony_ci select MD_RAID456 41662306a36Sopenharmony_ci select BLK_DEV_MD 41762306a36Sopenharmony_ci help 41862306a36Sopenharmony_ci A dm target that supports RAID1, RAID10, RAID4, RAID5 and RAID6 mappings 41962306a36Sopenharmony_ci 42062306a36Sopenharmony_ci A RAID-5 set of N drives with a capacity of C MB per drive provides 42162306a36Sopenharmony_ci the capacity of C * (N - 1) MB, and protects against a failure 42262306a36Sopenharmony_ci of a single drive. For a given sector (row) number, (N - 1) drives 42362306a36Sopenharmony_ci contain data sectors, and one drive contains the parity protection. 42462306a36Sopenharmony_ci For a RAID-4 set, the parity blocks are present on a single drive, 42562306a36Sopenharmony_ci while a RAID-5 set distributes the parity across the drives in one 42662306a36Sopenharmony_ci of the available parity distribution methods. 42762306a36Sopenharmony_ci 42862306a36Sopenharmony_ci A RAID-6 set of N drives with a capacity of C MB per drive 42962306a36Sopenharmony_ci provides the capacity of C * (N - 2) MB, and protects 43062306a36Sopenharmony_ci against a failure of any two drives. For a given sector 43162306a36Sopenharmony_ci (row) number, (N - 2) drives contain data sectors, and two 43262306a36Sopenharmony_ci drives contains two independent redundancy syndromes. Like 43362306a36Sopenharmony_ci RAID-5, RAID-6 distributes the syndromes across the drives 43462306a36Sopenharmony_ci in one of the available parity distribution methods. 43562306a36Sopenharmony_ci 43662306a36Sopenharmony_ciconfig DM_ZERO 43762306a36Sopenharmony_ci tristate "Zero target" 43862306a36Sopenharmony_ci depends on BLK_DEV_DM 43962306a36Sopenharmony_ci help 44062306a36Sopenharmony_ci A target that discards writes, and returns all zeroes for 44162306a36Sopenharmony_ci reads. Useful in some recovery situations. 44262306a36Sopenharmony_ci 44362306a36Sopenharmony_ciconfig DM_MULTIPATH 44462306a36Sopenharmony_ci tristate "Multipath target" 44562306a36Sopenharmony_ci depends on BLK_DEV_DM 44662306a36Sopenharmony_ci # nasty syntax but means make DM_MULTIPATH independent 44762306a36Sopenharmony_ci # of SCSI_DH if the latter isn't defined but if 44862306a36Sopenharmony_ci # it is, DM_MULTIPATH must depend on it. We get a build 44962306a36Sopenharmony_ci # error if SCSI_DH=m and DM_MULTIPATH=y 45062306a36Sopenharmony_ci depends on !SCSI_DH || SCSI 45162306a36Sopenharmony_ci help 45262306a36Sopenharmony_ci Allow volume managers to support multipath hardware. 45362306a36Sopenharmony_ci 45462306a36Sopenharmony_ciconfig DM_MULTIPATH_QL 45562306a36Sopenharmony_ci tristate "I/O Path Selector based on the number of in-flight I/Os" 45662306a36Sopenharmony_ci depends on DM_MULTIPATH 45762306a36Sopenharmony_ci help 45862306a36Sopenharmony_ci This path selector is a dynamic load balancer which selects 45962306a36Sopenharmony_ci the path with the least number of in-flight I/Os. 46062306a36Sopenharmony_ci 46162306a36Sopenharmony_ci If unsure, say N. 46262306a36Sopenharmony_ci 46362306a36Sopenharmony_ciconfig DM_MULTIPATH_ST 46462306a36Sopenharmony_ci tristate "I/O Path Selector based on the service time" 46562306a36Sopenharmony_ci depends on DM_MULTIPATH 46662306a36Sopenharmony_ci help 46762306a36Sopenharmony_ci This path selector is a dynamic load balancer which selects 46862306a36Sopenharmony_ci the path expected to complete the incoming I/O in the shortest 46962306a36Sopenharmony_ci time. 47062306a36Sopenharmony_ci 47162306a36Sopenharmony_ci If unsure, say N. 47262306a36Sopenharmony_ci 47362306a36Sopenharmony_ciconfig DM_MULTIPATH_HST 47462306a36Sopenharmony_ci tristate "I/O Path Selector based on historical service time" 47562306a36Sopenharmony_ci depends on DM_MULTIPATH 47662306a36Sopenharmony_ci help 47762306a36Sopenharmony_ci This path selector is a dynamic load balancer which selects 47862306a36Sopenharmony_ci the path expected to complete the incoming I/O in the shortest 47962306a36Sopenharmony_ci time by comparing estimated service time (based on historical 48062306a36Sopenharmony_ci service time). 48162306a36Sopenharmony_ci 48262306a36Sopenharmony_ci If unsure, say N. 48362306a36Sopenharmony_ci 48462306a36Sopenharmony_ciconfig DM_MULTIPATH_IOA 48562306a36Sopenharmony_ci tristate "I/O Path Selector based on CPU submission" 48662306a36Sopenharmony_ci depends on DM_MULTIPATH 48762306a36Sopenharmony_ci help 48862306a36Sopenharmony_ci This path selector selects the path based on the CPU the IO is 48962306a36Sopenharmony_ci executed on and the CPU to path mapping setup at path addition time. 49062306a36Sopenharmony_ci 49162306a36Sopenharmony_ci If unsure, say N. 49262306a36Sopenharmony_ci 49362306a36Sopenharmony_ciconfig DM_DELAY 49462306a36Sopenharmony_ci tristate "I/O delaying target" 49562306a36Sopenharmony_ci depends on BLK_DEV_DM 49662306a36Sopenharmony_ci help 49762306a36Sopenharmony_ci A target that delays reads and/or writes and can send 49862306a36Sopenharmony_ci them to different devices. Useful for testing. 49962306a36Sopenharmony_ci 50062306a36Sopenharmony_ci If unsure, say N. 50162306a36Sopenharmony_ci 50262306a36Sopenharmony_ciconfig DM_DUST 50362306a36Sopenharmony_ci tristate "Bad sector simulation target" 50462306a36Sopenharmony_ci depends on BLK_DEV_DM 50562306a36Sopenharmony_ci help 50662306a36Sopenharmony_ci A target that simulates bad sector behavior. 50762306a36Sopenharmony_ci Useful for testing. 50862306a36Sopenharmony_ci 50962306a36Sopenharmony_ci If unsure, say N. 51062306a36Sopenharmony_ci 51162306a36Sopenharmony_ciconfig DM_INIT 51262306a36Sopenharmony_ci bool "DM \"dm-mod.create=\" parameter support" 51362306a36Sopenharmony_ci depends on BLK_DEV_DM=y 51462306a36Sopenharmony_ci help 51562306a36Sopenharmony_ci Enable "dm-mod.create=" parameter to create mapped devices at init time. 51662306a36Sopenharmony_ci This option is useful to allow mounting rootfs without requiring an 51762306a36Sopenharmony_ci initramfs. 51862306a36Sopenharmony_ci See Documentation/admin-guide/device-mapper/dm-init.rst for dm-mod.create="..." 51962306a36Sopenharmony_ci format. 52062306a36Sopenharmony_ci 52162306a36Sopenharmony_ci If unsure, say N. 52262306a36Sopenharmony_ci 52362306a36Sopenharmony_ciconfig DM_UEVENT 52462306a36Sopenharmony_ci bool "DM uevents" 52562306a36Sopenharmony_ci depends on BLK_DEV_DM 52662306a36Sopenharmony_ci help 52762306a36Sopenharmony_ci Generate udev events for DM events. 52862306a36Sopenharmony_ci 52962306a36Sopenharmony_ciconfig DM_FLAKEY 53062306a36Sopenharmony_ci tristate "Flakey target" 53162306a36Sopenharmony_ci depends on BLK_DEV_DM 53262306a36Sopenharmony_ci help 53362306a36Sopenharmony_ci A target that intermittently fails I/O for debugging purposes. 53462306a36Sopenharmony_ci 53562306a36Sopenharmony_ciconfig DM_VERITY 53662306a36Sopenharmony_ci tristate "Verity target support" 53762306a36Sopenharmony_ci depends on BLK_DEV_DM 53862306a36Sopenharmony_ci select CRYPTO 53962306a36Sopenharmony_ci select CRYPTO_HASH 54062306a36Sopenharmony_ci select DM_BUFIO 54162306a36Sopenharmony_ci help 54262306a36Sopenharmony_ci This device-mapper target creates a read-only device that 54362306a36Sopenharmony_ci transparently validates the data on one underlying device against 54462306a36Sopenharmony_ci a pre-generated tree of cryptographic checksums stored on a second 54562306a36Sopenharmony_ci device. 54662306a36Sopenharmony_ci 54762306a36Sopenharmony_ci You'll need to activate the digests you're going to use in the 54862306a36Sopenharmony_ci cryptoapi configuration. 54962306a36Sopenharmony_ci 55062306a36Sopenharmony_ci To compile this code as a module, choose M here: the module will 55162306a36Sopenharmony_ci be called dm-verity. 55262306a36Sopenharmony_ci 55362306a36Sopenharmony_ci If unsure, say N. 55462306a36Sopenharmony_ci 55562306a36Sopenharmony_ciconfig DM_VERITY_VERIFY_ROOTHASH_SIG 55662306a36Sopenharmony_ci def_bool n 55762306a36Sopenharmony_ci bool "Verity data device root hash signature verification support" 55862306a36Sopenharmony_ci depends on DM_VERITY 55962306a36Sopenharmony_ci select SYSTEM_DATA_VERIFICATION 56062306a36Sopenharmony_ci help 56162306a36Sopenharmony_ci Add ability for dm-verity device to be validated if the 56262306a36Sopenharmony_ci pre-generated tree of cryptographic checksums passed has a pkcs#7 56362306a36Sopenharmony_ci signature file that can validate the roothash of the tree. 56462306a36Sopenharmony_ci 56562306a36Sopenharmony_ci By default, rely on the builtin trusted keyring. 56662306a36Sopenharmony_ci 56762306a36Sopenharmony_ci If unsure, say N. 56862306a36Sopenharmony_ci 56962306a36Sopenharmony_ciconfig DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING 57062306a36Sopenharmony_ci bool "Verity data device root hash signature verification with secondary keyring" 57162306a36Sopenharmony_ci depends on DM_VERITY_VERIFY_ROOTHASH_SIG 57262306a36Sopenharmony_ci depends on SECONDARY_TRUSTED_KEYRING 57362306a36Sopenharmony_ci help 57462306a36Sopenharmony_ci Rely on the secondary trusted keyring to verify dm-verity signatures. 57562306a36Sopenharmony_ci 57662306a36Sopenharmony_ci If unsure, say N. 57762306a36Sopenharmony_ci 57862306a36Sopenharmony_ciconfig DM_VERITY_FEC 57962306a36Sopenharmony_ci bool "Verity forward error correction support" 58062306a36Sopenharmony_ci depends on DM_VERITY 58162306a36Sopenharmony_ci select REED_SOLOMON 58262306a36Sopenharmony_ci select REED_SOLOMON_DEC8 58362306a36Sopenharmony_ci help 58462306a36Sopenharmony_ci Add forward error correction support to dm-verity. This option 58562306a36Sopenharmony_ci makes it possible to use pre-generated error correction data to 58662306a36Sopenharmony_ci recover from corrupted blocks. 58762306a36Sopenharmony_ci 58862306a36Sopenharmony_ci If unsure, say N. 58962306a36Sopenharmony_ci 59062306a36Sopenharmony_ciconfig DM_SWITCH 59162306a36Sopenharmony_ci tristate "Switch target support (EXPERIMENTAL)" 59262306a36Sopenharmony_ci depends on BLK_DEV_DM 59362306a36Sopenharmony_ci help 59462306a36Sopenharmony_ci This device-mapper target creates a device that supports an arbitrary 59562306a36Sopenharmony_ci mapping of fixed-size regions of I/O across a fixed set of paths. 59662306a36Sopenharmony_ci The path used for any specific region can be switched dynamically 59762306a36Sopenharmony_ci by sending the target a message. 59862306a36Sopenharmony_ci 59962306a36Sopenharmony_ci To compile this code as a module, choose M here: the module will 60062306a36Sopenharmony_ci be called dm-switch. 60162306a36Sopenharmony_ci 60262306a36Sopenharmony_ci If unsure, say N. 60362306a36Sopenharmony_ci 60462306a36Sopenharmony_ciconfig DM_LOG_WRITES 60562306a36Sopenharmony_ci tristate "Log writes target support" 60662306a36Sopenharmony_ci depends on BLK_DEV_DM 60762306a36Sopenharmony_ci help 60862306a36Sopenharmony_ci This device-mapper target takes two devices, one device to use 60962306a36Sopenharmony_ci normally, one to log all write operations done to the first device. 61062306a36Sopenharmony_ci This is for use by file system developers wishing to verify that 61162306a36Sopenharmony_ci their fs is writing a consistent file system at all times by allowing 61262306a36Sopenharmony_ci them to replay the log in a variety of ways and to check the 61362306a36Sopenharmony_ci contents. 61462306a36Sopenharmony_ci 61562306a36Sopenharmony_ci To compile this code as a module, choose M here: the module will 61662306a36Sopenharmony_ci be called dm-log-writes. 61762306a36Sopenharmony_ci 61862306a36Sopenharmony_ci If unsure, say N. 61962306a36Sopenharmony_ci 62062306a36Sopenharmony_ciconfig DM_INTEGRITY 62162306a36Sopenharmony_ci tristate "Integrity target support" 62262306a36Sopenharmony_ci depends on BLK_DEV_DM 62362306a36Sopenharmony_ci select BLK_DEV_INTEGRITY 62462306a36Sopenharmony_ci select DM_BUFIO 62562306a36Sopenharmony_ci select CRYPTO 62662306a36Sopenharmony_ci select CRYPTO_SKCIPHER 62762306a36Sopenharmony_ci select ASYNC_XOR 62862306a36Sopenharmony_ci select DM_AUDIT if AUDIT 62962306a36Sopenharmony_ci help 63062306a36Sopenharmony_ci This device-mapper target emulates a block device that has 63162306a36Sopenharmony_ci additional per-sector tags that can be used for storing 63262306a36Sopenharmony_ci integrity information. 63362306a36Sopenharmony_ci 63462306a36Sopenharmony_ci This integrity target is used with the dm-crypt target to 63562306a36Sopenharmony_ci provide authenticated disk encryption or it can be used 63662306a36Sopenharmony_ci standalone. 63762306a36Sopenharmony_ci 63862306a36Sopenharmony_ci To compile this code as a module, choose M here: the module will 63962306a36Sopenharmony_ci be called dm-integrity. 64062306a36Sopenharmony_ci 64162306a36Sopenharmony_ciconfig DM_ZONED 64262306a36Sopenharmony_ci tristate "Drive-managed zoned block device target support" 64362306a36Sopenharmony_ci depends on BLK_DEV_DM 64462306a36Sopenharmony_ci depends on BLK_DEV_ZONED 64562306a36Sopenharmony_ci select CRC32 64662306a36Sopenharmony_ci help 64762306a36Sopenharmony_ci This device-mapper target takes a host-managed or host-aware zoned 64862306a36Sopenharmony_ci block device and exposes most of its capacity as a regular block 64962306a36Sopenharmony_ci device (drive-managed zoned block device) without any write 65062306a36Sopenharmony_ci constraints. This is mainly intended for use with file systems that 65162306a36Sopenharmony_ci do not natively support zoned block devices but still want to 65262306a36Sopenharmony_ci benefit from the increased capacity offered by SMR disks. Other uses 65362306a36Sopenharmony_ci by applications using raw block devices (for example object stores) 65462306a36Sopenharmony_ci are also possible. 65562306a36Sopenharmony_ci 65662306a36Sopenharmony_ci To compile this code as a module, choose M here: the module will 65762306a36Sopenharmony_ci be called dm-zoned. 65862306a36Sopenharmony_ci 65962306a36Sopenharmony_ci If unsure, say N. 66062306a36Sopenharmony_ci 66162306a36Sopenharmony_ciconfig DM_AUDIT 66262306a36Sopenharmony_ci bool "DM audit events" 66362306a36Sopenharmony_ci depends on BLK_DEV_DM 66462306a36Sopenharmony_ci depends on AUDIT 66562306a36Sopenharmony_ci help 66662306a36Sopenharmony_ci Generate audit events for device-mapper. 66762306a36Sopenharmony_ci 66862306a36Sopenharmony_ci Enables audit logging of several security relevant events in the 66962306a36Sopenharmony_ci particular device-mapper targets, especially the integrity target. 67062306a36Sopenharmony_ci 67162306a36Sopenharmony_ciendif # MD 672