Merge branch 'for-2.6.37/drivers' into for-linus
[linux-2.6.git] / drivers / block / drbd / Kconfig
1 #
2 # DRBD device driver configuration
3 #
4
5 comment "DRBD disabled because PROC_FS, INET or CONNECTOR not selected"
6         depends on PROC_FS='n' || INET='n' || CONNECTOR='n'
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
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.