forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.4 KiB
73 lines
2.4 KiB
# SPDX-License-Identifier: GPL-2.0 |
|
# |
|
# 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.
|
|
|