xref: /linux-6.15/drivers/block/drbd/Kconfig (revision b411b363)
1#
2# DRBD device driver configuration
3#
4
5comment "DRBD disabled because PROC_FS, INET or CONNECTOR not selected"
6	depends on !PROC_FS || !INET || !CONNECTOR
7
8config BLK_DEV_DRBD
9	tristate "DRBD Distributed Replicated Block Device support"
10	depends on PROC_FS && INET && CONNECTOR
11	select LRU_CACHE
12	default n
13	help
14
15	  NOTE: In order to authenticate connections you have to select
16	  CRYPTO_HMAC and a hash function as well.
17
18	  DRBD is a shared-nothing, synchronously replicated block device. It
19	  is designed to serve as a building block for high availability
20	  clusters and in this context, is a "drop-in" replacement for shared
21	  storage. Simplistically, you could see it as a network RAID 1.
22
23	  Each minor device has a role, which can be 'primary' or 'secondary'.
24	  On the node with the primary device the application is supposed to
25	  run and to access the device (/dev/drbdX). Every write is sent to
26	  the local 'lower level block device' and, across the network, to the
27	  node with the device in 'secondary' state.  The secondary device
28	  simply writes the data to its lower level block device.
29
30	  DRBD can also be used in dual-Primary mode (device writable on both
31	  nodes), which means it can exhibit shared disk semantics in a
32	  shared-nothing cluster.  Needless to say, on top of dual-Primary
33	  DRBD utilizing a cluster file system is necessary to maintain for
34	  cache coherency.
35
36	  For automatic failover you need a cluster manager (e.g. heartbeat).
37	  See also: http://www.drbd.org/, http://www.linux-ha.org
38
39	  If unsure, say N.
40
41config DRBD_TRACE
42	tristate "DRBD tracing"
43	depends on BLK_DEV_DRBD
44	select TRACEPOINTS
45	default n
46	help
47
48	  Say Y here if you want to be able to trace various events in DRBD.
49
50	  If unsure, say N.
51
52config DRBD_FAULT_INJECTION
53	bool "DRBD fault injection"
54	depends on BLK_DEV_DRBD
55	help
56
57	  Say Y here if you want to simulate IO errors, in order to test DRBD's
58	  behavior.
59
60	  The actual simulation of IO errors is done by writing 3 values to
61	  /sys/module/drbd/parameters/
62
63	  enable_faults: bitmask of...
64	  1	meta data write
65	  2               read
66	  4	resync data write
67	  8	            read
68	  16	data write
69	  32	data read
70	  64	read ahead
71	  128	kmalloc of bitmap
72	  256	allocation of EE (epoch_entries)
73
74	  fault_devs: bitmask of minor numbers
75	  fault_rate: frequency in percent
76
77	  Example: Simulate data write errors on /dev/drbd0 with a probability of 5%.
78		echo 16 > /sys/module/drbd/parameters/enable_faults
79		echo 1 > /sys/module/drbd/parameters/fault_devs
80		echo 5 > /sys/module/drbd/parameters/fault_rate
81
82	  If unsure, say N.
83