Commit | Line | Data |
---|---|---|
b411b363 PR |
1 | # |
2 | # DRBD device driver configuration | |
3 | # | |
4 | ||
5 | comment "DRBD disabled because PROC_FS, INET or CONNECTOR not selected" | |
89f01d5c | 6 | depends on PROC_FS='n' || INET='n' || CONNECTOR='n' |
b411b363 PR |
7 | |
8 | config 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 | ||
b411b363 PR |
41 | config DRBD_FAULT_INJECTION |
42 | bool "DRBD fault injection" | |
43 | depends on BLK_DEV_DRBD | |
44 | help | |
45 | ||
46 | Say Y here if you want to simulate IO errors, in order to test DRBD's | |
47 | behavior. | |
48 | ||
49 | The actual simulation of IO errors is done by writing 3 values to | |
50 | /sys/module/drbd/parameters/ | |
51 | ||
52 | enable_faults: bitmask of... | |
53 | 1 meta data write | |
54 | 2 read | |
55 | 4 resync data write | |
56 | 8 read | |
57 | 16 data write | |
58 | 32 data read | |
59 | 64 read ahead | |
60 | 128 kmalloc of bitmap | |
61 | 256 allocation of EE (epoch_entries) | |
62 | ||
63 | fault_devs: bitmask of minor numbers | |
64 | fault_rate: frequency in percent | |
65 | ||
66 | Example: Simulate data write errors on /dev/drbd0 with a probability of 5%. | |
67 | echo 16 > /sys/module/drbd/parameters/enable_faults | |
68 | echo 1 > /sys/module/drbd/parameters/fault_devs | |
69 | echo 5 > /sys/module/drbd/parameters/fault_rate | |
70 | ||
71 | If unsure, say N. |