Blame view
include/linux/drbd_limits.h
7.09 KB
b411b3637
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
/* drbd_limits.h This file is part of DRBD by Philipp Reisner and Lars Ellenberg. */ /* * Our current limitations. * Some of them are hard limits, * some of them are arbitrary range limits, that make it easier to provide * feedback about nonsense settings for certain configurable values. */ #ifndef DRBD_LIMITS_H #define DRBD_LIMITS_H 1 #define DEBUG_RANGE_CHECK 0 #define DRBD_MINOR_COUNT_MIN 1 |
b80c04332
|
19 |
#define DRBD_MINOR_COUNT_MAX 255 |
2b8a90b55
|
20 |
#define DRBD_MINOR_COUNT_DEF 32 |
32bdb6403
|
21 |
#define DRBD_MINOR_COUNT_SCALE '1' |
b411b3637
|
22 |
|
0c8e36d9b
|
23 |
#define DRBD_VOLUME_MAX 65535 |
b411b3637
|
24 25 |
#define DRBD_DIALOG_REFRESH_MIN 0 #define DRBD_DIALOG_REFRESH_MAX 600 |
32bdb6403
|
26 |
#define DRBD_DIALOG_REFRESH_SCALE '1' |
b411b3637
|
27 28 29 30 |
/* valid port number */ #define DRBD_PORT_MIN 1 #define DRBD_PORT_MAX 0xffff |
32bdb6403
|
31 |
#define DRBD_PORT_SCALE '1' |
b411b3637
|
32 33 34 35 36 37 |
/* startup { */ /* if you want more than 3.4 days, disable */ #define DRBD_WFC_TIMEOUT_MIN 0 #define DRBD_WFC_TIMEOUT_MAX 300000 #define DRBD_WFC_TIMEOUT_DEF 0 |
32bdb6403
|
38 |
#define DRBD_WFC_TIMEOUT_SCALE '1' |
b411b3637
|
39 40 41 42 |
#define DRBD_DEGR_WFC_TIMEOUT_MIN 0 #define DRBD_DEGR_WFC_TIMEOUT_MAX 300000 #define DRBD_DEGR_WFC_TIMEOUT_DEF 0 |
32bdb6403
|
43 |
#define DRBD_DEGR_WFC_TIMEOUT_SCALE '1' |
b411b3637
|
44 45 46 47 |
#define DRBD_OUTDATED_WFC_TIMEOUT_MIN 0 #define DRBD_OUTDATED_WFC_TIMEOUT_MAX 300000 #define DRBD_OUTDATED_WFC_TIMEOUT_DEF 0 |
32bdb6403
|
48 |
#define DRBD_OUTDATED_WFC_TIMEOUT_SCALE '1' |
b411b3637
|
49 50 51 52 |
/* }*/ /* net { */ /* timeout, unit centi seconds |
25985edce
|
53 |
* more than one minute timeout is not useful */ |
b411b3637
|
54 55 56 |
#define DRBD_TIMEOUT_MIN 1 #define DRBD_TIMEOUT_MAX 600 #define DRBD_TIMEOUT_DEF 60 /* 6 seconds */ |
32bdb6403
|
57 |
#define DRBD_TIMEOUT_SCALE '1' |
b411b3637
|
58 |
|
cdfda633d
|
59 60 61 62 63 |
/* If backing disk takes longer than disk_timeout, mark the disk as failed */ #define DRBD_DISK_TIMEOUT_MIN 0 /* 0 = disabled */ #define DRBD_DISK_TIMEOUT_MAX 6000 /* 10 Minutes */ #define DRBD_DISK_TIMEOUT_DEF 0 /* disabled */ #define DRBD_DISK_TIMEOUT_SCALE '1' |
b411b3637
|
64 65 66 67 |
/* active connection retries when C_WF_CONNECTION */ #define DRBD_CONNECT_INT_MIN 1 #define DRBD_CONNECT_INT_MAX 120 #define DRBD_CONNECT_INT_DEF 10 /* seconds */ |
32bdb6403
|
68 |
#define DRBD_CONNECT_INT_SCALE '1' |
b411b3637
|
69 70 71 72 73 |
/* keep-alive probes when idle */ #define DRBD_PING_INT_MIN 1 #define DRBD_PING_INT_MAX 120 #define DRBD_PING_INT_DEF 10 |
32bdb6403
|
74 |
#define DRBD_PING_INT_SCALE '1' |
b411b3637
|
75 76 77 |
/* timeout for the ping packets.*/ #define DRBD_PING_TIMEO_MIN 1 |
f03c25496
|
78 |
#define DRBD_PING_TIMEO_MAX 300 |
b411b3637
|
79 |
#define DRBD_PING_TIMEO_DEF 5 |
32bdb6403
|
80 |
#define DRBD_PING_TIMEO_SCALE '1' |
b411b3637
|
81 82 83 84 85 |
/* max number of write requests between write barriers */ #define DRBD_MAX_EPOCH_SIZE_MIN 1 #define DRBD_MAX_EPOCH_SIZE_MAX 20000 #define DRBD_MAX_EPOCH_SIZE_DEF 2048 |
32bdb6403
|
86 |
#define DRBD_MAX_EPOCH_SIZE_SCALE '1' |
b411b3637
|
87 |
|
25985edce
|
88 |
/* I don't think that a tcp send buffer of more than 10M is useful */ |
b411b3637
|
89 90 |
#define DRBD_SNDBUF_SIZE_MIN 0 #define DRBD_SNDBUF_SIZE_MAX (10<<20) |
89e1838f5
|
91 |
#define DRBD_SNDBUF_SIZE_DEF 0 |
32bdb6403
|
92 |
#define DRBD_SNDBUF_SIZE_SCALE '1' |
b411b3637
|
93 94 95 |
#define DRBD_RCVBUF_SIZE_MIN 0 #define DRBD_RCVBUF_SIZE_MAX (10<<20) |
89e1838f5
|
96 |
#define DRBD_RCVBUF_SIZE_DEF 0 |
32bdb6403
|
97 |
#define DRBD_RCVBUF_SIZE_SCALE '1' |
b411b3637
|
98 99 100 101 102 |
/* @4k PageSize -> 128kB - 512MB */ #define DRBD_MAX_BUFFERS_MIN 32 #define DRBD_MAX_BUFFERS_MAX 131072 #define DRBD_MAX_BUFFERS_DEF 2048 |
32bdb6403
|
103 |
#define DRBD_MAX_BUFFERS_SCALE '1' |
b411b3637
|
104 105 106 107 108 |
/* @4k PageSize -> 4kB - 512MB */ #define DRBD_UNPLUG_WATERMARK_MIN 1 #define DRBD_UNPLUG_WATERMARK_MAX 131072 #define DRBD_UNPLUG_WATERMARK_DEF (DRBD_MAX_BUFFERS_DEF/16) |
32bdb6403
|
109 |
#define DRBD_UNPLUG_WATERMARK_SCALE '1' |
b411b3637
|
110 111 112 113 114 |
/* 0 is disabled. * 200 should be more than enough even for very short timeouts */ #define DRBD_KO_COUNT_MIN 0 #define DRBD_KO_COUNT_MAX 200 |
65d94927e
|
115 |
#define DRBD_KO_COUNT_DEF 7 |
32bdb6403
|
116 |
#define DRBD_KO_COUNT_SCALE '1' |
b411b3637
|
117 118 119 120 |
/* } */ /* syncer { */ /* FIXME allow rate to be zero? */ |
6394b9358
|
121 |
#define DRBD_RESYNC_RATE_MIN 1 |
b411b3637
|
122 |
/* channel bonding 10 GbE, or other hardware */ |
6394b9358
|
123 124 125 |
#define DRBD_RESYNC_RATE_MAX (4 << 20) #define DRBD_RESYNC_RATE_DEF 250 #define DRBD_RESYNC_RATE_SCALE 'k' /* kilobytes */ |
b411b3637
|
126 |
|
5bbcf5e6a
|
127 |
/* less than 7 would hit performance unnecessarily. */ |
b411b3637
|
128 |
#define DRBD_AL_EXTENTS_MIN 7 |
5bbcf5e6a
|
129 130 131 132 |
/* we use u16 as "slot number", (u16)~0 is "FREE". * If you use >= 292 kB on-disk ring buffer, * this is the maximum you can use: */ #define DRBD_AL_EXTENTS_MAX 0xfffe |
65d94927e
|
133 |
#define DRBD_AL_EXTENTS_DEF 1237 |
32bdb6403
|
134 |
#define DRBD_AL_EXTENTS_SCALE '1' |
b411b3637
|
135 |
|
309f0b70a
|
136 |
#define DRBD_MINOR_NUMBER_MIN -1 |
0317d9ecb
|
137 |
#define DRBD_MINOR_NUMBER_MAX ((1 << 20) - 1) |
309f0b70a
|
138 139 |
#define DRBD_MINOR_NUMBER_DEF -1 #define DRBD_MINOR_NUMBER_SCALE '1' |
b411b3637
|
140 141 142 143 144 145 |
/* } */ /* drbdsetup XY resize -d Z * you are free to reduce the device size to nothing, if you want to. * the upper limit with 64bit kernel, enough ram and flexible meta data |
15b493d11
|
146 |
* is 1 PiB, currently. */ |
b411b3637
|
147 |
/* DRBD_MAX_SECTORS */ |
c5482bbd9
|
148 |
#define DRBD_DISK_SIZE_MIN 0 |
d942ae445
|
149 |
#define DRBD_DISK_SIZE_MAX (1 * (2LLU << 40)) |
c5482bbd9
|
150 151 |
#define DRBD_DISK_SIZE_DEF 0 /* = disabled = no user size... */ #define DRBD_DISK_SIZE_SCALE 's' /* sectors */ |
b411b3637
|
152 |
|
a5df0e199
|
153 |
#define DRBD_ON_IO_ERROR_DEF EP_DETACH |
b411b3637
|
154 155 156 157 158 |
#define DRBD_FENCING_DEF FP_DONT_CARE #define DRBD_AFTER_SB_0P_DEF ASB_DISCONNECT #define DRBD_AFTER_SB_1P_DEF ASB_DISCONNECT #define DRBD_AFTER_SB_2P_DEF ASB_DISCONNECT #define DRBD_RR_CONFLICT_DEF ASB_DISCONNECT |
265be2d09
|
159 |
#define DRBD_ON_NO_DATA_DEF OND_IO_ERROR |
422028b1c
|
160 |
#define DRBD_ON_CONGESTION_DEF OC_BLOCK |
380207d08
|
161 |
#define DRBD_READ_BALANCING_DEF RB_PREFER_LOCAL |
b411b3637
|
162 163 164 165 |
#define DRBD_MAX_BIO_BVECS_MIN 0 #define DRBD_MAX_BIO_BVECS_MAX 128 #define DRBD_MAX_BIO_BVECS_DEF 0 |
32bdb6403
|
166 |
#define DRBD_MAX_BIO_BVECS_SCALE '1' |
b411b3637
|
167 |
|
9a31d7164
|
168 169 |
#define DRBD_C_PLAN_AHEAD_MIN 0 #define DRBD_C_PLAN_AHEAD_MAX 300 |
65d94927e
|
170 |
#define DRBD_C_PLAN_AHEAD_DEF 20 |
32bdb6403
|
171 |
#define DRBD_C_PLAN_AHEAD_SCALE '1' |
67c7ddd05
|
172 |
|
9a31d7164
|
173 174 175 |
#define DRBD_C_DELAY_TARGET_MIN 1 #define DRBD_C_DELAY_TARGET_MAX 100 #define DRBD_C_DELAY_TARGET_DEF 10 |
32bdb6403
|
176 |
#define DRBD_C_DELAY_TARGET_SCALE '1' |
67c7ddd05
|
177 |
|
9a31d7164
|
178 |
#define DRBD_C_FILL_TARGET_MIN 0 |
00b425377
|
179 |
#define DRBD_C_FILL_TARGET_MAX (1<<20) /* 500MByte in sec */ |
65d94927e
|
180 |
#define DRBD_C_FILL_TARGET_DEF 100 /* Try to place 50KiB in socket send buffer during resync */ |
32bdb6403
|
181 |
#define DRBD_C_FILL_TARGET_SCALE 's' /* sectors */ |
67c7ddd05
|
182 |
|
32bdb6403
|
183 |
#define DRBD_C_MAX_RATE_MIN 250 |
9a31d7164
|
184 185 |
#define DRBD_C_MAX_RATE_MAX (4 << 20) #define DRBD_C_MAX_RATE_DEF 102400 |
32bdb6403
|
186 |
#define DRBD_C_MAX_RATE_SCALE 'k' /* kilobytes */ |
67c7ddd05
|
187 |
|
32bdb6403
|
188 |
#define DRBD_C_MIN_RATE_MIN 0 |
0f0601f4e
|
189 |
#define DRBD_C_MIN_RATE_MAX (4 << 20) |
65d94927e
|
190 |
#define DRBD_C_MIN_RATE_DEF 250 |
32bdb6403
|
191 |
#define DRBD_C_MIN_RATE_SCALE 'k' /* kilobytes */ |
0f0601f4e
|
192 |
|
422028b1c
|
193 194 195 |
#define DRBD_CONG_FILL_MIN 0 #define DRBD_CONG_FILL_MAX (10<<21) /* 10GByte in sectors */ #define DRBD_CONG_FILL_DEF 0 |
32bdb6403
|
196 |
#define DRBD_CONG_FILL_SCALE 's' /* sectors */ |
422028b1c
|
197 198 199 200 |
#define DRBD_CONG_EXTENTS_MIN DRBD_AL_EXTENTS_MIN #define DRBD_CONG_EXTENTS_MAX DRBD_AL_EXTENTS_MAX #define DRBD_CONG_EXTENTS_DEF DRBD_AL_EXTENTS_DEF |
32bdb6403
|
201 |
#define DRBD_CONG_EXTENTS_SCALE DRBD_AL_EXTENTS_SCALE |
422028b1c
|
202 |
|
f399002e6
|
203 |
#define DRBD_PROTOCOL_DEF DRBD_PROT_C |
7bac3e6f7
|
204 205 206 207 208 |
#define DRBD_DISK_BARRIER_DEF 0 #define DRBD_DISK_FLUSHES_DEF 1 #define DRBD_DISK_DRAIN_DEF 1 #define DRBD_MD_FLUSHES_DEF 1 #define DRBD_TCP_CORK_DEF 1 |
9a51ab1c1
|
209 |
#define DRBD_AL_UPDATES_DEF 1 |
7bac3e6f7
|
210 211 212 |
#define DRBD_ALLOW_TWO_PRIMARIES_DEF 0 #define DRBD_ALWAYS_ASBP_DEF 0 |
65d94927e
|
213 |
#define DRBD_USE_RLE_DEF 1 |
aaaba3457
|
214 |
#define DRBD_CSUMS_AFTER_CRASH_ONLY_DEF 0 |
7bac3e6f7
|
215 |
|
d752b2696
|
216 217 218 219 220 221 222 223 224 |
#define DRBD_AL_STRIPES_MIN 1 #define DRBD_AL_STRIPES_MAX 1024 #define DRBD_AL_STRIPES_DEF 1 #define DRBD_AL_STRIPES_SCALE '1' #define DRBD_AL_STRIPE_SIZE_MIN 4 #define DRBD_AL_STRIPE_SIZE_MAX 16777216 #define DRBD_AL_STRIPE_SIZE_DEF 32 #define DRBD_AL_STRIPE_SIZE_SCALE 'k' /* kilobytes */ |
5d0b17f1a
|
225 226 227 228 229 |
#define DRBD_SOCKET_CHECK_TIMEO_MIN 0 #define DRBD_SOCKET_CHECK_TIMEO_MAX DRBD_PING_TIMEO_MAX #define DRBD_SOCKET_CHECK_TIMEO_DEF 0 #define DRBD_SOCKET_CHECK_TIMEO_SCALE '1' |
b411b3637
|
230 |
#endif |