Commit | Line | Data |
---|---|---|
b411b363 PR |
1 | # |
2 | # DRBD device driver configuration | |
3 | # | |
4 | ||
d2ec180c LE |
5 | comment "DRBD disabled because PROC_FS or INET not selected" |
6 | depends on PROC_FS='n' || INET='n' | |
b411b363 PR |
7 | |
8 | config BLK_DEV_DRBD | |
9 | tristate "DRBD Distributed Replicated Block Device support" | |
d2ec180c | 10 | depends on PROC_FS && INET |
b411b363 | 11 | select LRU_CACHE |
d2ec180c | 12 | select LIBCRC32C |
b411b363 PR |
13 | default n |
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: http://www.drbd.org/, http://www.linux-ha.org | |
39 | ||
40 | If unsure, say N. | |
41 | ||
b411b363 PR |
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 | |
d2ec180c LE |
62 | 256 allocation of peer_requests |
63 | 512 insert data corruption on receiving side | |
b411b363 PR |
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. |