2009-09-26 06:07:19 +07:00
|
|
|
#
|
|
|
|
# DRBD device driver configuration
|
|
|
|
#
|
|
|
|
|
2012-12-06 17:11:04 +07:00
|
|
|
comment "DRBD disabled because PROC_FS or INET not selected"
|
|
|
|
depends on PROC_FS='n' || INET='n'
|
2009-09-26 06:07:19 +07:00
|
|
|
|
|
|
|
config BLK_DEV_DRBD
|
|
|
|
tristate "DRBD Distributed Replicated Block Device support"
|
2012-12-06 17:11:04 +07:00
|
|
|
depends on PROC_FS && INET
|
2009-09-26 06:07:19 +07:00
|
|
|
select LRU_CACHE
|
2012-12-06 17:11:04 +07:00
|
|
|
select LIBCRC32C
|
2009-09-26 06:07:19 +07:00
|
|
|
default n
|
|
|
|
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: http://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
|
2012-12-06 17:11:04 +07:00
|
|
|
256 allocation of peer_requests
|
|
|
|
512 insert data corruption on receiving side
|
2009-09-26 06:07:19 +07:00
|
|
|
|
|
|
|
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.
|