linux-yocto/drivers/block/drbd/Kconfig
Christoph Böhmwalder 93c68cc46a drbd: use consistent license
DRBD currently has a mix of GPL-2.0 and GPL-2.0-or-later SPDX license
identifiers. We have decided to stick with GPL 2.0 only, so consistently
use that identifier.

Signed-off-by: Christoph Böhmwalder <christoph.boehmwalder@linbit.com>
Link: https://lore.kernel.org/r/20221122134301.69258-5-christoph.boehmwalder@linbit.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-11-22 19:38:39 -07:00

2.4 KiB

SPDX-License-Identifier: GPL-2.0-only

DRBD device driver configuration

comment "DRBD disabled because PROC_FS or INET not selected" depends on PROC_FS='n' || INET='n'

config BLK_DEV_DRBD tristate "DRBD Distributed Replicated Block Device support" depends on PROC_FS && INET select LRU_CACHE select LIBCRC32C help

  NOTE: In order to authenticate connections you have to select
  CRYPTO_HMAC and a hash function as well.

  DRBD is a shared-nothing, synchronously replicated block device. It
  is designed to serve as a building block for high availability
  clusters and in this context, is a "drop-in" replacement for shared
  storage. Simplistically, you could see it as a network RAID 1.

  Each minor device has a role, which can be 'primary' or 'secondary'.
  On the node with the primary device the application is supposed to
  run and to access the device (/dev/drbdX). Every write is sent to
  the local 'lower level block device' and, across the network, to the
  node with the device in 'secondary' state.  The secondary device
  simply writes the data to its lower level block device.

  DRBD can also be used in dual-Primary mode (device writable on both
  nodes), which means it can exhibit shared disk semantics in a
  shared-nothing cluster.  Needless to say, on top of dual-Primary
  DRBD utilizing a cluster file system is necessary to maintain for
  cache coherency.

  For automatic failover you need a cluster manager (e.g. heartbeat).
  See also: https://www.drbd.org/, http://www.linux-ha.org

  If unsure, say N.

config DRBD_FAULT_INJECTION bool "DRBD fault injection" depends on BLK_DEV_DRBD help

  Say Y here if you want to simulate IO errors, in order to test DRBD's
  behavior.

  The actual simulation of IO errors is done by writing 3 values to
  /sys/module/drbd/parameters/

  enable_faults: bitmask of...
  1	meta data write
  2               read
  4	resync data write
  8	            read
  16	data write
  32	data read
  64	read ahead
  128	kmalloc of bitmap
  256	allocation of peer_requests
  512	insert data corruption on receiving side

  fault_devs: bitmask of minor numbers
  fault_rate: frequency in percent

  Example: Simulate data write errors on /dev/drbd0 with a probability of 5%.
	echo 16 > /sys/module/drbd/parameters/enable_faults
	echo 1 > /sys/module/drbd/parameters/fault_devs
	echo 5 > /sys/module/drbd/parameters/fault_rate

  If unsure, say N.