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