brintos

brintos / linux-shallow public Read only

0
0
Text · 20.7 KiB · 1e9db8e Raw
649 lines · plain
1# SPDX-License-Identifier: GPL-2.0-only2#3# Block device driver configuration4#5 6menuconfig MD7	bool "Multiple devices driver support (RAID and LVM)"8	depends on BLOCK9	help10	  Support multiple physical spindles through a single logical device.11	  Required for RAID and logical volume management.12 13if MD14 15config BLK_DEV_MD16	tristate "RAID support"17	select BLOCK_HOLDER_DEPRECATED if SYSFS18	select BUFFER_HEAD19	# BLOCK_LEGACY_AUTOLOAD requirement should be removed20	# after relevant mdadm enhancements - to make "names=yes"21	# the default - are widely available.22	select BLOCK_LEGACY_AUTOLOAD23	help24	  This driver lets you combine several hard disk partitions into one25	  logical block device. This can be used to simply append one26	  partition to another one or to combine several redundant hard disks27	  into a RAID1/4/5 device so as to provide protection against hard28	  disk failures. This is called "Software RAID" since the combining of29	  the partitions is done by the kernel. "Hardware RAID" means that the30	  combining is done by a dedicated controller; if you have such a31	  controller, you do not need to say Y here.32 33	  More information about Software RAID on Linux is contained in the34	  Software RAID mini-HOWTO, available from35	  <https://www.tldp.org/docs.html#howto>. There you will also learn36	  where to get the supporting user space utilities raidtools.37 38	  If unsure, say N.39 40config MD_AUTODETECT41	bool "Autodetect RAID arrays during kernel boot"42	depends on BLK_DEV_MD=y43	default y44	help45	  If you say Y here, then the kernel will try to autodetect raid46	  arrays as part of its boot process.47 48	  If you don't use raid and say Y, this autodetection can cause49	  a several-second delay in the boot time due to various50	  synchronisation steps that are part of this step.51 52	  If unsure, say Y.53 54config MD_BITMAP_FILE55	bool "MD bitmap file support (deprecated)"56	default y57	help58	  If you say Y here, support for write intent bitmaps in files on an59	  external file system is enabled.  This is an alternative to the internal60	  bitmaps near the MD superblock, and very problematic code that abuses61	  various kernel APIs and can only work with files on a file system not62	  actually sitting on the MD device.63 64config MD_RAID065	tristate "RAID-0 (striping) mode"66	depends on BLK_DEV_MD67	help68	  If you say Y here, then your multiple devices driver will be able to69	  use the so-called raid0 mode, i.e. it will combine the hard disk70	  partitions into one logical device in such a fashion as to fill them71	  up evenly, one chunk here and one chunk there. This will increase72	  the throughput rate if the partitions reside on distinct disks.73 74	  Information about Software RAID on Linux is contained in the75	  Software-RAID mini-HOWTO, available from76	  <https://www.tldp.org/docs.html#howto>. There you will also77	  learn where to get the supporting user space utilities raidtools.78 79	  To compile this as a module, choose M here: the module80	  will be called raid0.81 82	  If unsure, say Y.83 84config MD_RAID185	tristate "RAID-1 (mirroring) mode"86	depends on BLK_DEV_MD87	help88	  A RAID-1 set consists of several disk drives which are exact copies89	  of each other.  In the event of a mirror failure, the RAID driver90	  will continue to use the operational mirrors in the set, providing91	  an error free MD (multiple device) to the higher levels of the92	  kernel.  In a set with N drives, the available space is the capacity93	  of a single drive, and the set protects against a failure of (N - 1)94	  drives.95 96	  Information about Software RAID on Linux is contained in the97	  Software-RAID mini-HOWTO, available from98	  <https://www.tldp.org/docs.html#howto>.  There you will also99	  learn where to get the supporting user space utilities raidtools.100 101	  If you want to use such a RAID-1 set, say Y.  To compile this code102	  as a module, choose M here: the module will be called raid1.103 104	  If unsure, say Y.105 106config MD_RAID10107	tristate "RAID-10 (mirrored striping) mode"108	depends on BLK_DEV_MD109	help110	  RAID-10 provides a combination of striping (RAID-0) and111	  mirroring (RAID-1) with easier configuration and more flexible112	  layout.113	  Unlike RAID-0, but like RAID-1, RAID-10 requires all devices to114	  be the same size (or at least, only as much as the smallest device115	  will be used).116	  RAID-10 provides a variety of layouts that provide different levels117	  of redundancy and performance.118 119	  RAID-10 requires mdadm-1.7.0 or later, available at:120 121	  https://www.kernel.org/pub/linux/utils/raid/mdadm/122 123	  If unsure, say Y.124 125config MD_RAID456126	tristate "RAID-4/RAID-5/RAID-6 mode"127	depends on BLK_DEV_MD128	select RAID6_PQ129	select LIBCRC32C130	select ASYNC_MEMCPY131	select ASYNC_XOR132	select ASYNC_PQ133	select ASYNC_RAID6_RECOV134	help135	  A RAID-5 set of N drives with a capacity of C MB per drive provides136	  the capacity of C * (N - 1) MB, and protects against a failure137	  of a single drive. For a given sector (row) number, (N - 1) drives138	  contain data sectors, and one drive contains the parity protection.139	  For a RAID-4 set, the parity blocks are present on a single drive,140	  while a RAID-5 set distributes the parity across the drives in one141	  of the available parity distribution methods.142 143	  A RAID-6 set of N drives with a capacity of C MB per drive144	  provides the capacity of C * (N - 2) MB, and protects145	  against a failure of any two drives. For a given sector146	  (row) number, (N - 2) drives contain data sectors, and two147	  drives contains two independent redundancy syndromes.  Like148	  RAID-5, RAID-6 distributes the syndromes across the drives149	  in one of the available parity distribution methods.150 151	  Information about Software RAID on Linux is contained in the152	  Software-RAID mini-HOWTO, available from153	  <https://www.tldp.org/docs.html#howto>. There you will also154	  learn where to get the supporting user space utilities raidtools.155 156	  If you want to use such a RAID-4/RAID-5/RAID-6 set, say Y.  To157	  compile this code as a module, choose M here: the module158	  will be called raid456.159 160	  If unsure, say Y.161 162config MD_CLUSTER163	tristate "Cluster Support for MD"164	depends on BLK_DEV_MD165	depends on DLM166	default n167	help168	Clustering support for MD devices. This enables locking and169	synchronization across multiple systems on the cluster, so all170	nodes in the cluster can access the MD devices simultaneously.171 172	This brings the redundancy (and uptime) of RAID levels across the173	nodes of the cluster. Currently, it can work with raid1 and raid10174	(limited support).175 176	If unsure, say N.177 178source "drivers/md/bcache/Kconfig"179 180config BLK_DEV_DM_BUILTIN181	bool182 183config BLK_DEV_DM184	tristate "Device mapper support"185	select BLOCK_HOLDER_DEPRECATED if SYSFS186	select BLK_DEV_DM_BUILTIN187	select BLK_MQ_STACKING188	depends on DAX || DAX=n189	help190	  Device-mapper is a low level volume manager.  It works by allowing191	  people to specify mappings for ranges of logical sectors.  Various192	  mapping types are available, in addition people may write their own193	  modules containing custom mappings if they wish.194 195	  Higher level volume managers such as LVM2 use this driver.196 197	  To compile this as a module, choose M here: the module will be198	  called dm-mod.199 200	  If unsure, say N.201 202config DM_DEBUG203	bool "Device mapper debugging support"204	depends on BLK_DEV_DM205	help206	  Enable this for messages that may help debug device-mapper problems.207 208	  If unsure, say N.209 210config DM_BUFIO211       tristate212       depends on BLK_DEV_DM213	help214	 This interface allows you to do buffered I/O on a device and acts215	 as a cache, holding recently-read blocks in memory and performing216	 delayed writes.217 218config DM_DEBUG_BLOCK_MANAGER_LOCKING219       bool "Block manager locking"220       depends on DM_BUFIO221	help222	 Block manager locking can catch various metadata corruption issues.223 224	 If unsure, say N.225 226config DM_DEBUG_BLOCK_STACK_TRACING227       bool "Keep stack trace of persistent data block lock holders"228       depends on STACKTRACE_SUPPORT && DM_DEBUG_BLOCK_MANAGER_LOCKING229       select STACKTRACE230	help231	 Enable this for messages that may help debug problems with the232	 block manager locking used by thin provisioning and caching.233 234	 If unsure, say N.235 236config DM_BIO_PRISON237       tristate238       depends on BLK_DEV_DM239	help240	 Some bio locking schemes used by other device-mapper targets241	 including thin provisioning.242 243source "drivers/md/persistent-data/Kconfig"244 245config DM_UNSTRIPED246       tristate "Unstriped target"247       depends on BLK_DEV_DM248	help249	  Unstripes I/O so it is issued solely on a single drive in a HW250	  RAID0 or dm-striped target.251 252config DM_CRYPT253	tristate "Crypt target support"254	depends on BLK_DEV_DM255	depends on (ENCRYPTED_KEYS || ENCRYPTED_KEYS=n)256	depends on (TRUSTED_KEYS || TRUSTED_KEYS=n)257	select CRYPTO258	select CRYPTO_CBC259	select CRYPTO_ESSIV260	help261	  This device-mapper target allows you to create a device that262	  transparently encrypts the data on it. You'll need to activate263	  the ciphers you're going to use in the cryptoapi configuration.264 265	  For further information on dm-crypt and userspace tools see:266	  <https://gitlab.com/cryptsetup/cryptsetup/wikis/DMCrypt>267 268	  To compile this code as a module, choose M here: the module will269	  be called dm-crypt.270 271	  If unsure, say N.272 273config DM_SNAPSHOT274       tristate "Snapshot target"275       depends on BLK_DEV_DM276       select DM_BUFIO277	help278	 Allow volume managers to take writable snapshots of a device.279 280config DM_THIN_PROVISIONING281       tristate "Thin provisioning target"282       depends on BLK_DEV_DM283       select DM_PERSISTENT_DATA284       select DM_BIO_PRISON285	help286	 Provides thin provisioning and snapshots that share a data store.287 288config DM_CACHE289       tristate "Cache target (EXPERIMENTAL)"290       depends on BLK_DEV_DM291       default n292       select DM_PERSISTENT_DATA293       select DM_BIO_PRISON294	help295	 dm-cache attempts to improve performance of a block device by296	 moving frequently used data to a smaller, higher performance297	 device.  Different 'policy' plugins can be used to change the298	 algorithms used to select which blocks are promoted, demoted,299	 cleaned etc.  It supports writeback and writethrough modes.300 301config DM_CACHE_SMQ302       tristate "Stochastic MQ Cache Policy (EXPERIMENTAL)"303       depends on DM_CACHE304       default y305	help306	 A cache policy that uses a multiqueue ordered by recent hits307	 to select which blocks should be promoted and demoted.308	 This is meant to be a general purpose policy.  It prioritises309	 reads over writes.  This SMQ policy (vs MQ) offers the promise310	 of less memory utilization, improved performance and increased311	 adaptability in the face of changing workloads.312 313config DM_WRITECACHE314	tristate "Writecache target"315	depends on BLK_DEV_DM316	help317	   The writecache target caches writes on persistent memory or SSD.318	   It is intended for databases or other programs that need extremely319	   low commit latency.320 321	   The writecache target doesn't cache reads because reads are supposed322	   to be cached in standard RAM.323 324config DM_EBS325	tristate "Emulated block size target (EXPERIMENTAL)"326	depends on BLK_DEV_DM && !HIGHMEM327	select DM_BUFIO328	help329	  dm-ebs emulates smaller logical block size on backing devices330	  with larger ones (e.g. 512 byte sectors on 4K native disks).331 332config DM_ERA333       tristate "Era target (EXPERIMENTAL)"334       depends on BLK_DEV_DM335       default n336       select DM_PERSISTENT_DATA337       select DM_BIO_PRISON338	help339	 dm-era tracks which parts of a block device are written to340	 over time.  Useful for maintaining cache coherency when using341	 vendor snapshots.342 343config DM_CLONE344       tristate "Clone target (EXPERIMENTAL)"345       depends on BLK_DEV_DM346       default n347       select DM_PERSISTENT_DATA348	help349	 dm-clone produces a one-to-one copy of an existing, read-only source350	 device into a writable destination device. The cloned device is351	 visible/mountable immediately and the copy of the source device to the352	 destination device happens in the background, in parallel with user353	 I/O.354 355	 If unsure, say N.356 357config DM_MIRROR358       tristate "Mirror target"359       depends on BLK_DEV_DM360	help361	 Allow volume managers to mirror logical volumes, also362	 needed for live data migration tools such as 'pvmove'.363 364config DM_LOG_USERSPACE365	tristate "Mirror userspace logging"366	depends on DM_MIRROR && NET367	select CONNECTOR368	help369	  The userspace logging module provides a mechanism for370	  relaying the dm-dirty-log API to userspace.  Log designs371	  which are more suited to userspace implementation (e.g.372	  shared storage logs) or experimental logs can be implemented373	  by leveraging this framework.374 375config DM_RAID376       tristate "RAID 1/4/5/6/10 target"377       depends on BLK_DEV_DM378       select MD_RAID0379       select MD_RAID1380       select MD_RAID10381       select MD_RAID456382       select BLK_DEV_MD383	help384	 A dm target that supports RAID1, RAID10, RAID4, RAID5 and RAID6 mappings385 386	 A RAID-5 set of N drives with a capacity of C MB per drive provides387	 the capacity of C * (N - 1) MB, and protects against a failure388	 of a single drive. For a given sector (row) number, (N - 1) drives389	 contain data sectors, and one drive contains the parity protection.390	 For a RAID-4 set, the parity blocks are present on a single drive,391	 while a RAID-5 set distributes the parity across the drives in one392	 of the available parity distribution methods.393 394	 A RAID-6 set of N drives with a capacity of C MB per drive395	 provides the capacity of C * (N - 2) MB, and protects396	 against a failure of any two drives. For a given sector397	 (row) number, (N - 2) drives contain data sectors, and two398	 drives contains two independent redundancy syndromes.  Like399	 RAID-5, RAID-6 distributes the syndromes across the drives400	 in one of the available parity distribution methods.401 402config DM_ZERO403	tristate "Zero target"404	depends on BLK_DEV_DM405	help406	  A target that discards writes, and returns all zeroes for407	  reads.  Useful in some recovery situations.408 409config DM_MULTIPATH410	tristate "Multipath target"411	depends on BLK_DEV_DM412	# nasty syntax but means make DM_MULTIPATH independent413	# of SCSI_DH if the latter isn't defined but if414	# it is, DM_MULTIPATH must depend on it.  We get a build415	# error if SCSI_DH=m and DM_MULTIPATH=y416	depends on !SCSI_DH || SCSI417	help418	  Allow volume managers to support multipath hardware.419 420config DM_MULTIPATH_QL421	tristate "I/O Path Selector based on the number of in-flight I/Os"422	depends on DM_MULTIPATH423	help424	  This path selector is a dynamic load balancer which selects425	  the path with the least number of in-flight I/Os.426 427	  If unsure, say N.428 429config DM_MULTIPATH_ST430	tristate "I/O Path Selector based on the service time"431	depends on DM_MULTIPATH432	help433	  This path selector is a dynamic load balancer which selects434	  the path expected to complete the incoming I/O in the shortest435	  time.436 437	  If unsure, say N.438 439config DM_MULTIPATH_HST440	tristate "I/O Path Selector based on historical service time"441	depends on DM_MULTIPATH442	help443	  This path selector is a dynamic load balancer which selects444	  the path expected to complete the incoming I/O in the shortest445	  time by comparing estimated service time (based on historical446	  service time).447 448	  If unsure, say N.449 450config DM_MULTIPATH_IOA451	tristate "I/O Path Selector based on CPU submission"452	depends on DM_MULTIPATH453	help454	  This path selector selects the path based on the CPU the IO is455	  executed on and the CPU to path mapping setup at path addition time.456 457	  If unsure, say N.458 459config DM_DELAY460	tristate "I/O delaying target"461	depends on BLK_DEV_DM462	help463	A target that delays reads and/or writes and can send464	them to different devices.  Useful for testing.465 466	If unsure, say N.467 468config DM_DUST469	tristate "Bad sector simulation target"470	depends on BLK_DEV_DM471	help472	A target that simulates bad sector behavior.473	Useful for testing.474 475	If unsure, say N.476 477config DM_INIT478	bool "DM \"dm-mod.create=\" parameter support"479	depends on BLK_DEV_DM=y480	help481	Enable "dm-mod.create=" parameter to create mapped devices at init time.482	This option is useful to allow mounting rootfs without requiring an483	initramfs.484	See Documentation/admin-guide/device-mapper/dm-init.rst for dm-mod.create="..."485	format.486 487	If unsure, say N.488 489config DM_UEVENT490	bool "DM uevents"491	depends on BLK_DEV_DM492	help493	Generate udev events for DM events.494 495config DM_FLAKEY496       tristate "Flakey target"497       depends on BLK_DEV_DM498	help499	 A target that intermittently fails I/O for debugging purposes.500 501config DM_VERITY502	tristate "Verity target support"503	depends on BLK_DEV_DM504	select CRYPTO505	select CRYPTO_HASH506	select DM_BUFIO507	help508	  This device-mapper target creates a read-only device that509	  transparently validates the data on one underlying device against510	  a pre-generated tree of cryptographic checksums stored on a second511	  device.512 513	  You'll need to activate the digests you're going to use in the514	  cryptoapi configuration.515 516	  To compile this code as a module, choose M here: the module will517	  be called dm-verity.518 519	  If unsure, say N.520 521config DM_VERITY_VERIFY_ROOTHASH_SIG522	bool "Verity data device root hash signature verification support"523	depends on DM_VERITY524	select SYSTEM_DATA_VERIFICATION525	help526	  Add ability for dm-verity device to be validated if the527	  pre-generated tree of cryptographic checksums passed has a pkcs#7528	  signature file that can validate the roothash of the tree.529 530	  By default, rely on the builtin trusted keyring.531 532	  If unsure, say N.533 534config DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING535	bool "Verity data device root hash signature verification with secondary keyring"536	depends on DM_VERITY_VERIFY_ROOTHASH_SIG537	depends on SECONDARY_TRUSTED_KEYRING538	help539	  Rely on the secondary trusted keyring to verify dm-verity signatures.540 541	  If unsure, say N.542 543config DM_VERITY_VERIFY_ROOTHASH_SIG_PLATFORM_KEYRING544	bool "Verity data device root hash signature verification with platform keyring"545	default DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING546	depends on DM_VERITY_VERIFY_ROOTHASH_SIG547	depends on INTEGRITY_PLATFORM_KEYRING548	help549	  Rely also on the platform keyring to verify dm-verity signatures.550 551	  If unsure, say N.552 553config DM_VERITY_FEC554	bool "Verity forward error correction support"555	depends on DM_VERITY556	select REED_SOLOMON557	select REED_SOLOMON_DEC8558	help559	  Add forward error correction support to dm-verity. This option560	  makes it possible to use pre-generated error correction data to561	  recover from corrupted blocks.562 563	  If unsure, say N.564 565config DM_SWITCH566	tristate "Switch target support (EXPERIMENTAL)"567	depends on BLK_DEV_DM568	help569	  This device-mapper target creates a device that supports an arbitrary570	  mapping of fixed-size regions of I/O across a fixed set of paths.571	  The path used for any specific region can be switched dynamically572	  by sending the target a message.573 574	  To compile this code as a module, choose M here: the module will575	  be called dm-switch.576 577	  If unsure, say N.578 579config DM_LOG_WRITES580	tristate "Log writes target support"581	depends on BLK_DEV_DM582	help583	  This device-mapper target takes two devices, one device to use584	  normally, one to log all write operations done to the first device.585	  This is for use by file system developers wishing to verify that586	  their fs is writing a consistent file system at all times by allowing587	  them to replay the log in a variety of ways and to check the588	  contents.589 590	  To compile this code as a module, choose M here: the module will591	  be called dm-log-writes.592 593	  If unsure, say N.594 595config DM_INTEGRITY596	tristate "Integrity target support"597	depends on BLK_DEV_DM598	select BLK_DEV_INTEGRITY599	select DM_BUFIO600	select CRYPTO601	select CRYPTO_SKCIPHER602	select ASYNC_XOR603	select DM_AUDIT if AUDIT604	help605	  This device-mapper target emulates a block device that has606	  additional per-sector tags that can be used for storing607	  integrity information.608 609	  This integrity target is used with the dm-crypt target to610	  provide authenticated disk encryption or it can be used611	  standalone.612 613	  To compile this code as a module, choose M here: the module will614	  be called dm-integrity.615 616config DM_ZONED617	tristate "Drive-managed zoned block device target support"618	depends on BLK_DEV_DM619	depends on BLK_DEV_ZONED620	select CRC32621	help622	  This device-mapper target takes a host-managed or host-aware zoned623	  block device and exposes most of its capacity as a regular block624	  device (drive-managed zoned block device) without any write625	  constraints. This is mainly intended for use with file systems that626	  do not natively support zoned block devices but still want to627	  benefit from the increased capacity offered by SMR disks. Other uses628	  by applications using raw block devices (for example object stores)629	  are also possible.630 631	  To compile this code as a module, choose M here: the module will632	  be called dm-zoned.633 634	  If unsure, say N.635 636config DM_AUDIT637	bool "DM audit events"638	depends on BLK_DEV_DM639	depends on AUDIT640	help641	  Generate audit events for device-mapper.642 643	  Enables audit logging of several security relevant events in the644	  particular device-mapper targets, especially the integrity target.645 646source "drivers/md/dm-vdo/Kconfig"647 648endif # MD649