18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci# 38c2ecf20Sopenharmony_ci# Block device driver configuration 48c2ecf20Sopenharmony_ci# 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_cimenuconfig MD 78c2ecf20Sopenharmony_ci bool "Multiple devices driver support (RAID and LVM)" 88c2ecf20Sopenharmony_ci depends on BLOCK 98c2ecf20Sopenharmony_ci select SRCU 108c2ecf20Sopenharmony_ci help 118c2ecf20Sopenharmony_ci Support multiple physical spindles through a single logical device. 128c2ecf20Sopenharmony_ci Required for RAID and logical volume management. 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciif MD 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ciconfig BLK_DEV_MD 178c2ecf20Sopenharmony_ci tristate "RAID support" 188c2ecf20Sopenharmony_ci help 198c2ecf20Sopenharmony_ci This driver lets you combine several hard disk partitions into one 208c2ecf20Sopenharmony_ci logical block device. This can be used to simply append one 218c2ecf20Sopenharmony_ci partition to another one or to combine several redundant hard disks 228c2ecf20Sopenharmony_ci into a RAID1/4/5 device so as to provide protection against hard 238c2ecf20Sopenharmony_ci disk failures. This is called "Software RAID" since the combining of 248c2ecf20Sopenharmony_ci the partitions is done by the kernel. "Hardware RAID" means that the 258c2ecf20Sopenharmony_ci combining is done by a dedicated controller; if you have such a 268c2ecf20Sopenharmony_ci controller, you do not need to say Y here. 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci More information about Software RAID on Linux is contained in the 298c2ecf20Sopenharmony_ci Software RAID mini-HOWTO, available from 308c2ecf20Sopenharmony_ci <https://www.tldp.org/docs.html#howto>. There you will also learn 318c2ecf20Sopenharmony_ci where to get the supporting user space utilities raidtools. 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci If unsure, say N. 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ciconfig MD_AUTODETECT 368c2ecf20Sopenharmony_ci bool "Autodetect RAID arrays during kernel boot" 378c2ecf20Sopenharmony_ci depends on BLK_DEV_MD=y 388c2ecf20Sopenharmony_ci default y 398c2ecf20Sopenharmony_ci help 408c2ecf20Sopenharmony_ci If you say Y here, then the kernel will try to autodetect raid 418c2ecf20Sopenharmony_ci arrays as part of its boot process. 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci If you don't use raid and say Y, this autodetection can cause 448c2ecf20Sopenharmony_ci a several-second delay in the boot time due to various 458c2ecf20Sopenharmony_ci synchronisation steps that are part of this step. 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci If unsure, say Y. 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ciconfig MD_LINEAR 508c2ecf20Sopenharmony_ci tristate "Linear (append) mode" 518c2ecf20Sopenharmony_ci depends on BLK_DEV_MD 528c2ecf20Sopenharmony_ci help 538c2ecf20Sopenharmony_ci If you say Y here, then your multiple devices driver will be able to 548c2ecf20Sopenharmony_ci use the so-called linear mode, i.e. it will combine the hard disk 558c2ecf20Sopenharmony_ci partitions by simply appending one to the other. 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci To compile this as a module, choose M here: the module 588c2ecf20Sopenharmony_ci will be called linear. 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci If unsure, say Y. 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ciconfig MD_RAID0 638c2ecf20Sopenharmony_ci tristate "RAID-0 (striping) mode" 648c2ecf20Sopenharmony_ci depends on BLK_DEV_MD 658c2ecf20Sopenharmony_ci help 668c2ecf20Sopenharmony_ci If you say Y here, then your multiple devices driver will be able to 678c2ecf20Sopenharmony_ci use the so-called raid0 mode, i.e. it will combine the hard disk 688c2ecf20Sopenharmony_ci partitions into one logical device in such a fashion as to fill them 698c2ecf20Sopenharmony_ci up evenly, one chunk here and one chunk there. This will increase 708c2ecf20Sopenharmony_ci the throughput rate if the partitions reside on distinct disks. 718c2ecf20Sopenharmony_ci 728c2ecf20Sopenharmony_ci Information about Software RAID on Linux is contained in the 738c2ecf20Sopenharmony_ci Software-RAID mini-HOWTO, available from 748c2ecf20Sopenharmony_ci <https://www.tldp.org/docs.html#howto>. There you will also 758c2ecf20Sopenharmony_ci learn where to get the supporting user space utilities raidtools. 768c2ecf20Sopenharmony_ci 778c2ecf20Sopenharmony_ci To compile this as a module, choose M here: the module 788c2ecf20Sopenharmony_ci will be called raid0. 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ci If unsure, say Y. 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ciconfig MD_RAID1 838c2ecf20Sopenharmony_ci tristate "RAID-1 (mirroring) mode" 848c2ecf20Sopenharmony_ci depends on BLK_DEV_MD 858c2ecf20Sopenharmony_ci help 868c2ecf20Sopenharmony_ci A RAID-1 set consists of several disk drives which are exact copies 878c2ecf20Sopenharmony_ci of each other. In the event of a mirror failure, the RAID driver 888c2ecf20Sopenharmony_ci will continue to use the operational mirrors in the set, providing 898c2ecf20Sopenharmony_ci an error free MD (multiple device) to the higher levels of the 908c2ecf20Sopenharmony_ci kernel. In a set with N drives, the available space is the capacity 918c2ecf20Sopenharmony_ci of a single drive, and the set protects against a failure of (N - 1) 928c2ecf20Sopenharmony_ci drives. 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ci Information about Software RAID on Linux is contained in the 958c2ecf20Sopenharmony_ci Software-RAID mini-HOWTO, available from 968c2ecf20Sopenharmony_ci <https://www.tldp.org/docs.html#howto>. There you will also 978c2ecf20Sopenharmony_ci learn where to get the supporting user space utilities raidtools. 988c2ecf20Sopenharmony_ci 998c2ecf20Sopenharmony_ci If you want to use such a RAID-1 set, say Y. To compile this code 1008c2ecf20Sopenharmony_ci as a module, choose M here: the module will be called raid1. 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_ci If unsure, say Y. 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ciconfig MD_RAID10 1058c2ecf20Sopenharmony_ci tristate "RAID-10 (mirrored striping) mode" 1068c2ecf20Sopenharmony_ci depends on BLK_DEV_MD 1078c2ecf20Sopenharmony_ci help 1088c2ecf20Sopenharmony_ci RAID-10 provides a combination of striping (RAID-0) and 1098c2ecf20Sopenharmony_ci mirroring (RAID-1) with easier configuration and more flexible 1108c2ecf20Sopenharmony_ci layout. 1118c2ecf20Sopenharmony_ci Unlike RAID-0, but like RAID-1, RAID-10 requires all devices to 1128c2ecf20Sopenharmony_ci be the same size (or at least, only as much as the smallest device 1138c2ecf20Sopenharmony_ci will be used). 1148c2ecf20Sopenharmony_ci RAID-10 provides a variety of layouts that provide different levels 1158c2ecf20Sopenharmony_ci of redundancy and performance. 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_ci RAID-10 requires mdadm-1.7.0 or later, available at: 1188c2ecf20Sopenharmony_ci 1198c2ecf20Sopenharmony_ci https://www.kernel.org/pub/linux/utils/raid/mdadm/ 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ci If unsure, say Y. 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ciconfig MD_RAID456 1248c2ecf20Sopenharmony_ci tristate "RAID-4/RAID-5/RAID-6 mode" 1258c2ecf20Sopenharmony_ci depends on BLK_DEV_MD 1268c2ecf20Sopenharmony_ci select RAID6_PQ 1278c2ecf20Sopenharmony_ci select LIBCRC32C 1288c2ecf20Sopenharmony_ci select ASYNC_MEMCPY 1298c2ecf20Sopenharmony_ci select ASYNC_XOR 1308c2ecf20Sopenharmony_ci select ASYNC_PQ 1318c2ecf20Sopenharmony_ci select ASYNC_RAID6_RECOV 1328c2ecf20Sopenharmony_ci help 1338c2ecf20Sopenharmony_ci A RAID-5 set of N drives with a capacity of C MB per drive provides 1348c2ecf20Sopenharmony_ci the capacity of C * (N - 1) MB, and protects against a failure 1358c2ecf20Sopenharmony_ci of a single drive. For a given sector (row) number, (N - 1) drives 1368c2ecf20Sopenharmony_ci contain data sectors, and one drive contains the parity protection. 1378c2ecf20Sopenharmony_ci For a RAID-4 set, the parity blocks are present on a single drive, 1388c2ecf20Sopenharmony_ci while a RAID-5 set distributes the parity across the drives in one 1398c2ecf20Sopenharmony_ci of the available parity distribution methods. 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ci A RAID-6 set of N drives with a capacity of C MB per drive 1428c2ecf20Sopenharmony_ci provides the capacity of C * (N - 2) MB, and protects 1438c2ecf20Sopenharmony_ci against a failure of any two drives. For a given sector 1448c2ecf20Sopenharmony_ci (row) number, (N - 2) drives contain data sectors, and two 1458c2ecf20Sopenharmony_ci drives contains two independent redundancy syndromes. Like 1468c2ecf20Sopenharmony_ci RAID-5, RAID-6 distributes the syndromes across the drives 1478c2ecf20Sopenharmony_ci in one of the available parity distribution methods. 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ci Information about Software RAID on Linux is contained in the 1508c2ecf20Sopenharmony_ci Software-RAID mini-HOWTO, available from 1518c2ecf20Sopenharmony_ci <https://www.tldp.org/docs.html#howto>. There you will also 1528c2ecf20Sopenharmony_ci learn where to get the supporting user space utilities raidtools. 1538c2ecf20Sopenharmony_ci 1548c2ecf20Sopenharmony_ci If you want to use such a RAID-4/RAID-5/RAID-6 set, say Y. To 1558c2ecf20Sopenharmony_ci compile this code as a module, choose M here: the module 1568c2ecf20Sopenharmony_ci will be called raid456. 1578c2ecf20Sopenharmony_ci 1588c2ecf20Sopenharmony_ci If unsure, say Y. 1598c2ecf20Sopenharmony_ci 1608c2ecf20Sopenharmony_ciconfig MD_MULTIPATH 1618c2ecf20Sopenharmony_ci tristate "Multipath I/O support" 1628c2ecf20Sopenharmony_ci depends on BLK_DEV_MD 1638c2ecf20Sopenharmony_ci help 1648c2ecf20Sopenharmony_ci MD_MULTIPATH provides a simple multi-path personality for use 1658c2ecf20Sopenharmony_ci the MD framework. It is not under active development. New 1668c2ecf20Sopenharmony_ci projects should consider using DM_MULTIPATH which has more 1678c2ecf20Sopenharmony_ci features and more testing. 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_ci If unsure, say N. 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ciconfig MD_FAULTY 1728c2ecf20Sopenharmony_ci tristate "Faulty test module for MD" 1738c2ecf20Sopenharmony_ci depends on BLK_DEV_MD 1748c2ecf20Sopenharmony_ci help 1758c2ecf20Sopenharmony_ci The "faulty" module allows for a block device that occasionally returns 1768c2ecf20Sopenharmony_ci read or write errors. It is useful for testing. 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ci In unsure, say N. 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ciconfig MD_CLUSTER 1828c2ecf20Sopenharmony_ci tristate "Cluster Support for MD" 1838c2ecf20Sopenharmony_ci depends on BLK_DEV_MD 1848c2ecf20Sopenharmony_ci depends on DLM 1858c2ecf20Sopenharmony_ci default n 1868c2ecf20Sopenharmony_ci help 1878c2ecf20Sopenharmony_ci Clustering support for MD devices. This enables locking and 1888c2ecf20Sopenharmony_ci synchronization across multiple systems on the cluster, so all 1898c2ecf20Sopenharmony_ci nodes in the cluster can access the MD devices simultaneously. 1908c2ecf20Sopenharmony_ci 1918c2ecf20Sopenharmony_ci This brings the redundancy (and uptime) of RAID levels across the 1928c2ecf20Sopenharmony_ci nodes of the cluster. Currently, it can work with raid1 and raid10 1938c2ecf20Sopenharmony_ci (limited support). 1948c2ecf20Sopenharmony_ci 1958c2ecf20Sopenharmony_ci If unsure, say N. 1968c2ecf20Sopenharmony_ci 1978c2ecf20Sopenharmony_cisource "drivers/md/bcache/Kconfig" 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ciconfig BLK_DEV_DM_BUILTIN 2008c2ecf20Sopenharmony_ci bool 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ciconfig BLK_DEV_DM 2038c2ecf20Sopenharmony_ci tristate "Device mapper support" 2048c2ecf20Sopenharmony_ci select BLK_DEV_DM_BUILTIN 2058c2ecf20Sopenharmony_ci depends on DAX || DAX=n 2068c2ecf20Sopenharmony_ci help 2078c2ecf20Sopenharmony_ci Device-mapper is a low level volume manager. It works by allowing 2088c2ecf20Sopenharmony_ci people to specify mappings for ranges of logical sectors. Various 2098c2ecf20Sopenharmony_ci mapping types are available, in addition people may write their own 2108c2ecf20Sopenharmony_ci modules containing custom mappings if they wish. 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ci Higher level volume managers such as LVM2 use this driver. 2138c2ecf20Sopenharmony_ci 2148c2ecf20Sopenharmony_ci To compile this as a module, choose M here: the module will be 2158c2ecf20Sopenharmony_ci called dm-mod. 2168c2ecf20Sopenharmony_ci 2178c2ecf20Sopenharmony_ci If unsure, say N. 2188c2ecf20Sopenharmony_ci 2198c2ecf20Sopenharmony_ciconfig DM_DEBUG 2208c2ecf20Sopenharmony_ci bool "Device mapper debugging support" 2218c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 2228c2ecf20Sopenharmony_ci help 2238c2ecf20Sopenharmony_ci Enable this for messages that may help debug device-mapper problems. 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ci If unsure, say N. 2268c2ecf20Sopenharmony_ci 2278c2ecf20Sopenharmony_ciconfig DM_BUFIO 2288c2ecf20Sopenharmony_ci tristate 2298c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 2308c2ecf20Sopenharmony_ci help 2318c2ecf20Sopenharmony_ci This interface allows you to do buffered I/O on a device and acts 2328c2ecf20Sopenharmony_ci as a cache, holding recently-read blocks in memory and performing 2338c2ecf20Sopenharmony_ci delayed writes. 2348c2ecf20Sopenharmony_ci 2358c2ecf20Sopenharmony_ciconfig DM_DEBUG_BLOCK_MANAGER_LOCKING 2368c2ecf20Sopenharmony_ci bool "Block manager locking" 2378c2ecf20Sopenharmony_ci depends on DM_BUFIO 2388c2ecf20Sopenharmony_ci help 2398c2ecf20Sopenharmony_ci Block manager locking can catch various metadata corruption issues. 2408c2ecf20Sopenharmony_ci 2418c2ecf20Sopenharmony_ci If unsure, say N. 2428c2ecf20Sopenharmony_ci 2438c2ecf20Sopenharmony_ciconfig DM_DEBUG_BLOCK_STACK_TRACING 2448c2ecf20Sopenharmony_ci bool "Keep stack trace of persistent data block lock holders" 2458c2ecf20Sopenharmony_ci depends on STACKTRACE_SUPPORT && DM_DEBUG_BLOCK_MANAGER_LOCKING 2468c2ecf20Sopenharmony_ci select STACKTRACE 2478c2ecf20Sopenharmony_ci help 2488c2ecf20Sopenharmony_ci Enable this for messages that may help debug problems with the 2498c2ecf20Sopenharmony_ci block manager locking used by thin provisioning and caching. 2508c2ecf20Sopenharmony_ci 2518c2ecf20Sopenharmony_ci If unsure, say N. 2528c2ecf20Sopenharmony_ci 2538c2ecf20Sopenharmony_ciconfig DM_BIO_PRISON 2548c2ecf20Sopenharmony_ci tristate 2558c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 2568c2ecf20Sopenharmony_ci help 2578c2ecf20Sopenharmony_ci Some bio locking schemes used by other device-mapper targets 2588c2ecf20Sopenharmony_ci including thin provisioning. 2598c2ecf20Sopenharmony_ci 2608c2ecf20Sopenharmony_cisource "drivers/md/persistent-data/Kconfig" 2618c2ecf20Sopenharmony_ci 2628c2ecf20Sopenharmony_ciconfig DM_UNSTRIPED 2638c2ecf20Sopenharmony_ci tristate "Unstriped target" 2648c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 2658c2ecf20Sopenharmony_ci help 2668c2ecf20Sopenharmony_ci Unstripes I/O so it is issued solely on a single drive in a HW 2678c2ecf20Sopenharmony_ci RAID0 or dm-striped target. 2688c2ecf20Sopenharmony_ci 2698c2ecf20Sopenharmony_ciconfig DM_CRYPT 2708c2ecf20Sopenharmony_ci tristate "Crypt target support" 2718c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 2728c2ecf20Sopenharmony_ci depends on (ENCRYPTED_KEYS || ENCRYPTED_KEYS=n) 2738c2ecf20Sopenharmony_ci select CRYPTO 2748c2ecf20Sopenharmony_ci select CRYPTO_CBC 2758c2ecf20Sopenharmony_ci select CRYPTO_ESSIV 2768c2ecf20Sopenharmony_ci help 2778c2ecf20Sopenharmony_ci This device-mapper target allows you to create a device that 2788c2ecf20Sopenharmony_ci transparently encrypts the data on it. You'll need to activate 2798c2ecf20Sopenharmony_ci the ciphers you're going to use in the cryptoapi configuration. 2808c2ecf20Sopenharmony_ci 2818c2ecf20Sopenharmony_ci For further information on dm-crypt and userspace tools see: 2828c2ecf20Sopenharmony_ci <https://gitlab.com/cryptsetup/cryptsetup/wikis/DMCrypt> 2838c2ecf20Sopenharmony_ci 2848c2ecf20Sopenharmony_ci To compile this code as a module, choose M here: the module will 2858c2ecf20Sopenharmony_ci be called dm-crypt. 2868c2ecf20Sopenharmony_ci 2878c2ecf20Sopenharmony_ci If unsure, say N. 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ciconfig DM_SNAPSHOT 2908c2ecf20Sopenharmony_ci tristate "Snapshot target" 2918c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 2928c2ecf20Sopenharmony_ci select DM_BUFIO 2938c2ecf20Sopenharmony_ci help 2948c2ecf20Sopenharmony_ci Allow volume managers to take writable snapshots of a device. 2958c2ecf20Sopenharmony_ci 2968c2ecf20Sopenharmony_ciconfig DM_THIN_PROVISIONING 2978c2ecf20Sopenharmony_ci tristate "Thin provisioning target" 2988c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 2998c2ecf20Sopenharmony_ci select DM_PERSISTENT_DATA 3008c2ecf20Sopenharmony_ci select DM_BIO_PRISON 3018c2ecf20Sopenharmony_ci help 3028c2ecf20Sopenharmony_ci Provides thin provisioning and snapshots that share a data store. 3038c2ecf20Sopenharmony_ci 3048c2ecf20Sopenharmony_ciconfig DM_CACHE 3058c2ecf20Sopenharmony_ci tristate "Cache target (EXPERIMENTAL)" 3068c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 3078c2ecf20Sopenharmony_ci default n 3088c2ecf20Sopenharmony_ci select DM_PERSISTENT_DATA 3098c2ecf20Sopenharmony_ci select DM_BIO_PRISON 3108c2ecf20Sopenharmony_ci help 3118c2ecf20Sopenharmony_ci dm-cache attempts to improve performance of a block device by 3128c2ecf20Sopenharmony_ci moving frequently used data to a smaller, higher performance 3138c2ecf20Sopenharmony_ci device. Different 'policy' plugins can be used to change the 3148c2ecf20Sopenharmony_ci algorithms used to select which blocks are promoted, demoted, 3158c2ecf20Sopenharmony_ci cleaned etc. It supports writeback and writethrough modes. 3168c2ecf20Sopenharmony_ci 3178c2ecf20Sopenharmony_ciconfig DM_CACHE_SMQ 3188c2ecf20Sopenharmony_ci tristate "Stochastic MQ Cache Policy (EXPERIMENTAL)" 3198c2ecf20Sopenharmony_ci depends on DM_CACHE 3208c2ecf20Sopenharmony_ci default y 3218c2ecf20Sopenharmony_ci help 3228c2ecf20Sopenharmony_ci A cache policy that uses a multiqueue ordered by recent hits 3238c2ecf20Sopenharmony_ci to select which blocks should be promoted and demoted. 3248c2ecf20Sopenharmony_ci This is meant to be a general purpose policy. It prioritises 3258c2ecf20Sopenharmony_ci reads over writes. This SMQ policy (vs MQ) offers the promise 3268c2ecf20Sopenharmony_ci of less memory utilization, improved performance and increased 3278c2ecf20Sopenharmony_ci adaptability in the face of changing workloads. 3288c2ecf20Sopenharmony_ci 3298c2ecf20Sopenharmony_ciconfig DM_WRITECACHE 3308c2ecf20Sopenharmony_ci tristate "Writecache target" 3318c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 3328c2ecf20Sopenharmony_ci help 3338c2ecf20Sopenharmony_ci The writecache target caches writes on persistent memory or SSD. 3348c2ecf20Sopenharmony_ci It is intended for databases or other programs that need extremely 3358c2ecf20Sopenharmony_ci low commit latency. 3368c2ecf20Sopenharmony_ci 3378c2ecf20Sopenharmony_ci The writecache target doesn't cache reads because reads are supposed 3388c2ecf20Sopenharmony_ci to be cached in standard RAM. 3398c2ecf20Sopenharmony_ci 3408c2ecf20Sopenharmony_ciconfig DM_EBS 3418c2ecf20Sopenharmony_ci tristate "Emulated block size target (EXPERIMENTAL)" 3428c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 3438c2ecf20Sopenharmony_ci select DM_BUFIO 3448c2ecf20Sopenharmony_ci help 3458c2ecf20Sopenharmony_ci dm-ebs emulates smaller logical block size on backing devices 3468c2ecf20Sopenharmony_ci with larger ones (e.g. 512 byte sectors on 4K native disks). 3478c2ecf20Sopenharmony_ci 3488c2ecf20Sopenharmony_ciconfig DM_ERA 3498c2ecf20Sopenharmony_ci tristate "Era target (EXPERIMENTAL)" 3508c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 3518c2ecf20Sopenharmony_ci default n 3528c2ecf20Sopenharmony_ci select DM_PERSISTENT_DATA 3538c2ecf20Sopenharmony_ci select DM_BIO_PRISON 3548c2ecf20Sopenharmony_ci help 3558c2ecf20Sopenharmony_ci dm-era tracks which parts of a block device are written to 3568c2ecf20Sopenharmony_ci over time. Useful for maintaining cache coherency when using 3578c2ecf20Sopenharmony_ci vendor snapshots. 3588c2ecf20Sopenharmony_ci 3598c2ecf20Sopenharmony_ciconfig DM_CLONE 3608c2ecf20Sopenharmony_ci tristate "Clone target (EXPERIMENTAL)" 3618c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 3628c2ecf20Sopenharmony_ci default n 3638c2ecf20Sopenharmony_ci select DM_PERSISTENT_DATA 3648c2ecf20Sopenharmony_ci help 3658c2ecf20Sopenharmony_ci dm-clone produces a one-to-one copy of an existing, read-only source 3668c2ecf20Sopenharmony_ci device into a writable destination device. The cloned device is 3678c2ecf20Sopenharmony_ci visible/mountable immediately and the copy of the source device to the 3688c2ecf20Sopenharmony_ci destination device happens in the background, in parallel with user 3698c2ecf20Sopenharmony_ci I/O. 3708c2ecf20Sopenharmony_ci 3718c2ecf20Sopenharmony_ci If unsure, say N. 3728c2ecf20Sopenharmony_ci 3738c2ecf20Sopenharmony_ciconfig DM_MIRROR 3748c2ecf20Sopenharmony_ci tristate "Mirror target" 3758c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 3768c2ecf20Sopenharmony_ci help 3778c2ecf20Sopenharmony_ci Allow volume managers to mirror logical volumes, also 3788c2ecf20Sopenharmony_ci needed for live data migration tools such as 'pvmove'. 3798c2ecf20Sopenharmony_ci 3808c2ecf20Sopenharmony_ciconfig DM_LOG_USERSPACE 3818c2ecf20Sopenharmony_ci tristate "Mirror userspace logging" 3828c2ecf20Sopenharmony_ci depends on DM_MIRROR && NET 3838c2ecf20Sopenharmony_ci select CONNECTOR 3848c2ecf20Sopenharmony_ci help 3858c2ecf20Sopenharmony_ci The userspace logging module provides a mechanism for 3868c2ecf20Sopenharmony_ci relaying the dm-dirty-log API to userspace. Log designs 3878c2ecf20Sopenharmony_ci which are more suited to userspace implementation (e.g. 3888c2ecf20Sopenharmony_ci shared storage logs) or experimental logs can be implemented 3898c2ecf20Sopenharmony_ci by leveraging this framework. 3908c2ecf20Sopenharmony_ci 3918c2ecf20Sopenharmony_ciconfig DM_RAID 3928c2ecf20Sopenharmony_ci tristate "RAID 1/4/5/6/10 target" 3938c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 3948c2ecf20Sopenharmony_ci select MD_RAID0 3958c2ecf20Sopenharmony_ci select MD_RAID1 3968c2ecf20Sopenharmony_ci select MD_RAID10 3978c2ecf20Sopenharmony_ci select MD_RAID456 3988c2ecf20Sopenharmony_ci select BLK_DEV_MD 3998c2ecf20Sopenharmony_ci help 4008c2ecf20Sopenharmony_ci A dm target that supports RAID1, RAID10, RAID4, RAID5 and RAID6 mappings 4018c2ecf20Sopenharmony_ci 4028c2ecf20Sopenharmony_ci A RAID-5 set of N drives with a capacity of C MB per drive provides 4038c2ecf20Sopenharmony_ci the capacity of C * (N - 1) MB, and protects against a failure 4048c2ecf20Sopenharmony_ci of a single drive. For a given sector (row) number, (N - 1) drives 4058c2ecf20Sopenharmony_ci contain data sectors, and one drive contains the parity protection. 4068c2ecf20Sopenharmony_ci For a RAID-4 set, the parity blocks are present on a single drive, 4078c2ecf20Sopenharmony_ci while a RAID-5 set distributes the parity across the drives in one 4088c2ecf20Sopenharmony_ci of the available parity distribution methods. 4098c2ecf20Sopenharmony_ci 4108c2ecf20Sopenharmony_ci A RAID-6 set of N drives with a capacity of C MB per drive 4118c2ecf20Sopenharmony_ci provides the capacity of C * (N - 2) MB, and protects 4128c2ecf20Sopenharmony_ci against a failure of any two drives. For a given sector 4138c2ecf20Sopenharmony_ci (row) number, (N - 2) drives contain data sectors, and two 4148c2ecf20Sopenharmony_ci drives contains two independent redundancy syndromes. Like 4158c2ecf20Sopenharmony_ci RAID-5, RAID-6 distributes the syndromes across the drives 4168c2ecf20Sopenharmony_ci in one of the available parity distribution methods. 4178c2ecf20Sopenharmony_ci 4188c2ecf20Sopenharmony_ciconfig DM_ZERO 4198c2ecf20Sopenharmony_ci tristate "Zero target" 4208c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 4218c2ecf20Sopenharmony_ci help 4228c2ecf20Sopenharmony_ci A target that discards writes, and returns all zeroes for 4238c2ecf20Sopenharmony_ci reads. Useful in some recovery situations. 4248c2ecf20Sopenharmony_ci 4258c2ecf20Sopenharmony_ciconfig DM_MULTIPATH 4268c2ecf20Sopenharmony_ci tristate "Multipath target" 4278c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 4288c2ecf20Sopenharmony_ci # nasty syntax but means make DM_MULTIPATH independent 4298c2ecf20Sopenharmony_ci # of SCSI_DH if the latter isn't defined but if 4308c2ecf20Sopenharmony_ci # it is, DM_MULTIPATH must depend on it. We get a build 4318c2ecf20Sopenharmony_ci # error if SCSI_DH=m and DM_MULTIPATH=y 4328c2ecf20Sopenharmony_ci depends on !SCSI_DH || SCSI 4338c2ecf20Sopenharmony_ci help 4348c2ecf20Sopenharmony_ci Allow volume managers to support multipath hardware. 4358c2ecf20Sopenharmony_ci 4368c2ecf20Sopenharmony_ciconfig DM_MULTIPATH_QL 4378c2ecf20Sopenharmony_ci tristate "I/O Path Selector based on the number of in-flight I/Os" 4388c2ecf20Sopenharmony_ci depends on DM_MULTIPATH 4398c2ecf20Sopenharmony_ci help 4408c2ecf20Sopenharmony_ci This path selector is a dynamic load balancer which selects 4418c2ecf20Sopenharmony_ci the path with the least number of in-flight I/Os. 4428c2ecf20Sopenharmony_ci 4438c2ecf20Sopenharmony_ci If unsure, say N. 4448c2ecf20Sopenharmony_ci 4458c2ecf20Sopenharmony_ciconfig DM_MULTIPATH_ST 4468c2ecf20Sopenharmony_ci tristate "I/O Path Selector based on the service time" 4478c2ecf20Sopenharmony_ci depends on DM_MULTIPATH 4488c2ecf20Sopenharmony_ci help 4498c2ecf20Sopenharmony_ci This path selector is a dynamic load balancer which selects 4508c2ecf20Sopenharmony_ci the path expected to complete the incoming I/O in the shortest 4518c2ecf20Sopenharmony_ci time. 4528c2ecf20Sopenharmony_ci 4538c2ecf20Sopenharmony_ci If unsure, say N. 4548c2ecf20Sopenharmony_ci 4558c2ecf20Sopenharmony_ciconfig DM_MULTIPATH_HST 4568c2ecf20Sopenharmony_ci tristate "I/O Path Selector based on historical service time" 4578c2ecf20Sopenharmony_ci depends on DM_MULTIPATH 4588c2ecf20Sopenharmony_ci help 4598c2ecf20Sopenharmony_ci This path selector is a dynamic load balancer which selects 4608c2ecf20Sopenharmony_ci the path expected to complete the incoming I/O in the shortest 4618c2ecf20Sopenharmony_ci time by comparing estimated service time (based on historical 4628c2ecf20Sopenharmony_ci service time). 4638c2ecf20Sopenharmony_ci 4648c2ecf20Sopenharmony_ci If unsure, say N. 4658c2ecf20Sopenharmony_ci 4668c2ecf20Sopenharmony_ciconfig DM_DELAY 4678c2ecf20Sopenharmony_ci tristate "I/O delaying target" 4688c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 4698c2ecf20Sopenharmony_ci help 4708c2ecf20Sopenharmony_ci A target that delays reads and/or writes and can send 4718c2ecf20Sopenharmony_ci them to different devices. Useful for testing. 4728c2ecf20Sopenharmony_ci 4738c2ecf20Sopenharmony_ci If unsure, say N. 4748c2ecf20Sopenharmony_ci 4758c2ecf20Sopenharmony_ciconfig DM_DUST 4768c2ecf20Sopenharmony_ci tristate "Bad sector simulation target" 4778c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 4788c2ecf20Sopenharmony_ci help 4798c2ecf20Sopenharmony_ci A target that simulates bad sector behavior. 4808c2ecf20Sopenharmony_ci Useful for testing. 4818c2ecf20Sopenharmony_ci 4828c2ecf20Sopenharmony_ci If unsure, say N. 4838c2ecf20Sopenharmony_ci 4848c2ecf20Sopenharmony_ciconfig DM_INIT 4858c2ecf20Sopenharmony_ci bool "DM \"dm-mod.create=\" parameter support" 4868c2ecf20Sopenharmony_ci depends on BLK_DEV_DM=y 4878c2ecf20Sopenharmony_ci help 4888c2ecf20Sopenharmony_ci Enable "dm-mod.create=" parameter to create mapped devices at init time. 4898c2ecf20Sopenharmony_ci This option is useful to allow mounting rootfs without requiring an 4908c2ecf20Sopenharmony_ci initramfs. 4918c2ecf20Sopenharmony_ci See Documentation/admin-guide/device-mapper/dm-init.rst for dm-mod.create="..." 4928c2ecf20Sopenharmony_ci format. 4938c2ecf20Sopenharmony_ci 4948c2ecf20Sopenharmony_ci If unsure, say N. 4958c2ecf20Sopenharmony_ci 4968c2ecf20Sopenharmony_ciconfig DM_UEVENT 4978c2ecf20Sopenharmony_ci bool "DM uevents" 4988c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 4998c2ecf20Sopenharmony_ci help 5008c2ecf20Sopenharmony_ci Generate udev events for DM events. 5018c2ecf20Sopenharmony_ci 5028c2ecf20Sopenharmony_ciconfig DM_FLAKEY 5038c2ecf20Sopenharmony_ci tristate "Flakey target" 5048c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 5058c2ecf20Sopenharmony_ci help 5068c2ecf20Sopenharmony_ci A target that intermittently fails I/O for debugging purposes. 5078c2ecf20Sopenharmony_ci 5088c2ecf20Sopenharmony_ciconfig DM_VERITY 5098c2ecf20Sopenharmony_ci tristate "Verity target support" 5108c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 5118c2ecf20Sopenharmony_ci select CRYPTO 5128c2ecf20Sopenharmony_ci select CRYPTO_HASH 5138c2ecf20Sopenharmony_ci select DM_BUFIO 5148c2ecf20Sopenharmony_ci help 5158c2ecf20Sopenharmony_ci This device-mapper target creates a read-only device that 5168c2ecf20Sopenharmony_ci transparently validates the data on one underlying device against 5178c2ecf20Sopenharmony_ci a pre-generated tree of cryptographic checksums stored on a second 5188c2ecf20Sopenharmony_ci device. 5198c2ecf20Sopenharmony_ci 5208c2ecf20Sopenharmony_ci You'll need to activate the digests you're going to use in the 5218c2ecf20Sopenharmony_ci cryptoapi configuration. 5228c2ecf20Sopenharmony_ci 5238c2ecf20Sopenharmony_ci To compile this code as a module, choose M here: the module will 5248c2ecf20Sopenharmony_ci be called dm-verity. 5258c2ecf20Sopenharmony_ci 5268c2ecf20Sopenharmony_ci If unsure, say N. 5278c2ecf20Sopenharmony_ci 5288c2ecf20Sopenharmony_ciconfig DM_VERITY_VERIFY_ROOTHASH_SIG 5298c2ecf20Sopenharmony_ci def_bool n 5308c2ecf20Sopenharmony_ci bool "Verity data device root hash signature verification support" 5318c2ecf20Sopenharmony_ci depends on DM_VERITY 5328c2ecf20Sopenharmony_ci select SYSTEM_DATA_VERIFICATION 5338c2ecf20Sopenharmony_ci help 5348c2ecf20Sopenharmony_ci Add ability for dm-verity device to be validated if the 5358c2ecf20Sopenharmony_ci pre-generated tree of cryptographic checksums passed has a pkcs#7 5368c2ecf20Sopenharmony_ci signature file that can validate the roothash of the tree. 5378c2ecf20Sopenharmony_ci 5388c2ecf20Sopenharmony_ci If unsure, say N. 5398c2ecf20Sopenharmony_ci 5408c2ecf20Sopenharmony_ciconfig DM_VERITY_FEC 5418c2ecf20Sopenharmony_ci bool "Verity forward error correction support" 5428c2ecf20Sopenharmony_ci depends on DM_VERITY 5438c2ecf20Sopenharmony_ci select REED_SOLOMON 5448c2ecf20Sopenharmony_ci select REED_SOLOMON_DEC8 5458c2ecf20Sopenharmony_ci help 5468c2ecf20Sopenharmony_ci Add forward error correction support to dm-verity. This option 5478c2ecf20Sopenharmony_ci makes it possible to use pre-generated error correction data to 5488c2ecf20Sopenharmony_ci recover from corrupted blocks. 5498c2ecf20Sopenharmony_ci 5508c2ecf20Sopenharmony_ci If unsure, say N. 5518c2ecf20Sopenharmony_ci 5528c2ecf20Sopenharmony_ciconfig DM_SWITCH 5538c2ecf20Sopenharmony_ci tristate "Switch target support (EXPERIMENTAL)" 5548c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 5558c2ecf20Sopenharmony_ci help 5568c2ecf20Sopenharmony_ci This device-mapper target creates a device that supports an arbitrary 5578c2ecf20Sopenharmony_ci mapping of fixed-size regions of I/O across a fixed set of paths. 5588c2ecf20Sopenharmony_ci The path used for any specific region can be switched dynamically 5598c2ecf20Sopenharmony_ci by sending the target a message. 5608c2ecf20Sopenharmony_ci 5618c2ecf20Sopenharmony_ci To compile this code as a module, choose M here: the module will 5628c2ecf20Sopenharmony_ci be called dm-switch. 5638c2ecf20Sopenharmony_ci 5648c2ecf20Sopenharmony_ci If unsure, say N. 5658c2ecf20Sopenharmony_ci 5668c2ecf20Sopenharmony_ciconfig DM_LOG_WRITES 5678c2ecf20Sopenharmony_ci tristate "Log writes target support" 5688c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 5698c2ecf20Sopenharmony_ci help 5708c2ecf20Sopenharmony_ci This device-mapper target takes two devices, one device to use 5718c2ecf20Sopenharmony_ci normally, one to log all write operations done to the first device. 5728c2ecf20Sopenharmony_ci This is for use by file system developers wishing to verify that 5738c2ecf20Sopenharmony_ci their fs is writing a consistent file system at all times by allowing 5748c2ecf20Sopenharmony_ci them to replay the log in a variety of ways and to check the 5758c2ecf20Sopenharmony_ci contents. 5768c2ecf20Sopenharmony_ci 5778c2ecf20Sopenharmony_ci To compile this code as a module, choose M here: the module will 5788c2ecf20Sopenharmony_ci be called dm-log-writes. 5798c2ecf20Sopenharmony_ci 5808c2ecf20Sopenharmony_ci If unsure, say N. 5818c2ecf20Sopenharmony_ci 5828c2ecf20Sopenharmony_ciconfig DM_INTEGRITY 5838c2ecf20Sopenharmony_ci tristate "Integrity target support" 5848c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 5858c2ecf20Sopenharmony_ci select BLK_DEV_INTEGRITY 5868c2ecf20Sopenharmony_ci select DM_BUFIO 5878c2ecf20Sopenharmony_ci select CRYPTO 5888c2ecf20Sopenharmony_ci select CRYPTO_SKCIPHER 5898c2ecf20Sopenharmony_ci select ASYNC_XOR 5908c2ecf20Sopenharmony_ci help 5918c2ecf20Sopenharmony_ci This device-mapper target emulates a block device that has 5928c2ecf20Sopenharmony_ci additional per-sector tags that can be used for storing 5938c2ecf20Sopenharmony_ci integrity information. 5948c2ecf20Sopenharmony_ci 5958c2ecf20Sopenharmony_ci This integrity target is used with the dm-crypt target to 5968c2ecf20Sopenharmony_ci provide authenticated disk encryption or it can be used 5978c2ecf20Sopenharmony_ci standalone. 5988c2ecf20Sopenharmony_ci 5998c2ecf20Sopenharmony_ci To compile this code as a module, choose M here: the module will 6008c2ecf20Sopenharmony_ci be called dm-integrity. 6018c2ecf20Sopenharmony_ci 6028c2ecf20Sopenharmony_ciconfig DM_ZONED 6038c2ecf20Sopenharmony_ci tristate "Drive-managed zoned block device target support" 6048c2ecf20Sopenharmony_ci depends on BLK_DEV_DM 6058c2ecf20Sopenharmony_ci depends on BLK_DEV_ZONED 6068c2ecf20Sopenharmony_ci select CRC32 6078c2ecf20Sopenharmony_ci help 6088c2ecf20Sopenharmony_ci This device-mapper target takes a host-managed or host-aware zoned 6098c2ecf20Sopenharmony_ci block device and exposes most of its capacity as a regular block 6108c2ecf20Sopenharmony_ci device (drive-managed zoned block device) without any write 6118c2ecf20Sopenharmony_ci constraints. This is mainly intended for use with file systems that 6128c2ecf20Sopenharmony_ci do not natively support zoned block devices but still want to 6138c2ecf20Sopenharmony_ci benefit from the increased capacity offered by SMR disks. Other uses 6148c2ecf20Sopenharmony_ci by applications using raw block devices (for example object stores) 6158c2ecf20Sopenharmony_ci are also possible. 6168c2ecf20Sopenharmony_ci 6178c2ecf20Sopenharmony_ci To compile this code as a module, choose M here: the module will 6188c2ecf20Sopenharmony_ci be called dm-zoned. 6198c2ecf20Sopenharmony_ci 6208c2ecf20Sopenharmony_ci If unsure, say N. 6218c2ecf20Sopenharmony_ci 6228c2ecf20Sopenharmony_ciendif # MD 623