Merge lp:~bkerensa/ubuntu/raring/drbd8/new-upstream-release into lp:ubuntu/raring/drbd8
- Raring (13.04)
- new-upstream-release
- Merge into raring
Proposed by
Benjamin Kerensa
Status: | Work in progress |
---|---|
Proposed branch: | lp:~bkerensa/ubuntu/raring/drbd8/new-upstream-release |
Merge into: | lp:ubuntu/raring/drbd8 |
Diff against target: |
16816 lines (+3216/-5124) 56 files modified
.filelist (+129/-124) ChangeLog (+65/-0) configure (+109/-86) configure.ac (+2/-2) debian/changelog (+6/-0) documentation/drbd.8 (+1/-1) documentation/drbd.conf.5 (+30/-11) documentation/drbd.conf.xml (+0/-1752) documentation/drbdadm.8 (+16/-1) documentation/drbdadm.xml (+0/-479) documentation/drbddisk.8 (+1/-1) documentation/drbdmeta.8 (+6/-2) documentation/drbdmeta.xml (+0/-221) documentation/drbdsetup.8 (+45/-12) documentation/drbdsetup.xml (+0/-1723) drbd-kernel.spec.in (+34/-11) drbd-km.spec.in (+9/-0) drbd.spec.in (+17/-6) drbd/Makefile (+0/-5) drbd/Makefile-2.6 (+1/-0) drbd/compat/kobject.c (+75/-0) drbd/drbd_actlog.c (+97/-37) drbd/drbd_bitmap.c (+163/-66) drbd/drbd_buildtag.c (+2/-2) drbd/drbd_int.h (+190/-75) drbd/drbd_main.c (+413/-143) drbd/drbd_nl.c (+138/-61) drbd/drbd_proc.c (+13/-5) drbd/drbd_receiver.c (+193/-103) drbd/drbd_req.c (+192/-96) drbd/drbd_req.h (+12/-8) drbd/drbd_sysfs.c (+90/-0) drbd/drbd_tracing.c (+1/-1) drbd/drbd_worker.c (+103/-32) drbd/drbd_wrappers.h (+143/-8) drbd/linux/drbd_config.h (+23/-2) drbd/linux/drbd_limits.h (+5/-0) drbd/linux/drbd_nl.h (+5/-1) drbd/linux/drbd_tag_magic.h (+1/-1) scripts/Makefile.in (+3/-0) scripts/README.rhcs_fence (+86/-0) scripts/adjust_drbd_config_h.sh (+61/-0) scripts/crm-fence-peer.sh (+11/-1) scripts/drbd (+1/-0) scripts/drbd-overview.pl (+1/-1) scripts/drbd.ocf (+19/-3) scripts/drbd.rules (+1/-1) scripts/get_uts_release.sh (+1/-1) scripts/rhcs_fence (+544/-0) scripts/snapshot-resync-target-lvm.sh (+43/-11) scripts/stonith_admin-fence-peer.sh (+43/-0) user/Makefile.in (+4/-3) user/drbdadm_parser.c (+17/-4) user/drbdadm_scanner.fl (+1/-0) user/drbdmeta.c (+24/-2) user/drbdsetup.c (+26/-19) |
To merge this branch: | bzr merge lp:~bkerensa/ubuntu/raring/drbd8/new-upstream-release |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
James Page | Needs Fixing | ||
Ubuntu branches | Pending | ||
Review via email: mp+135552@code.launchpad.net |
Commit message
Description of the change
New Upstream Release
To post a comment you must log in.
Unmerged revisions
- 26. By Benjamin Kerensa
-
New Upstream Release
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file '.filelist' |
2 | --- .filelist 2011-07-05 15:40:13 +0000 |
3 | +++ .filelist 2012-11-21 23:20:34 +0000 |
4 | @@ -1,124 +1,129 @@ |
5 | -drbd-8.3.11/.gitignore |
6 | -drbd-8.3.11/COPYING |
7 | -drbd-8.3.11/ChangeLog |
8 | -drbd-8.3.11/Makefile.in |
9 | -drbd-8.3.11/README |
10 | -drbd-8.3.11/autogen.sh |
11 | -drbd-8.3.11/benchmark/Makefile |
12 | -drbd-8.3.11/benchmark/README |
13 | -drbd-8.3.11/benchmark/dm.c |
14 | -drbd-8.3.11/benchmark/io-latency-test.c |
15 | -drbd-8.3.11/configure.ac |
16 | -drbd-8.3.11/documentation/Makefile.in |
17 | -drbd-8.3.11/documentation/Makefile.lang |
18 | -drbd-8.3.11/documentation/aspell.en.per |
19 | -drbd-8.3.11/documentation/drbd.conf.xml |
20 | -drbd-8.3.11/documentation/drbd.xml |
21 | -drbd-8.3.11/documentation/drbdadm.xml |
22 | -drbd-8.3.11/documentation/drbddisk.xml |
23 | -drbd-8.3.11/documentation/drbdmeta.xml |
24 | -drbd-8.3.11/documentation/drbdsetup.xml |
25 | -drbd-8.3.11/drbd-kernel.spec.in |
26 | -drbd-8.3.11/drbd-km.spec.in |
27 | -drbd-8.3.11/drbd.spec.in |
28 | -drbd-8.3.11/drbd/Kconfig |
29 | -drbd-8.3.11/drbd/Makefile |
30 | -drbd-8.3.11/drbd/Makefile-2.6 |
31 | -drbd-8.3.11/drbd/cn_queue.c |
32 | -drbd-8.3.11/drbd/compat/bitops.h |
33 | -drbd-8.3.11/drbd/compat/linux/autoconf.h |
34 | -drbd-8.3.11/drbd/compat/linux/connector.h |
35 | -drbd-8.3.11/drbd/compat/linux/dynamic_debug.h |
36 | -drbd-8.3.11/drbd/compat/linux/hardirq.h |
37 | -drbd-8.3.11/drbd/compat/linux/memcontrol.h |
38 | -drbd-8.3.11/drbd/compat/linux/mutex.h |
39 | -drbd-8.3.11/drbd/compat/linux/tracepoint.h |
40 | -drbd-8.3.11/drbd/connector.c |
41 | -drbd-8.3.11/drbd/drbd_actlog.c |
42 | -drbd-8.3.11/drbd/drbd_bitmap.c |
43 | -drbd-8.3.11/drbd/drbd_int.h |
44 | -drbd-8.3.11/drbd/drbd_main.c |
45 | -drbd-8.3.11/drbd/drbd_nl.c |
46 | -drbd-8.3.11/drbd/drbd_proc.c |
47 | -drbd-8.3.11/drbd/drbd_receiver.c |
48 | -drbd-8.3.11/drbd/drbd_req.c |
49 | -drbd-8.3.11/drbd/drbd_req.h |
50 | -drbd-8.3.11/drbd/drbd_strings.c |
51 | -drbd-8.3.11/drbd/drbd_tracing.c |
52 | -drbd-8.3.11/drbd/drbd_tracing.h |
53 | -drbd-8.3.11/drbd/drbd_vli.h |
54 | -drbd-8.3.11/drbd/drbd_worker.c |
55 | -drbd-8.3.11/drbd/drbd_wrappers.h |
56 | -drbd-8.3.11/drbd/filelist-redhat |
57 | -drbd-8.3.11/drbd/filelist-suse |
58 | -drbd-8.3.11/drbd/linux/drbd.h |
59 | -drbd-8.3.11/drbd/linux/drbd_config.h |
60 | -drbd-8.3.11/drbd/linux/drbd_limits.h |
61 | -drbd-8.3.11/drbd/linux/drbd_nl.h |
62 | -drbd-8.3.11/drbd/linux/drbd_tag_magic.h |
63 | -drbd-8.3.11/drbd/linux/lru_cache.h |
64 | -drbd-8.3.11/drbd/lru_cache.c |
65 | -drbd-8.3.11/drbd/preamble |
66 | -drbd-8.3.11/drbd/preamble-rhel5 |
67 | -drbd-8.3.11/drbd/preamble-sles10 |
68 | -drbd-8.3.11/drbd/preamble-sles11 |
69 | -drbd-8.3.11/rpm-macro-fixes/README |
70 | -drbd-8.3.11/rpm-macro-fixes/kmodtool.rhel5.diff |
71 | -drbd-8.3.11/rpm-macro-fixes/macros.kernel-source.sles11-sp1.diff |
72 | -drbd-8.3.11/rpm-macro-fixes/macros.kernel-source.sles11.diff |
73 | -drbd-8.3.11/rpm-macro-fixes/macros.rhel5.diff |
74 | -drbd-8.3.11/rpm-macro-fixes/suse_macros.sles10.diff |
75 | -drbd-8.3.11/rpm-macro-fixes/symset-table.diff |
76 | -drbd-8.3.11/scripts/Makefile.in |
77 | -drbd-8.3.11/scripts/README |
78 | -drbd-8.3.11/scripts/adjust_drbd_config_h.sh |
79 | -drbd-8.3.11/scripts/block-drbd |
80 | -drbd-8.3.11/scripts/crm-fence-peer.sh |
81 | -drbd-8.3.11/scripts/drbd |
82 | -drbd-8.3.11/scripts/drbd-overview.pl |
83 | -drbd-8.3.11/scripts/drbd.conf |
84 | -drbd-8.3.11/scripts/drbd.conf.example |
85 | -drbd-8.3.11/scripts/drbd.gentoo |
86 | -drbd-8.3.11/scripts/drbd.metadata.rhcs |
87 | -drbd-8.3.11/scripts/drbd.ocf |
88 | -drbd-8.3.11/scripts/drbd.rules |
89 | -drbd-8.3.11/scripts/drbd.sh.rhcs |
90 | -drbd-8.3.11/scripts/drbdadm.bash_completion |
91 | -drbd-8.3.11/scripts/drbddisk |
92 | -drbd-8.3.11/scripts/drbdupper |
93 | -drbd-8.3.11/scripts/get_uts_release.sh |
94 | -drbd-8.3.11/scripts/global_common.conf |
95 | -drbd-8.3.11/scripts/notify.sh |
96 | -drbd-8.3.11/scripts/outdate-peer.sh |
97 | -drbd-8.3.11/scripts/patch-kernel |
98 | -drbd-8.3.11/scripts/pretty-proc-drbd.sh |
99 | -drbd-8.3.11/scripts/snapshot-resync-target-lvm.sh |
100 | -drbd-8.3.11/scripts/unsnapshot-resync-target-lvm.sh |
101 | -drbd-8.3.11/user/Makefile.in |
102 | -drbd-8.3.11/user/drbd_endian.h |
103 | -drbd-8.3.11/user/drbdadm.h |
104 | -drbd-8.3.11/user/drbdadm_adjust.c |
105 | -drbd-8.3.11/user/drbdadm_main.c |
106 | -drbd-8.3.11/user/drbdadm_minor_table.c |
107 | -drbd-8.3.11/user/drbdadm_parser.c |
108 | -drbd-8.3.11/user/drbdadm_parser.h |
109 | -drbd-8.3.11/user/drbdadm_scanner.fl |
110 | -drbd-8.3.11/user/drbdadm_usage_cnt.c |
111 | -drbd-8.3.11/user/drbdmeta.c |
112 | -drbd-8.3.11/user/drbdmeta_parser.h |
113 | -drbd-8.3.11/user/drbdmeta_scanner.fl |
114 | -drbd-8.3.11/user/drbdsetup.c |
115 | -drbd-8.3.11/user/drbdtool_common.c |
116 | -drbd-8.3.11/user/drbdtool_common.h |
117 | -drbd-8.3.11/user/unaligned.h |
118 | -drbd-8.3.11/documentation/drbdsetup.8 |
119 | -drbd-8.3.11/documentation/drbd.conf.5 |
120 | -drbd-8.3.11/documentation/drbd.8 |
121 | -drbd-8.3.11/documentation/drbdadm.8 |
122 | -drbd-8.3.11/documentation/drbdmeta.8 |
123 | -drbd-8.3.11/documentation/drbddisk.8 |
124 | -drbd-8.3.11/drbd_config.h |
125 | -drbd-8.3.11/drbd/drbd_buildtag.c |
126 | -drbd-8.3.11/.filelist |
127 | -drbd-8.3.11/configure |
128 | -drbd-8.3.11/user/config.h.in |
129 | +drbd-8.3.14/.gitignore |
130 | +drbd-8.3.14/COPYING |
131 | +drbd-8.3.14/ChangeLog |
132 | +drbd-8.3.14/Makefile.in |
133 | +drbd-8.3.14/README |
134 | +drbd-8.3.14/autogen.sh |
135 | +drbd-8.3.14/benchmark/Makefile |
136 | +drbd-8.3.14/benchmark/README |
137 | +drbd-8.3.14/benchmark/dm.c |
138 | +drbd-8.3.14/benchmark/io-latency-test.c |
139 | +drbd-8.3.14/configure.ac |
140 | +drbd-8.3.14/documentation/Makefile.in |
141 | +drbd-8.3.14/documentation/Makefile.lang |
142 | +drbd-8.3.14/documentation/aspell.en.per |
143 | +drbd-8.3.14/documentation/drbd.conf.xml |
144 | +drbd-8.3.14/documentation/drbd.xml |
145 | +drbd-8.3.14/documentation/drbdadm.xml |
146 | +drbd-8.3.14/documentation/drbddisk.xml |
147 | +drbd-8.3.14/documentation/drbdmeta.xml |
148 | +drbd-8.3.14/documentation/drbdsetup.xml |
149 | +drbd-8.3.14/drbd-kernel.spec.in |
150 | +drbd-8.3.14/drbd-km.spec.in |
151 | +drbd-8.3.14/drbd.spec.in |
152 | +drbd-8.3.14/drbd/Kconfig |
153 | +drbd-8.3.14/drbd/Makefile |
154 | +drbd-8.3.14/drbd/Makefile-2.6 |
155 | +drbd-8.3.14/drbd/cn_queue.c |
156 | +drbd-8.3.14/drbd/compat/bitops.h |
157 | +drbd-8.3.14/drbd/compat/kobject.c |
158 | +drbd-8.3.14/drbd/compat/linux/autoconf.h |
159 | +drbd-8.3.14/drbd/compat/linux/connector.h |
160 | +drbd-8.3.14/drbd/compat/linux/dynamic_debug.h |
161 | +drbd-8.3.14/drbd/compat/linux/hardirq.h |
162 | +drbd-8.3.14/drbd/compat/linux/memcontrol.h |
163 | +drbd-8.3.14/drbd/compat/linux/mutex.h |
164 | +drbd-8.3.14/drbd/compat/linux/tracepoint.h |
165 | +drbd-8.3.14/drbd/connector.c |
166 | +drbd-8.3.14/drbd/drbd_actlog.c |
167 | +drbd-8.3.14/drbd/drbd_bitmap.c |
168 | +drbd-8.3.14/drbd/drbd_int.h |
169 | +drbd-8.3.14/drbd/drbd_main.c |
170 | +drbd-8.3.14/drbd/drbd_nl.c |
171 | +drbd-8.3.14/drbd/drbd_proc.c |
172 | +drbd-8.3.14/drbd/drbd_receiver.c |
173 | +drbd-8.3.14/drbd/drbd_req.c |
174 | +drbd-8.3.14/drbd/drbd_req.h |
175 | +drbd-8.3.14/drbd/drbd_strings.c |
176 | +drbd-8.3.14/drbd/drbd_sysfs.c |
177 | +drbd-8.3.14/drbd/drbd_tracing.c |
178 | +drbd-8.3.14/drbd/drbd_tracing.h |
179 | +drbd-8.3.14/drbd/drbd_vli.h |
180 | +drbd-8.3.14/drbd/drbd_worker.c |
181 | +drbd-8.3.14/drbd/drbd_wrappers.h |
182 | +drbd-8.3.14/drbd/filelist-redhat |
183 | +drbd-8.3.14/drbd/filelist-suse |
184 | +drbd-8.3.14/drbd/linux/drbd.h |
185 | +drbd-8.3.14/drbd/linux/drbd_config.h |
186 | +drbd-8.3.14/drbd/linux/drbd_limits.h |
187 | +drbd-8.3.14/drbd/linux/drbd_nl.h |
188 | +drbd-8.3.14/drbd/linux/drbd_tag_magic.h |
189 | +drbd-8.3.14/drbd/linux/lru_cache.h |
190 | +drbd-8.3.14/drbd/lru_cache.c |
191 | +drbd-8.3.14/drbd/preamble |
192 | +drbd-8.3.14/drbd/preamble-rhel5 |
193 | +drbd-8.3.14/drbd/preamble-sles10 |
194 | +drbd-8.3.14/drbd/preamble-sles11 |
195 | +drbd-8.3.14/rpm-macro-fixes/README |
196 | +drbd-8.3.14/rpm-macro-fixes/kmodtool.rhel5.diff |
197 | +drbd-8.3.14/rpm-macro-fixes/macros.kernel-source.sles11-sp1.diff |
198 | +drbd-8.3.14/rpm-macro-fixes/macros.kernel-source.sles11.diff |
199 | +drbd-8.3.14/rpm-macro-fixes/macros.rhel5.diff |
200 | +drbd-8.3.14/rpm-macro-fixes/suse_macros.sles10.diff |
201 | +drbd-8.3.14/rpm-macro-fixes/symset-table.diff |
202 | +drbd-8.3.14/scripts/Makefile.in |
203 | +drbd-8.3.14/scripts/README |
204 | +drbd-8.3.14/scripts/README.rhcs_fence |
205 | +drbd-8.3.14/scripts/adjust_drbd_config_h.sh |
206 | +drbd-8.3.14/scripts/block-drbd |
207 | +drbd-8.3.14/scripts/crm-fence-peer.sh |
208 | +drbd-8.3.14/scripts/drbd |
209 | +drbd-8.3.14/scripts/drbd-overview.pl |
210 | +drbd-8.3.14/scripts/drbd.conf |
211 | +drbd-8.3.14/scripts/drbd.conf.example |
212 | +drbd-8.3.14/scripts/drbd.gentoo |
213 | +drbd-8.3.14/scripts/drbd.metadata.rhcs |
214 | +drbd-8.3.14/scripts/drbd.ocf |
215 | +drbd-8.3.14/scripts/drbd.rules |
216 | +drbd-8.3.14/scripts/drbd.sh.rhcs |
217 | +drbd-8.3.14/scripts/drbdadm.bash_completion |
218 | +drbd-8.3.14/scripts/drbddisk |
219 | +drbd-8.3.14/scripts/drbdupper |
220 | +drbd-8.3.14/scripts/get_uts_release.sh |
221 | +drbd-8.3.14/scripts/global_common.conf |
222 | +drbd-8.3.14/scripts/notify.sh |
223 | +drbd-8.3.14/scripts/outdate-peer.sh |
224 | +drbd-8.3.14/scripts/patch-kernel |
225 | +drbd-8.3.14/scripts/pretty-proc-drbd.sh |
226 | +drbd-8.3.14/scripts/rhcs_fence |
227 | +drbd-8.3.14/scripts/snapshot-resync-target-lvm.sh |
228 | +drbd-8.3.14/scripts/stonith_admin-fence-peer.sh |
229 | +drbd-8.3.14/scripts/unsnapshot-resync-target-lvm.sh |
230 | +drbd-8.3.14/user/Makefile.in |
231 | +drbd-8.3.14/user/drbd_endian.h |
232 | +drbd-8.3.14/user/drbdadm.h |
233 | +drbd-8.3.14/user/drbdadm_adjust.c |
234 | +drbd-8.3.14/user/drbdadm_main.c |
235 | +drbd-8.3.14/user/drbdadm_minor_table.c |
236 | +drbd-8.3.14/user/drbdadm_parser.c |
237 | +drbd-8.3.14/user/drbdadm_parser.h |
238 | +drbd-8.3.14/user/drbdadm_scanner.fl |
239 | +drbd-8.3.14/user/drbdadm_usage_cnt.c |
240 | +drbd-8.3.14/user/drbdmeta.c |
241 | +drbd-8.3.14/user/drbdmeta_parser.h |
242 | +drbd-8.3.14/user/drbdmeta_scanner.fl |
243 | +drbd-8.3.14/user/drbdsetup.c |
244 | +drbd-8.3.14/user/drbdtool_common.c |
245 | +drbd-8.3.14/user/drbdtool_common.h |
246 | +drbd-8.3.14/user/unaligned.h |
247 | +drbd-8.3.14/documentation/drbdmeta.8 |
248 | +drbd-8.3.14/documentation/drbdsetup.8 |
249 | +drbd-8.3.14/documentation/drbd.conf.5 |
250 | +drbd-8.3.14/documentation/drbd.8 |
251 | +drbd-8.3.14/documentation/drbdadm.8 |
252 | +drbd-8.3.14/documentation/drbddisk.8 |
253 | +drbd-8.3.14/drbd_config.h |
254 | +drbd-8.3.14/drbd/drbd_buildtag.c |
255 | +drbd-8.3.14/.filelist |
256 | +drbd-8.3.14/configure |
257 | +drbd-8.3.14/user/config.h.in |
258 | |
259 | === modified file 'ChangeLog' |
260 | --- ChangeLog 2011-07-05 15:40:13 +0000 |
261 | +++ ChangeLog 2012-11-21 23:20:34 +0000 |
262 | @@ -2,6 +2,71 @@ |
263 | ------ |
264 | For even more detail, use "git log" or visit http://git.drbd.org/. |
265 | |
266 | +8.3.14 (api:88/proto:86-97) |
267 | +-------- |
268 | + * No longer support write-ordering "barrier" on kernels newer than 2.6.36 |
269 | + (or RHEL's 2.6.32), since it is no longer supported by the kernel's IO-layer |
270 | + * Fixed the cause of the "ASSERT FAILED tl_hash..." messages |
271 | + * Fixed an OOPS in case a on-congestion policy was set and the node becomes |
272 | + disk less |
273 | + * Fixed a list corruption for read requests that complete with an error |
274 | + after they were aborted |
275 | + * Fixed a kernel panic if the device size was an exact multiple of 128MiB |
276 | + * Finish requests that completed while IO on DRBD was frozen. Before such |
277 | + requests where never completed by DRBD |
278 | + * Fixed a potential memory allocation during deadlock online resize |
279 | + * Online resize with internal meta data failed to write the bitmap to |
280 | + the new on-disk-location after the resize operation. This issue was |
281 | + introduced with 8.3.10 |
282 | + * Do not go through NetworkFailure state during a regular disconnect |
283 | + * Improve the handling of read-errors: Make sure that sectors that had a |
284 | + read error are overwritten with data from the peer on the next resync |
285 | + * Expose the data-generation-uuids through /sys/block/drbdXX/drbd/ |
286 | + * Add a stop-sector to the online verify feature |
287 | + * Support FLUSH/FUA for layers above DRBD |
288 | + * The new flag --peer-max-bio-size for drbdmeta create-md is of use |
289 | + if you plan to use the device for long time without peer |
290 | + |
291 | +8.3.13 (api:88/proto:86-96) |
292 | +-------- |
293 | + * Fixed a write ordering problem on SyncTarget nodes for a write |
294 | + to a block that gets resynced at the same time. The bug can |
295 | + only be triggered with a device that has a firmware that |
296 | + actually reorders writes to the same block |
297 | + * Fixed a race between disconnect and receive_state, that could cause |
298 | + a IO lockup |
299 | + * Fixed resend/resubmit for requests with disk or network timeout |
300 | + * Make sure that hard state changed do not disturb the connection |
301 | + establishing process (I.e. detach due to an IO error). When the |
302 | + bug was triggered it caused a retry in the connect process |
303 | + * Postpone soft state changes to no disturb the connection |
304 | + establishing process (I.e. becoming primary). When the bug |
305 | + was triggered it could cause both nodes going into SyncSource state |
306 | + * Fixed a refcount leak that could cause failures when trying to |
307 | + unload a protocol family modules, that was used by DRBD |
308 | + * Dedicated page pool for meta data IOs |
309 | + * Deny normal detach (as opposed to --forced) if the user tries |
310 | + to detach from the last UpToDate disk in the resource |
311 | + * Fixed a possible protocol error that could be caused by |
312 | + "unusual" BIOs. |
313 | + * Enforce the disk-timeout option also on meta-data IO operations |
314 | + * Implemented stable bitmap pages when we do a full write out of |
315 | + the bitmap |
316 | + |
317 | +8.3.12 (api:88/proto:86-96) |
318 | +-------- |
319 | + * Fixed a rare compatibility issue with DRBD's older than 8.3.7 |
320 | + when negotiating the bio_size |
321 | + * Fixed a rare race condition where an empty resync could stall with |
322 | + if pause/unpause events happen in parallel |
323 | + * Made the re-establishing of connections quicker, if it got a broken pipe |
324 | + once. Previously there was a bug in the code caused it to waste the first |
325 | + successful established connection after a broken pipe event. |
326 | + * crm-fence-peer.sh: Can now deal with multiple DRBD instances being in |
327 | + a master/slave group |
328 | + * Allow detach from frozen backing devices with the new --force option; |
329 | + configurable timeout for backing devices by the new disk-timeout option |
330 | + |
331 | 8.3.11 (api:88/proto:86-96) |
332 | -------- |
333 | * Added missing spinlock in compressed bitmap receive (regression introduced |
334 | |
335 | === modified file 'configure' |
336 | --- configure 2011-07-05 15:40:13 +0000 |
337 | +++ configure 2012-11-21 23:20:34 +0000 |
338 | @@ -1,6 +1,6 @@ |
339 | #! /bin/sh |
340 | # Guess values for system-dependent variables and create Makefiles. |
341 | -# Generated by GNU Autoconf 2.67 for DRBD 8.3.11. |
342 | +# Generated by GNU Autoconf 2.68 for DRBD 8.3.14. |
343 | # |
344 | # Report bugs to <drbd-dev@lists.linbit.com>. |
345 | # |
346 | @@ -91,6 +91,7 @@ |
347 | IFS=" "" $as_nl" |
348 | |
349 | # Find who we are. Look in the path if we contain no directory separator. |
350 | +as_myself= |
351 | case $0 in #(( |
352 | *[\\/]* ) as_myself=$0 ;; |
353 | *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR |
354 | @@ -215,11 +216,18 @@ |
355 | # We cannot yet assume a decent shell, so we have to provide a |
356 | # neutralization value for shells without unset; and this also |
357 | # works around shells that cannot unset nonexistent variables. |
358 | + # Preserve -v and -x to the replacement shell. |
359 | BASH_ENV=/dev/null |
360 | ENV=/dev/null |
361 | (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV |
362 | export CONFIG_SHELL |
363 | - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} |
364 | + case $- in # (((( |
365 | + *v*x* | *x*v* ) as_opts=-vx ;; |
366 | + *v* ) as_opts=-v ;; |
367 | + *x* ) as_opts=-x ;; |
368 | + * ) as_opts= ;; |
369 | + esac |
370 | + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} |
371 | fi |
372 | |
373 | if test x$as_have_required = xno; then : |
374 | @@ -551,8 +559,8 @@ |
375 | # Identity of this package. |
376 | PACKAGE_NAME='DRBD' |
377 | PACKAGE_TARNAME='drbd' |
378 | -PACKAGE_VERSION='8.3.11' |
379 | -PACKAGE_STRING='DRBD 8.3.11' |
380 | +PACKAGE_VERSION='8.3.14' |
381 | +PACKAGE_STRING='DRBD 8.3.14' |
382 | PACKAGE_BUGREPORT='drbd-dev@lists.linbit.com' |
383 | PACKAGE_URL='' |
384 | |
385 | @@ -1066,7 +1074,7 @@ |
386 | $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 |
387 | expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && |
388 | $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 |
389 | - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} |
390 | + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" |
391 | ;; |
392 | |
393 | esac |
394 | @@ -1204,7 +1212,7 @@ |
395 | # Omit some internal or obsolete options to make the list less imposing. |
396 | # This message is too long to be a string in the A/UX 3.1 sh. |
397 | cat <<_ACEOF |
398 | -\`configure' configures DRBD 8.3.11 to adapt to many kinds of systems. |
399 | +\`configure' configures DRBD 8.3.14 to adapt to many kinds of systems. |
400 | |
401 | Usage: $0 [OPTION]... [VAR=VALUE]... |
402 | |
403 | @@ -1265,7 +1273,7 @@ |
404 | |
405 | if test -n "$ac_init_help"; then |
406 | case $ac_init_help in |
407 | - short | recursive ) echo "Configuration of DRBD 8.3.11:";; |
408 | + short | recursive ) echo "Configuration of DRBD 8.3.14:";; |
409 | esac |
410 | cat <<\_ACEOF |
411 | |
412 | @@ -1371,8 +1379,8 @@ |
413 | test -n "$ac_init_help" && exit $ac_status |
414 | if $ac_init_version; then |
415 | cat <<\_ACEOF |
416 | -DRBD configure 8.3.11 |
417 | -generated by GNU Autoconf 2.67 |
418 | +DRBD configure 8.3.14 |
419 | +generated by GNU Autoconf 2.68 |
420 | |
421 | Copyright (C) 2010 Free Software Foundation, Inc. |
422 | This configure script is free software; the Free Software Foundation |
423 | @@ -1418,7 +1426,7 @@ |
424 | |
425 | ac_retval=1 |
426 | fi |
427 | - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} |
428 | + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno |
429 | as_fn_set_status $ac_retval |
430 | |
431 | } # ac_fn_c_try_compile |
432 | @@ -1426,8 +1434,8 @@ |
433 | This file contains any messages produced by compilers while |
434 | running configure, to aid debugging if configure makes a mistake. |
435 | |
436 | -It was created by DRBD $as_me 8.3.11, which was |
437 | -generated by GNU Autoconf 2.67. Invocation command line was |
438 | +It was created by DRBD $as_me 8.3.14, which was |
439 | +generated by GNU Autoconf 2.68. Invocation command line was |
440 | |
441 | $ $0 $@ |
442 | |
443 | @@ -1685,7 +1693,7 @@ |
444 | || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 |
445 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} |
446 | as_fn_error $? "failed to load site script $ac_site_file |
447 | -See \`config.log' for more details" "$LINENO" 5 ; } |
448 | +See \`config.log' for more details" "$LINENO" 5; } |
449 | fi |
450 | done |
451 | |
452 | @@ -1901,7 +1909,7 @@ |
453 | set dummy ${ac_tool_prefix}gcc; ac_word=$2 |
454 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
455 | $as_echo_n "checking for $ac_word... " >&6; } |
456 | -if test "${ac_cv_prog_CC+set}" = set; then : |
457 | +if ${ac_cv_prog_CC+:} false; then : |
458 | $as_echo_n "(cached) " >&6 |
459 | else |
460 | if test -n "$CC"; then |
461 | @@ -1941,7 +1949,7 @@ |
462 | set dummy gcc; ac_word=$2 |
463 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
464 | $as_echo_n "checking for $ac_word... " >&6; } |
465 | -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : |
466 | +if ${ac_cv_prog_ac_ct_CC+:} false; then : |
467 | $as_echo_n "(cached) " >&6 |
468 | else |
469 | if test -n "$ac_ct_CC"; then |
470 | @@ -1994,7 +2002,7 @@ |
471 | set dummy ${ac_tool_prefix}cc; ac_word=$2 |
472 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
473 | $as_echo_n "checking for $ac_word... " >&6; } |
474 | -if test "${ac_cv_prog_CC+set}" = set; then : |
475 | +if ${ac_cv_prog_CC+:} false; then : |
476 | $as_echo_n "(cached) " >&6 |
477 | else |
478 | if test -n "$CC"; then |
479 | @@ -2034,7 +2042,7 @@ |
480 | set dummy cc; ac_word=$2 |
481 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
482 | $as_echo_n "checking for $ac_word... " >&6; } |
483 | -if test "${ac_cv_prog_CC+set}" = set; then : |
484 | +if ${ac_cv_prog_CC+:} false; then : |
485 | $as_echo_n "(cached) " >&6 |
486 | else |
487 | if test -n "$CC"; then |
488 | @@ -2093,7 +2101,7 @@ |
489 | set dummy $ac_tool_prefix$ac_prog; ac_word=$2 |
490 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
491 | $as_echo_n "checking for $ac_word... " >&6; } |
492 | -if test "${ac_cv_prog_CC+set}" = set; then : |
493 | +if ${ac_cv_prog_CC+:} false; then : |
494 | $as_echo_n "(cached) " >&6 |
495 | else |
496 | if test -n "$CC"; then |
497 | @@ -2137,7 +2145,7 @@ |
498 | set dummy $ac_prog; ac_word=$2 |
499 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
500 | $as_echo_n "checking for $ac_word... " >&6; } |
501 | -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : |
502 | +if ${ac_cv_prog_ac_ct_CC+:} false; then : |
503 | $as_echo_n "(cached) " >&6 |
504 | else |
505 | if test -n "$ac_ct_CC"; then |
506 | @@ -2192,7 +2200,7 @@ |
507 | test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 |
508 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} |
509 | as_fn_error $? "no acceptable C compiler found in \$PATH |
510 | -See \`config.log' for more details" "$LINENO" 5 ; } |
511 | +See \`config.log' for more details" "$LINENO" 5; } |
512 | |
513 | # Provide some information about the compiler. |
514 | $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 |
515 | @@ -2307,7 +2315,7 @@ |
516 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 |
517 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} |
518 | as_fn_error 77 "C compiler cannot create executables |
519 | -See \`config.log' for more details" "$LINENO" 5 ; } |
520 | +See \`config.log' for more details" "$LINENO" 5; } |
521 | else |
522 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 |
523 | $as_echo "yes" >&6; } |
524 | @@ -2350,7 +2358,7 @@ |
525 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 |
526 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} |
527 | as_fn_error $? "cannot compute suffix of executables: cannot compile and link |
528 | -See \`config.log' for more details" "$LINENO" 5 ; } |
529 | +See \`config.log' for more details" "$LINENO" 5; } |
530 | fi |
531 | rm -f conftest conftest$ac_cv_exeext |
532 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 |
533 | @@ -2409,7 +2417,7 @@ |
534 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} |
535 | as_fn_error $? "cannot run C compiled programs. |
536 | If you meant to cross compile, use \`--host'. |
537 | -See \`config.log' for more details" "$LINENO" 5 ; } |
538 | +See \`config.log' for more details" "$LINENO" 5; } |
539 | fi |
540 | fi |
541 | fi |
542 | @@ -2420,7 +2428,7 @@ |
543 | ac_clean_files=$ac_clean_files_save |
544 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 |
545 | $as_echo_n "checking for suffix of object files... " >&6; } |
546 | -if test "${ac_cv_objext+set}" = set; then : |
547 | +if ${ac_cv_objext+:} false; then : |
548 | $as_echo_n "(cached) " >&6 |
549 | else |
550 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
551 | @@ -2461,7 +2469,7 @@ |
552 | { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 |
553 | $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} |
554 | as_fn_error $? "cannot compute suffix of object files: cannot compile |
555 | -See \`config.log' for more details" "$LINENO" 5 ; } |
556 | +See \`config.log' for more details" "$LINENO" 5; } |
557 | fi |
558 | rm -f conftest.$ac_cv_objext conftest.$ac_ext |
559 | fi |
560 | @@ -2471,7 +2479,7 @@ |
561 | ac_objext=$OBJEXT |
562 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 |
563 | $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } |
564 | -if test "${ac_cv_c_compiler_gnu+set}" = set; then : |
565 | +if ${ac_cv_c_compiler_gnu+:} false; then : |
566 | $as_echo_n "(cached) " >&6 |
567 | else |
568 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext |
569 | @@ -2508,7 +2516,7 @@ |
570 | ac_save_CFLAGS=$CFLAGS |
571 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 |
572 | $as_echo_n "checking whether $CC accepts -g... " >&6; } |
573 | -if test "${ac_cv_prog_cc_g+set}" = set; then : |
574 | +if ${ac_cv_prog_cc_g+:} false; then : |
575 | $as_echo_n "(cached) " >&6 |
576 | else |
577 | ac_save_c_werror_flag=$ac_c_werror_flag |
578 | @@ -2586,7 +2594,7 @@ |
579 | fi |
580 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 |
581 | $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } |
582 | -if test "${ac_cv_prog_cc_c89+set}" = set; then : |
583 | +if ${ac_cv_prog_cc_c89+:} false; then : |
584 | $as_echo_n "(cached) " >&6 |
585 | else |
586 | ac_cv_prog_cc_c89=no |
587 | @@ -2696,7 +2704,7 @@ |
588 | set dummy sed; ac_word=$2 |
589 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
590 | $as_echo_n "checking for $ac_word... " >&6; } |
591 | -if test "${ac_cv_path_SED+set}" = set; then : |
592 | +if ${ac_cv_path_SED+:} false; then : |
593 | $as_echo_n "(cached) " >&6 |
594 | else |
595 | case $SED in |
596 | @@ -2736,7 +2744,7 @@ |
597 | set dummy grep; ac_word=$2 |
598 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
599 | $as_echo_n "checking for $ac_word... " >&6; } |
600 | -if test "${ac_cv_path_GREP+set}" = set; then : |
601 | +if ${ac_cv_path_GREP+:} false; then : |
602 | $as_echo_n "(cached) " >&6 |
603 | else |
604 | case $GREP in |
605 | @@ -2776,7 +2784,7 @@ |
606 | set dummy flex; ac_word=$2 |
607 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
608 | $as_echo_n "checking for $ac_word... " >&6; } |
609 | -if test "${ac_cv_path_FLEX+set}" = set; then : |
610 | +if ${ac_cv_path_FLEX+:} false; then : |
611 | $as_echo_n "(cached) " >&6 |
612 | else |
613 | case $FLEX in |
614 | @@ -2816,7 +2824,7 @@ |
615 | set dummy rpmbuild; ac_word=$2 |
616 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
617 | $as_echo_n "checking for $ac_word... " >&6; } |
618 | -if test "${ac_cv_path_RPMBUILD+set}" = set; then : |
619 | +if ${ac_cv_path_RPMBUILD+:} false; then : |
620 | $as_echo_n "(cached) " >&6 |
621 | else |
622 | case $RPMBUILD in |
623 | @@ -2856,7 +2864,7 @@ |
624 | set dummy xsltproc; ac_word=$2 |
625 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
626 | $as_echo_n "checking for $ac_word... " >&6; } |
627 | -if test "${ac_cv_path_XSLTPROC+set}" = set; then : |
628 | +if ${ac_cv_path_XSLTPROC+:} false; then : |
629 | $as_echo_n "(cached) " >&6 |
630 | else |
631 | case $XSLTPROC in |
632 | @@ -2896,7 +2904,7 @@ |
633 | set dummy tar; ac_word=$2 |
634 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
635 | $as_echo_n "checking for $ac_word... " >&6; } |
636 | -if test "${ac_cv_path_TAR+set}" = set; then : |
637 | +if ${ac_cv_path_TAR+:} false; then : |
638 | $as_echo_n "(cached) " >&6 |
639 | else |
640 | case $TAR in |
641 | @@ -2936,7 +2944,7 @@ |
642 | set dummy git; ac_word=$2 |
643 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
644 | $as_echo_n "checking for $ac_word... " >&6; } |
645 | -if test "${ac_cv_path_GIT+set}" = set; then : |
646 | +if ${ac_cv_path_GIT+:} false; then : |
647 | $as_echo_n "(cached) " >&6 |
648 | else |
649 | case $GIT in |
650 | @@ -2976,7 +2984,7 @@ |
651 | set dummy dpkg-buildpackage; ac_word=$2 |
652 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
653 | $as_echo_n "checking for $ac_word... " >&6; } |
654 | -if test "${ac_cv_path_DPKG_BUILDPACKAGE+set}" = set; then : |
655 | +if ${ac_cv_path_DPKG_BUILDPACKAGE+:} false; then : |
656 | $as_echo_n "(cached) " >&6 |
657 | else |
658 | case $DPKG_BUILDPACKAGE in |
659 | @@ -3016,7 +3024,7 @@ |
660 | set dummy udevadm; ac_word=$2 |
661 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
662 | $as_echo_n "checking for $ac_word... " >&6; } |
663 | -if test "${ac_cv_path_UDEVADM+set}" = set; then : |
664 | +if ${ac_cv_path_UDEVADM+:} false; then : |
665 | $as_echo_n "(cached) " >&6 |
666 | else |
667 | case $UDEVADM in |
668 | @@ -3057,7 +3065,7 @@ |
669 | set dummy udevinfo; ac_word=$2 |
670 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 |
671 | $as_echo_n "checking for $ac_word... " >&6; } |
672 | -if test "${ac_cv_path_UDEVINFO+set}" = set; then : |
673 | +if ${ac_cv_path_UDEVINFO+:} false; then : |
674 | $as_echo_n "(cached) " >&6 |
675 | else |
676 | case $UDEVINFO in |
677 | @@ -3095,7 +3103,7 @@ |
678 | |
679 | |
680 | |
681 | -if test -z $CC; then |
682 | +if test -z "$CC"; then |
683 | if test "$WITH_UTILS" = "yes"; then |
684 | as_fn_error $? "Cannot build utils without a C compiler, either install a compiler or pass the --without-utils option." "$LINENO" 5 |
685 | fi |
686 | @@ -3157,7 +3165,7 @@ |
687 | if test -z $DISTRO; then |
688 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /etc/gentoo-release" >&5 |
689 | $as_echo_n "checking for /etc/gentoo-release... " >&6; } |
690 | -if test "${ac_cv_file__etc_gentoo_release+set}" = set; then : |
691 | +if ${ac_cv_file__etc_gentoo_release+:} false; then : |
692 | $as_echo_n "(cached) " >&6 |
693 | else |
694 | test "$cross_compiling" = yes && |
695 | @@ -3170,13 +3178,13 @@ |
696 | fi |
697 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__etc_gentoo_release" >&5 |
698 | $as_echo "$ac_cv_file__etc_gentoo_release" >&6; } |
699 | -if test "x$ac_cv_file__etc_gentoo_release" = x""yes; then : |
700 | +if test "x$ac_cv_file__etc_gentoo_release" = xyes; then : |
701 | DISTRO="gentoo" |
702 | fi |
703 | |
704 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /etc/redhat-release" >&5 |
705 | $as_echo_n "checking for /etc/redhat-release... " >&6; } |
706 | -if test "${ac_cv_file__etc_redhat_release+set}" = set; then : |
707 | +if ${ac_cv_file__etc_redhat_release+:} false; then : |
708 | $as_echo_n "(cached) " >&6 |
709 | else |
710 | test "$cross_compiling" = yes && |
711 | @@ -3189,13 +3197,13 @@ |
712 | fi |
713 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__etc_redhat_release" >&5 |
714 | $as_echo "$ac_cv_file__etc_redhat_release" >&6; } |
715 | -if test "x$ac_cv_file__etc_redhat_release" = x""yes; then : |
716 | +if test "x$ac_cv_file__etc_redhat_release" = xyes; then : |
717 | DISTRO="redhat" |
718 | fi |
719 | |
720 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /etc/slackware-version" >&5 |
721 | $as_echo_n "checking for /etc/slackware-version... " >&6; } |
722 | -if test "${ac_cv_file__etc_slackware_version+set}" = set; then : |
723 | +if ${ac_cv_file__etc_slackware_version+:} false; then : |
724 | $as_echo_n "(cached) " >&6 |
725 | else |
726 | test "$cross_compiling" = yes && |
727 | @@ -3208,13 +3216,13 @@ |
728 | fi |
729 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__etc_slackware_version" >&5 |
730 | $as_echo "$ac_cv_file__etc_slackware_version" >&6; } |
731 | -if test "x$ac_cv_file__etc_slackware_version" = x""yes; then : |
732 | +if test "x$ac_cv_file__etc_slackware_version" = xyes; then : |
733 | DISTRO="slackware" |
734 | fi |
735 | |
736 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /etc/debian_version" >&5 |
737 | $as_echo_n "checking for /etc/debian_version... " >&6; } |
738 | -if test "${ac_cv_file__etc_debian_version+set}" = set; then : |
739 | +if ${ac_cv_file__etc_debian_version+:} false; then : |
740 | $as_echo_n "(cached) " >&6 |
741 | else |
742 | test "$cross_compiling" = yes && |
743 | @@ -3227,13 +3235,13 @@ |
744 | fi |
745 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__etc_debian_version" >&5 |
746 | $as_echo "$ac_cv_file__etc_debian_version" >&6; } |
747 | -if test "x$ac_cv_file__etc_debian_version" = x""yes; then : |
748 | +if test "x$ac_cv_file__etc_debian_version" = xyes; then : |
749 | DISTRO="debian" |
750 | fi |
751 | |
752 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /etc/SuSE-release" >&5 |
753 | $as_echo_n "checking for /etc/SuSE-release... " >&6; } |
754 | -if test "${ac_cv_file__etc_SuSE_release+set}" = set; then : |
755 | +if ${ac_cv_file__etc_SuSE_release+:} false; then : |
756 | $as_echo_n "(cached) " >&6 |
757 | else |
758 | test "$cross_compiling" = yes && |
759 | @@ -3246,7 +3254,7 @@ |
760 | fi |
761 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__etc_SuSE_release" >&5 |
762 | $as_echo "$ac_cv_file__etc_SuSE_release" >&6; } |
763 | -if test "x$ac_cv_file__etc_SuSE_release" = x""yes; then : |
764 | +if test "x$ac_cv_file__etc_SuSE_release" = xyes; then : |
765 | DISTRO="suse" |
766 | fi |
767 | |
768 | @@ -3269,7 +3277,7 @@ |
769 | |
770 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /etc/fedora-release" >&5 |
771 | $as_echo_n "checking for /etc/fedora-release... " >&6; } |
772 | -if test "${ac_cv_file__etc_fedora_release+set}" = set; then : |
773 | +if ${ac_cv_file__etc_fedora_release+:} false; then : |
774 | $as_echo_n "(cached) " >&6 |
775 | else |
776 | test "$cross_compiling" = yes && |
777 | @@ -3282,7 +3290,7 @@ |
778 | fi |
779 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__etc_fedora_release" >&5 |
780 | $as_echo "$ac_cv_file__etc_fedora_release" >&6; } |
781 | -if test "x$ac_cv_file__etc_fedora_release" = x""yes; then : |
782 | +if test "x$ac_cv_file__etc_fedora_release" = xyes; then : |
783 | SUB_DISTRO="fedora" |
784 | else |
785 | SUB_DISTRO="RHEL" |
786 | @@ -3460,10 +3468,21 @@ |
787 | :end' >>confcache |
788 | if diff "$cache_file" confcache >/dev/null 2>&1; then :; else |
789 | if test -w "$cache_file"; then |
790 | - test "x$cache_file" != "x/dev/null" && |
791 | + if test "x$cache_file" != "x/dev/null"; then |
792 | { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 |
793 | $as_echo "$as_me: updating cache $cache_file" >&6;} |
794 | - cat confcache >$cache_file |
795 | + if test ! -f "$cache_file" || test -h "$cache_file"; then |
796 | + cat confcache >"$cache_file" |
797 | + else |
798 | + case $cache_file in #( |
799 | + */* | ?:*) |
800 | + mv -f confcache "$cache_file"$$ && |
801 | + mv -f "$cache_file"$$ "$cache_file" ;; #( |
802 | + *) |
803 | + mv -f confcache "$cache_file" ;; |
804 | + esac |
805 | + fi |
806 | + fi |
807 | else |
808 | { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 |
809 | $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} |
810 | @@ -3495,7 +3514,7 @@ |
811 | |
812 | |
813 | |
814 | -: ${CONFIG_STATUS=./config.status} |
815 | +: "${CONFIG_STATUS=./config.status}" |
816 | ac_write_fail=0 |
817 | ac_clean_files_save=$ac_clean_files |
818 | ac_clean_files="$ac_clean_files $CONFIG_STATUS" |
819 | @@ -3596,6 +3615,7 @@ |
820 | IFS=" "" $as_nl" |
821 | |
822 | # Find who we are. Look in the path if we contain no directory separator. |
823 | +as_myself= |
824 | case $0 in #(( |
825 | *[\\/]* ) as_myself=$0 ;; |
826 | *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR |
827 | @@ -3902,8 +3922,8 @@ |
828 | # report actual input values of CONFIG_FILES etc. instead of their |
829 | # values after options handling. |
830 | ac_log=" |
831 | -This file was extended by DRBD $as_me 8.3.11, which was |
832 | -generated by GNU Autoconf 2.67. Invocation command line was |
833 | +This file was extended by DRBD $as_me 8.3.14, which was |
834 | +generated by GNU Autoconf 2.68. Invocation command line was |
835 | |
836 | CONFIG_FILES = $CONFIG_FILES |
837 | CONFIG_HEADERS = $CONFIG_HEADERS |
838 | @@ -3964,8 +3984,8 @@ |
839 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
840 | ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" |
841 | ac_cs_version="\\ |
842 | -DRBD config.status 8.3.11 |
843 | -configured by $0, generated by GNU Autoconf 2.67, |
844 | +DRBD config.status 8.3.14 |
845 | +configured by $0, generated by GNU Autoconf 2.68, |
846 | with options \\"\$ac_cs_config\\" |
847 | |
848 | Copyright (C) 2010 Free Software Foundation, Inc. |
849 | @@ -4094,7 +4114,7 @@ |
850 | "drbd-km.spec") CONFIG_FILES="$CONFIG_FILES drbd-km.spec" ;; |
851 | "drbd-kernel.spec") CONFIG_FILES="$CONFIG_FILES drbd-kernel.spec" ;; |
852 | |
853 | - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; |
854 | + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; |
855 | esac |
856 | done |
857 | |
858 | @@ -4116,9 +4136,10 @@ |
859 | # after its creation but before its name has been assigned to `$tmp'. |
860 | $debug || |
861 | { |
862 | - tmp= |
863 | + tmp= ac_tmp= |
864 | trap 'exit_status=$? |
865 | - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status |
866 | + : "${ac_tmp:=$tmp}" |
867 | + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status |
868 | ' 0 |
869 | trap 'as_fn_exit 1' 1 2 13 15 |
870 | } |
871 | @@ -4126,12 +4147,13 @@ |
872 | |
873 | { |
874 | tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && |
875 | - test -n "$tmp" && test -d "$tmp" |
876 | + test -d "$tmp" |
877 | } || |
878 | { |
879 | tmp=./conf$$-$RANDOM |
880 | (umask 077 && mkdir "$tmp") |
881 | } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 |
882 | +ac_tmp=$tmp |
883 | |
884 | # Set up the scripts for CONFIG_FILES section. |
885 | # No need to generate them if there are no CONFIG_FILES. |
886 | @@ -4153,7 +4175,7 @@ |
887 | ac_cs_awk_cr=$ac_cr |
888 | fi |
889 | |
890 | -echo 'BEGIN {' >"$tmp/subs1.awk" && |
891 | +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && |
892 | _ACEOF |
893 | |
894 | |
895 | @@ -4181,7 +4203,7 @@ |
896 | rm -f conf$$subs.sh |
897 | |
898 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
899 | -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && |
900 | +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && |
901 | _ACEOF |
902 | sed -n ' |
903 | h |
904 | @@ -4229,7 +4251,7 @@ |
905 | rm -f conf$$subs.awk |
906 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
907 | _ACAWK |
908 | -cat >>"\$tmp/subs1.awk" <<_ACAWK && |
909 | +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && |
910 | for (key in S) S_is_set[key] = 1 |
911 | FS = "" |
912 | |
913 | @@ -4261,7 +4283,7 @@ |
914 | sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" |
915 | else |
916 | cat |
917 | -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ |
918 | +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ |
919 | || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 |
920 | _ACEOF |
921 | |
922 | @@ -4295,7 +4317,7 @@ |
923 | # No need to generate them if there are no CONFIG_HEADERS. |
924 | # This happens for instance with `./config.status Makefile'. |
925 | if test -n "$CONFIG_HEADERS"; then |
926 | -cat >"$tmp/defines.awk" <<\_ACAWK || |
927 | +cat >"$ac_tmp/defines.awk" <<\_ACAWK || |
928 | BEGIN { |
929 | _ACEOF |
930 | |
931 | @@ -4307,8 +4329,8 @@ |
932 | # handling of long lines. |
933 | ac_delim='%!_!# ' |
934 | for ac_last_try in false false :; do |
935 | - ac_t=`sed -n "/$ac_delim/p" confdefs.h` |
936 | - if test -z "$ac_t"; then |
937 | + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` |
938 | + if test -z "$ac_tt"; then |
939 | break |
940 | elif $ac_last_try; then |
941 | as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 |
942 | @@ -4409,7 +4431,7 @@ |
943 | esac |
944 | case $ac_mode$ac_tag in |
945 | :[FHL]*:*);; |
946 | - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; |
947 | + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; |
948 | :[FH]-) ac_tag=-:-;; |
949 | :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; |
950 | esac |
951 | @@ -4428,7 +4450,7 @@ |
952 | for ac_f |
953 | do |
954 | case $ac_f in |
955 | - -) ac_f="$tmp/stdin";; |
956 | + -) ac_f="$ac_tmp/stdin";; |
957 | *) # Look for the file first in the build tree, then in the source tree |
958 | # (if the path is not absolute). The absolute path cannot be DOS-style, |
959 | # because $ac_f cannot contain `:'. |
960 | @@ -4437,7 +4459,7 @@ |
961 | [\\/$]*) false;; |
962 | *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; |
963 | esac || |
964 | - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; |
965 | + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; |
966 | esac |
967 | case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac |
968 | as_fn_append ac_file_inputs " '$ac_f'" |
969 | @@ -4463,8 +4485,8 @@ |
970 | esac |
971 | |
972 | case $ac_tag in |
973 | - *:-:* | *:-) cat >"$tmp/stdin" \ |
974 | - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; |
975 | + *:-:* | *:-) cat >"$ac_tmp/stdin" \ |
976 | + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; |
977 | esac |
978 | ;; |
979 | esac |
980 | @@ -4589,21 +4611,22 @@ |
981 | s&@abs_top_builddir@&$ac_abs_top_builddir&;t t |
982 | $ac_datarootdir_hack |
983 | " |
984 | -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ |
985 | - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 |
986 | +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ |
987 | + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 |
988 | |
989 | test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && |
990 | - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && |
991 | - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && |
992 | + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && |
993 | + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ |
994 | + "$ac_tmp/out"`; test -z "$ac_out"; } && |
995 | { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' |
996 | which seems to be undefined. Please make sure it is defined" >&5 |
997 | $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' |
998 | which seems to be undefined. Please make sure it is defined" >&2;} |
999 | |
1000 | - rm -f "$tmp/stdin" |
1001 | + rm -f "$ac_tmp/stdin" |
1002 | case $ac_file in |
1003 | - -) cat "$tmp/out" && rm -f "$tmp/out";; |
1004 | - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; |
1005 | + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; |
1006 | + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; |
1007 | esac \ |
1008 | || as_fn_error $? "could not create $ac_file" "$LINENO" 5 |
1009 | ;; |
1010 | @@ -4614,20 +4637,20 @@ |
1011 | if test x"$ac_file" != x-; then |
1012 | { |
1013 | $as_echo "/* $configure_input */" \ |
1014 | - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" |
1015 | - } >"$tmp/config.h" \ |
1016 | + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" |
1017 | + } >"$ac_tmp/config.h" \ |
1018 | || as_fn_error $? "could not create $ac_file" "$LINENO" 5 |
1019 | - if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then |
1020 | + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then |
1021 | { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 |
1022 | $as_echo "$as_me: $ac_file is unchanged" >&6;} |
1023 | else |
1024 | rm -f "$ac_file" |
1025 | - mv "$tmp/config.h" "$ac_file" \ |
1026 | + mv "$ac_tmp/config.h" "$ac_file" \ |
1027 | || as_fn_error $? "could not create $ac_file" "$LINENO" 5 |
1028 | fi |
1029 | else |
1030 | $as_echo "/* $configure_input */" \ |
1031 | - && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ |
1032 | + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ |
1033 | || as_fn_error $? "could not create -" "$LINENO" 5 |
1034 | fi |
1035 | ;; |
1036 | |
1037 | === modified file 'configure.ac' |
1038 | --- configure.ac 2011-07-05 15:40:13 +0000 |
1039 | +++ configure.ac 2012-11-21 23:20:34 +0000 |
1040 | @@ -7,7 +7,7 @@ |
1041 | AC_PREREQ(2.53) |
1042 | |
1043 | dnl What we are, our version, who to bug in case of problems |
1044 | -AC_INIT(DRBD, 8.3.11, [drbd-dev@lists.linbit.com]) |
1045 | +AC_INIT(DRBD, 8.3.14, [drbd-dev@lists.linbit.com]) |
1046 | |
1047 | dnl Sanitize $prefix. Autoconf does this by itself, but so late in the |
1048 | dnl generated configure script that the expansion does not occur until |
1049 | @@ -124,7 +124,7 @@ |
1050 | AC_PATH_PROG(UDEVADM, udevadm, [false], [/sbin$PATH_SEPARATOR$PATH]) |
1051 | AC_PATH_PROG(UDEVINFO, udevinfo, [false], [/sbin$PATH_SEPARATOR$PATH]) |
1052 | |
1053 | -if test -z $CC; then |
1054 | +if test -z "$CC"; then |
1055 | if test "$WITH_UTILS" = "yes"; then |
1056 | AC_MSG_ERROR([Cannot build utils without a C compiler, either install a compiler or pass the --without-utils option.]) |
1057 | fi |
1058 | |
1059 | === modified file 'debian/changelog' |
1060 | --- debian/changelog 2011-07-05 15:40:13 +0000 |
1061 | +++ debian/changelog 2012-11-21 23:20:34 +0000 |
1062 | @@ -1,3 +1,9 @@ |
1063 | +drbd8 (2:8.3.14-0ubuntu1) raring; urgency=low |
1064 | + |
1065 | + * New upstream release. |
1066 | + |
1067 | + -- Benjamin Kerensa <bkerensa@ubuntu.com> Wed, 21 Nov 2012 15:12:05 -0800 |
1068 | + |
1069 | drbd8 (2:8.3.11-0ubuntu1) oneiric; urgency=low |
1070 | |
1071 | * New upstream release |
1072 | |
1073 | === modified file 'documentation/drbd.8' |
1074 | --- documentation/drbd.8 2011-01-24 15:36:33 +0000 |
1075 | +++ documentation/drbd.8 2012-11-21 23:20:34 +0000 |
1076 | @@ -1,7 +1,7 @@ |
1077 | '\" t |
1078 | .\" Title: drbd |
1079 | .\" Author: [see the "Author" section] |
1080 | -.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> |
1081 | +.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> |
1082 | .\" Date: 15 Oct 2008 |
1083 | .\" Manual: System Administration |
1084 | .\" Source: DRBD 8.3.2 |
1085 | |
1086 | === modified file 'documentation/drbd.conf.5' |
1087 | --- documentation/drbd.conf.5 2011-07-05 15:40:13 +0000 |
1088 | +++ documentation/drbd.conf.5 2012-11-21 23:20:34 +0000 |
1089 | @@ -1,7 +1,7 @@ |
1090 | '\" t |
1091 | .\" Title: drbd.conf |
1092 | .\" Author: [see the "Author" section] |
1093 | -.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> |
1094 | +.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> |
1095 | .\" Date: 5 Dec 2008 |
1096 | .\" Manual: Configuration Files |
1097 | .\" Source: DRBD 8.3.2 |
1098 | @@ -228,7 +228,8 @@ |
1099 | \fBno\-disk\-flushes\fR, |
1100 | \fBno\-disk\-drain\fR, |
1101 | \fBno\-md\-flushes\fR, |
1102 | -\fBmax\-bio\-bvecs\fR\&. |
1103 | +\fBmax\-bio\-bvecs\fR, |
1104 | +\fBdisk\-timeout\fR\&. |
1105 | .RE |
1106 | .PP |
1107 | \fBnet\fR |
1108 | @@ -541,12 +542,16 @@ |
1109 | .PP |
1110 | \fBno\-disk\-barrier\fR, \fBno\-disk\-flushes\fR, \fBno\-disk\-drain\fR |
1111 | .RS 4 |
1112 | -.\" drbd.conf: no-disk-flushes |
1113 | -.\" drbd.conf: no-disk-flushes |
1114 | -.\" drbd.conf: no-disk-flushes |
1115 | +.\" drbd.conf: no-disk-barrier |
1116 | +.\" drbd.conf: no-disk-flushes |
1117 | +.\" drbd.conf: no-disk-drain |
1118 | DRBD has four implementations to express write\-after\-write dependencies to its backing storage device\&. DRBD will use the first method that is supported by the backing storage device and that is not disabled by the user\&. |
1119 | .sp |
1120 | -When selecting the method you should not only base your decision on the measurable performance\&. In case your backing storage device has a volatile write cache (plain disks, RAID of plain disks) you should use one of the first two\&. In case your backing storage device has battery\-backed write cache you may go with option 3 or 4\&. Option 4 will deliver the best performance on such devices\&. |
1121 | +When selecting the method you should not only base your decision on the measurable performance\&. In case your backing storage device has a volatile write cache (plain disks, RAID of plain disks) you should use one of the first two\&. In case your backing storage device has battery\-backed write cache you may go with option 3\&. Option 4 (disable everything, use "none") |
1122 | +\fIis dangerous\fR |
1123 | +on most IO stacks, may result in write\-reordering, and if so, can theoretically be the reason for data corruption, or disturb the DRBD protocol, causing spurious disconnect/reconnect cycles\&. |
1124 | +\fIDo not use\fR |
1125 | +\fBno\-disk\-drain\fR\&. |
1126 | .sp |
1127 | Unfortunately device mapper (LVM) might not support barriers\&. |
1128 | .sp |
1129 | @@ -560,7 +565,7 @@ |
1130 | .RS 4 |
1131 | The first requires that the driver of the backing storage device support barriers (called \*(Aqtagged command queuing\*(Aq in SCSI and \*(Aqnative command queuing\*(Aq in SATA speak)\&. The use of this method can be disabled by the |
1132 | \fBno\-disk\-barrier\fR |
1133 | -option\&. |
1134 | +option\&. Note: Since Linux\-2\&.6\&.36 (or RHEL\*(Aqs 2\&.6\&.32) this method is disabled\&. |
1135 | .RE |
1136 | .PP |
1137 | flush |
1138 | @@ -572,14 +577,17 @@ |
1139 | .PP |
1140 | drain |
1141 | .RS 4 |
1142 | -The third method is simply to let write requests drain before write requests of a new reordering domain are issued\&. This was the only implementation before 8\&.0\&.9\&. You can disable this method by using the |
1143 | -\fBno\-disk\-drain\fR |
1144 | -option\&. |
1145 | +The third method is simply to let write requests drain before write requests of a new reordering domain are issued\&. This was the only implementation before 8\&.0\&.9\&. |
1146 | .RE |
1147 | .PP |
1148 | none |
1149 | .RS 4 |
1150 | -The fourth method is to not express write\-after\-write dependencies to the backing store at all\&. |
1151 | +The fourth method is to not express write\-after\-write dependencies to the backing store at all, by also specifying |
1152 | +\fBno\-disk\-drain\fR\&. This |
1153 | +\fIis dangerous\fR |
1154 | +on most IO stacks, may result in write\-reordering, and if so, can theoretically be the reason for data corruption, or disturb the DRBD protocol, causing spurious disconnect/reconnect cycles\&. |
1155 | +\fIDo not use\fR |
1156 | +\fBno\-disk\-drain\fR\&. |
1157 | .RE |
1158 | .RE |
1159 | .PP |
1160 | @@ -603,6 +611,17 @@ |
1161 | is 0, which means that there is no user imposed limitation\&. |
1162 | .RE |
1163 | .PP |
1164 | +\fBdisk\-timeout\fR |
1165 | +.RS 4 |
1166 | +.\" drbd.conf: disk-timeout |
1167 | +If the driver of the |
1168 | +\fIlower_device\fR |
1169 | +does not finish an IO request within |
1170 | +\fIdisk_timeout\fR, DRBD considers the disk as failed\&. If DRBD is connected to a remote host, it will reissue local pending IO requests to the peer, and ship all new IO requests to the peer only\&. The disk state advances to diskless, as soon as the backing block device has finished all IO requests\&. |
1171 | +.sp |
1172 | +The default value of is 0, which means that no timeout is enforced\&. The default unit is 100ms\&. This option is available since 8\&.3\&.12\&. |
1173 | +.RE |
1174 | +.PP |
1175 | \fBsndbuf\-size \fR\fB\fIsize\fR\fR |
1176 | .RS 4 |
1177 | .\" drbd.conf: sndbuf-size\fIsize\fR |
1178 | |
1179 | === added file 'documentation/drbd.conf.xml' |
1180 | --- documentation/drbd.conf.xml 1970-01-01 00:00:00 +0000 |
1181 | +++ documentation/drbd.conf.xml 2012-11-21 23:20:34 +0000 |
1182 | @@ -0,0 +1,1785 @@ |
1183 | +<?xml version="1.0"?> |
1184 | +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> |
1185 | +<refentry id="re-drbdconf"> |
1186 | + <refentryinfo> |
1187 | + <date>5 Dec 2008</date> |
1188 | + <productname>DRBD</productname> |
1189 | + <productnumber>8.3.2</productnumber> |
1190 | + </refentryinfo> |
1191 | + <refmeta> |
1192 | + <refentrytitle>drbd.conf</refentrytitle> |
1193 | + <manvolnum>5</manvolnum> |
1194 | + <refmiscinfo class="manual">Configuration Files</refmiscinfo> |
1195 | + </refmeta> |
1196 | + <refnamediv> |
1197 | + <refname>drbd.conf</refname> |
1198 | + <refpurpose>Configuration file for DRBD's devices |
1199 | + <indexterm significance="normal"> |
1200 | + <primary>drbd.conf</primary> |
1201 | + </indexterm> |
1202 | + </refpurpose> |
1203 | + </refnamediv> |
1204 | + <refsect1> |
1205 | + <title>Introduction</title> |
1206 | + <para> The file <option>/etc/drbd.conf</option> is read by |
1207 | + <option>drbdadm</option>. |
1208 | + </para> |
1209 | + <para> The file format was designed as to allow to have |
1210 | + a verbatim copy of the file on both nodes of the cluster. |
1211 | + It is highly recommended to do so in order to keep your configuration |
1212 | + manageable. The file <option>/etc/drbd.conf</option> should be the same on both nodes of the cluster. Changes to <option>/etc/drbd.conf</option> do not apply |
1213 | + immediately. |
1214 | +<example><title>A small drbd.conf file</title><programlisting format="linespecific">global { usage-count yes; } |
1215 | +common { syncer { rate 10M; } } |
1216 | +resource r0 { |
1217 | + protocol C; |
1218 | + net { |
1219 | + cram-hmac-alg sha1; |
1220 | + shared-secret "FooFunFactory"; |
1221 | + } |
1222 | + on alice { |
1223 | + device minor 1; |
1224 | + disk /dev/sda7; |
1225 | + address 10.1.1.31:7789; |
1226 | + meta-disk internal; |
1227 | + } |
1228 | + on bob { |
1229 | + device minor 1; |
1230 | + disk /dev/sda7; |
1231 | + address 10.1.1.32:7789; |
1232 | + meta-disk internal; |
1233 | + } |
1234 | +}</programlisting></example> |
1235 | + In this example, there is a single DRBD resource (called r0) which uses |
1236 | + protocol C for the connection between its devices. |
1237 | + The device which runs |
1238 | + on host <replaceable>alice</replaceable> uses |
1239 | + <replaceable>/dev/drbd1</replaceable> as devices for its application, and |
1240 | + <replaceable>/dev/sda7</replaceable> as low-level storage for the data. |
1241 | + The IP addresses are used to specify the networking interfaces to be used. |
1242 | + An eventually running resync process should use about 10MByte/second of IO |
1243 | + bandwidth. |
1244 | + </para> |
1245 | + <para> There may be multiple resource sections in a single drbd.conf file. |
1246 | + For more examples, please have a look at the |
1247 | + <ulink url="http://www.drbd.org/users-guide/"><citetitle>DRBD User's Guide</citetitle></ulink>. |
1248 | + </para> |
1249 | + </refsect1> |
1250 | + <refsect1> |
1251 | + <title>File Format</title> |
1252 | + <para> The file consists of sections and parameters. |
1253 | + A section begins with a keyword, sometimes an additional name, and an |
1254 | + opening brace (<quote>{</quote>). |
1255 | + A section ends with a closing brace (<quote>}</quote>. |
1256 | + The braces enclose the parameters. |
1257 | + </para> |
1258 | + <para> section [name] { parameter value; [...] } |
1259 | + </para> |
1260 | + <para> A parameter starts with the identifier of the parameter followed |
1261 | + by whitespace. Every subsequent character |
1262 | + is considered |
1263 | + as part of the parameter's value. A special case are Boolean |
1264 | + parameters which consist only of the identifier. |
1265 | + Parameters are terminated by a semicolon (<quote>;</quote>). |
1266 | + </para> |
1267 | + <para>Some parameter values have default units which might be overruled |
1268 | + by K, M or G. These units are defined in the usual way (K = 2^10 = 1024, |
1269 | + M = 1024 K, G = 1024 M). |
1270 | + </para> |
1271 | + <para> Comments may be placed into the configuration file and must |
1272 | + begin with a hash sign (<quote>#</quote>). Subsequent characters are ignored |
1273 | + until the end of the line. |
1274 | + </para> |
1275 | + <refsect2> |
1276 | + <title>Sections</title> |
1277 | + <variablelist> |
1278 | + <varlistentry> |
1279 | + <term> |
1280 | + <option>skip</option> |
1281 | + </term> |
1282 | + <listitem> |
1283 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>skip</secondary></indexterm> |
1284 | + Comments out chunks of text, even spanning more than one line. |
1285 | + Characters between the keyword <option>skip</option> and the opening |
1286 | + brace (<quote>{</quote>) are ignored. Everything enclosed by the braces |
1287 | + is skipped. |
1288 | + This comes in handy, if you just want to comment out |
1289 | + some '<option>resource [name] {...}</option>' section: just precede it with '<quote>skip</quote>'. |
1290 | + </para> |
1291 | + </listitem> |
1292 | + </varlistentry> |
1293 | + <varlistentry> |
1294 | + <term> |
1295 | + <option>global</option> |
1296 | + </term> |
1297 | + <listitem> |
1298 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>global</secondary></indexterm> |
1299 | + Configures some global parameters. Currently only |
1300 | + <option>minor-count</option>, <option>dialog-refresh</option>, |
1301 | + <option>disable-ip-verification</option> and <option>usage-count</option> |
1302 | + are allowed here. You may only have one global section, preferably |
1303 | + as the first section. |
1304 | + </para> |
1305 | + </listitem> |
1306 | + </varlistentry> |
1307 | + <varlistentry> |
1308 | + <term> |
1309 | + <option>common</option> |
1310 | + </term> |
1311 | + <listitem> |
1312 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>common</secondary></indexterm> |
1313 | + All resources inherit the options set in this section. |
1314 | + The common section might have |
1315 | + a <option>startup</option>, |
1316 | + a <option>syncer</option>, |
1317 | + a <option>handlers</option>, |
1318 | + a <option>net</option> and a <option>disk</option> section. |
1319 | + </para> |
1320 | + </listitem> |
1321 | + </varlistentry> |
1322 | + <varlistentry> |
1323 | + <term> |
1324 | + <option>resource <replaceable>name</replaceable></option> |
1325 | + </term> |
1326 | + <listitem> |
1327 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>resource</secondary></indexterm> |
1328 | + Configures a DRBD resource. |
1329 | + Each resource section needs to have two (or more) |
1330 | + <option>on <replaceable>host</replaceable></option> sections |
1331 | + and may have |
1332 | + a <option>startup</option>, |
1333 | + a <option>syncer</option>, |
1334 | + a <option>handlers</option>, |
1335 | + a <option>net</option> and a <option>disk</option> section. |
1336 | + Required parameter in this section: <option>protocol</option>. |
1337 | + </para> |
1338 | + </listitem> |
1339 | + </varlistentry> |
1340 | + <varlistentry> |
1341 | + <term> |
1342 | + <option>on <replaceable>host-name</replaceable></option> |
1343 | + </term> |
1344 | + <listitem> |
1345 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>on</secondary></indexterm> |
1346 | + Carries the necessary configuration parameters for a DRBD |
1347 | + device of the enclosing resource. |
1348 | + <replaceable>host-name</replaceable> is mandatory and must match the |
1349 | + Linux host name (uname -n) of one of the nodes. |
1350 | + You may list more than one host name here, in case you want to use the same |
1351 | + parameters on several hosts (you'd have to move the IP around usually). |
1352 | + Or you may list more than two such sections. |
1353 | + <programlisting format="linespecific"> resource r1 { |
1354 | + protocol C; |
1355 | + device minor 1; |
1356 | + meta-disk internal; |
1357 | + |
1358 | + on alice bob { |
1359 | + address 10.2.2.100:7801; |
1360 | + disk /dev/mapper/some-san; |
1361 | + } |
1362 | + on charlie { |
1363 | + address 10.2.2.101:7801; |
1364 | + disk /dev/mapper/other-san; |
1365 | + } |
1366 | + on daisy { |
1367 | + address 10.2.2.103:7801; |
1368 | + disk /dev/mapper/other-san-as-seen-from-daisy; |
1369 | + } |
1370 | + } |
1371 | + </programlisting> |
1372 | + See also the <option>floating</option> section keyword. |
1373 | + Required parameters in this section: <option>device</option>, |
1374 | + <option>disk</option>, <option>address</option>, <option>meta-disk</option>, |
1375 | + <option>flexible-meta-disk</option>. |
1376 | + </para> |
1377 | + </listitem> |
1378 | + </varlistentry> |
1379 | + <varlistentry> |
1380 | + <term> |
1381 | + <option>stacked-on-top-of <replaceable>resource</replaceable></option> |
1382 | + </term> |
1383 | + <listitem> |
1384 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>stacked-on-top-of</secondary></indexterm> |
1385 | + For a stacked DRBD setup (3 or 4 nodes), a <option>stacked-on-top-of</option> is used |
1386 | + instead of an <option>on</option> section. |
1387 | + Required parameters in this section: <option>device</option> and |
1388 | + <option>address</option>. |
1389 | + </para> |
1390 | + </listitem> |
1391 | + </varlistentry> |
1392 | + <varlistentry> |
1393 | + <term> |
1394 | + <option>floating <replaceable>AF addr:port</replaceable></option> |
1395 | + </term> |
1396 | + <listitem> |
1397 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>on</secondary></indexterm> |
1398 | + Carries the necessary configuration parameters for a DRBD |
1399 | + device of the enclosing resource. |
1400 | + This section is very similar to the <option>on</option> section. |
1401 | + The difference to the <option>on</option> section is that |
1402 | + the matching of the host sections to machines is done by the IP-address |
1403 | + instead of the node name. |
1404 | + Required parameters in this section: <option>device</option>, |
1405 | + <option>disk</option>, <option>meta-disk</option>, |
1406 | + <option>flexible-meta-disk</option>, all of which <emphasis>may</emphasis> be |
1407 | + inherited from the resource section, in which case you may shorten this section |
1408 | + down to just the address identifier. |
1409 | + <programlisting format="linespecific"> resource r2 { |
1410 | + protocol C; |
1411 | + device minor 2; |
1412 | + disk /dev/sda7; |
1413 | + meta-disk internal; |
1414 | + |
1415 | + # short form, device, disk and meta-disk inherited |
1416 | + floating 10.1.1.31:7802; |
1417 | + |
1418 | + # longer form, only device inherited |
1419 | + floating 10.1.1.32:7802 { |
1420 | + disk /dev/sdb; |
1421 | + meta-disk /dev/sdc8; |
1422 | + } |
1423 | + } |
1424 | + </programlisting> |
1425 | + </para> |
1426 | + </listitem> |
1427 | + </varlistentry> |
1428 | + <varlistentry> |
1429 | + <term> |
1430 | + <option>disk</option> |
1431 | + </term> |
1432 | + <listitem> |
1433 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>disk</secondary></indexterm> |
1434 | + This section is used to fine tune DRBD's properties |
1435 | + in respect to the low level storage. Please |
1436 | + refer to <citerefentry><refentrytitle>drbdsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry> for detailed description of |
1437 | + the parameters. |
1438 | + Optional parameters: <option>on-io-error</option>, |
1439 | + <option>size</option>, <option>fencing</option>, <option>use-bmbv</option>, |
1440 | + <option>no-disk-barrier</option>, <option>no-disk-flushes</option>, |
1441 | + <option>no-disk-drain</option>, <option>no-md-flushes</option>, |
1442 | + <option>max-bio-bvecs</option>, <option>disk-timeout</option>. |
1443 | + </para> |
1444 | + </listitem> |
1445 | + </varlistentry> |
1446 | + <varlistentry> |
1447 | + <term> |
1448 | + <option>net</option> |
1449 | + </term> |
1450 | + <listitem> |
1451 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>net</secondary></indexterm> |
1452 | + This section is used to fine tune DRBD's properties. Please |
1453 | + refer to <citerefentry><refentrytitle>drbdsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry> for a detailed description |
1454 | + of this section's parameters. |
1455 | + Optional parameters: |
1456 | + <option>sndbuf-size</option>, <option>rcvbuf-size</option>, |
1457 | + <option>timeout</option>, |
1458 | + <option>connect-int</option>, <option>ping-int</option>, |
1459 | + <option>ping-timeout</option>, |
1460 | + <option>max-buffers</option>, <option>max-epoch-size</option>, |
1461 | + <option>ko-count</option>, <option>allow-two-primaries</option>, |
1462 | + <option>cram-hmac-alg</option>, <option>shared-secret</option>, |
1463 | + <option>after-sb-0pri</option>, <option>after-sb-1pri</option>, |
1464 | + <option>after-sb-2pri</option>, <option>data-integrity-alg</option>, |
1465 | + <option>no-tcp-cork</option>, <option>on-congestion</option>, |
1466 | + <option>congestion-fill</option>, <option>congestion-extents</option> |
1467 | + </para> |
1468 | + </listitem> |
1469 | + </varlistentry> |
1470 | + <varlistentry> |
1471 | + <term> |
1472 | + <option>startup</option> |
1473 | + </term> |
1474 | + <listitem> |
1475 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>startup</secondary></indexterm> |
1476 | + This section is used to fine tune DRBD's properties. Please |
1477 | + refer to <citerefentry><refentrytitle>drbdsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry> for a detailed description |
1478 | + of this section's parameters. |
1479 | + Optional parameters: |
1480 | + <option>wfc-timeout</option>, <option>degr-wfc-timeout</option>, |
1481 | + <option>outdated-wfc-timeout</option>, |
1482 | + <option>wait-after-sb</option>, <option>stacked-timeouts</option> |
1483 | + and <option>become-primary-on</option>. |
1484 | + </para> |
1485 | + </listitem> |
1486 | + </varlistentry> |
1487 | + <varlistentry> |
1488 | + <term> |
1489 | + <option>syncer</option> |
1490 | + </term> |
1491 | + <listitem> |
1492 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>syncer</secondary></indexterm> |
1493 | + This section is used to fine tune the synchronization daemon |
1494 | + for the device. Please |
1495 | + refer to <citerefentry><refentrytitle>drbdsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry> for a detailed description |
1496 | + of this section's parameters. |
1497 | + Optional parameters: |
1498 | + <option>rate</option>, <option>after</option>, <option>al-extents</option>, |
1499 | + <option>use-rle</option>, |
1500 | + <option>cpu-mask</option>, <option>verify-alg</option>, <option>csums-alg</option>, |
1501 | + <option>c-plan-ahead</option>, <option>c-fill-target</option>, |
1502 | + <option>c-delay-target</option>, <option>c-max-rate</option>, |
1503 | + <option>c-min-rate</option> |
1504 | + and <option>on-no-data-accessible</option>. |
1505 | + </para> |
1506 | + </listitem> |
1507 | + </varlistentry> |
1508 | + <varlistentry> |
1509 | + <term> |
1510 | + <option>handlers</option> |
1511 | + </term> |
1512 | + <listitem> |
1513 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>handlers</secondary></indexterm> |
1514 | + In this section you can define handlers (executables) that are started |
1515 | + by the DRBD system in response to certain events. |
1516 | + Optional parameters: |
1517 | + <option>pri-on-incon-degr</option>, <option>pri-lost-after-sb</option>, |
1518 | + <option>pri-lost</option>, <option>fence-peer</option> (formerly oudate-peer), |
1519 | + <option>local-io-error</option>, <option>initial-split-brain</option>, <option>split-brain</option>, |
1520 | + <option>before-resync-target</option>, <option>after-resync-target</option>. |
1521 | + </para> |
1522 | + <para> |
1523 | + The interface is done via environment variables: |
1524 | + <variablelist> |
1525 | + <varlistentry> |
1526 | + <term><option>DRBD_RESOURCE</option></term> |
1527 | + <listitem><para>is the name of the resource</para></listitem> |
1528 | + </varlistentry> |
1529 | + <varlistentry> |
1530 | + <term><option>DRBD_MINOR</option></term> |
1531 | + <listitem><para>is the minor number of the DRBD device, in decimal.</para></listitem> |
1532 | + </varlistentry> |
1533 | + <varlistentry> |
1534 | + <term><option>DRBD_CONF</option></term> |
1535 | + <listitem><para> |
1536 | + is the path to the primary configuration file; if you |
1537 | + split your configuration into multiple files (e.g. in <option>/etc/drbd.conf.d/</option>), |
1538 | + this will not be helpful. |
1539 | + </para></listitem> |
1540 | + </varlistentry> |
1541 | + <varlistentry> |
1542 | + <term><option>DRBD_PEER_AF</option>, |
1543 | + <option>DRBD_PEER_ADDRESS</option>, |
1544 | + <option>DRBD_PEERS</option></term> |
1545 | + <listitem><para> |
1546 | + are the address family (e.g. <option>ipv6</option>), |
1547 | + the peer's address and hostnames. |
1548 | + </para></listitem> |
1549 | + </varlistentry> |
1550 | + </variablelist> |
1551 | + <option>DRBD_PEER</option> (note the singular form) is deprecated, and superseeded by DRBD_PEERS. |
1552 | + </para> |
1553 | + <para> |
1554 | + Please note that not all of these might be set for all handlers, and that some values might not be useable for a <option>floating</option> definition. |
1555 | + </para> |
1556 | + </listitem> |
1557 | + </varlistentry> |
1558 | + </variablelist> |
1559 | + </refsect2> |
1560 | + <refsect2> |
1561 | + <title>Parameters</title> |
1562 | + <variablelist> |
1563 | + <varlistentry> |
1564 | + <term> |
1565 | + <option>minor-count <replaceable>count</replaceable></option> |
1566 | + </term> |
1567 | + <listitem> |
1568 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>minor-count </secondary></indexterm><replaceable>count</replaceable> may be a number from 1 to 255. |
1569 | + </para> |
1570 | + <para>Use <replaceable>minor-count</replaceable> |
1571 | + if you want to define massively more resources later without reloading |
1572 | + the DRBD kernel |
1573 | + module. Per default the module loads with 11 more resources than you have currently |
1574 | + in your config but at least 32.</para> |
1575 | + </listitem> |
1576 | + </varlistentry> |
1577 | + <varlistentry> |
1578 | + <term> |
1579 | + <option>dialog-refresh <replaceable>time</replaceable></option> |
1580 | + </term> |
1581 | + <listitem> |
1582 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>dialog-refresh </secondary></indexterm><replaceable>time</replaceable> may be 0 or a positive number. |
1583 | + </para> |
1584 | + <para>The user dialog redraws the second count every |
1585 | + <replaceable>time</replaceable> seconds (or does no redraws if |
1586 | + <replaceable>time</replaceable> is 0). The default value is 1.</para> |
1587 | + </listitem> |
1588 | + </varlistentry> |
1589 | + <varlistentry> |
1590 | + <term> |
1591 | + <option>disable-ip-verification</option> |
1592 | + </term> |
1593 | + <listitem> |
1594 | + <indexterm significance="normal"> |
1595 | + <primary>drbd.conf</primary> |
1596 | + <secondary>disable-ip-verification</secondary> |
1597 | + </indexterm> |
1598 | + <para>Use <replaceable>disable-ip-verification</replaceable> |
1599 | + if, for some obscure reasons, drbdadm can/might not use <option>ip</option> or <option>ifconfig</option> |
1600 | + to do a sanity check for the IP address. You can disable the IP verification with |
1601 | + this option. |
1602 | + </para> |
1603 | + </listitem> |
1604 | + </varlistentry> |
1605 | + <varlistentry> |
1606 | + <term> |
1607 | + <option>usage-count <replaceable>val</replaceable></option> |
1608 | + </term> |
1609 | + <listitem> |
1610 | + <indexterm significance="normal"> |
1611 | + <primary>drbd.conf</primary> |
1612 | + <secondary>usage-count </secondary> |
1613 | + </indexterm> |
1614 | + <para>Please participate in |
1615 | + <ulink url="http://usage.drbd.org"><citetitle>DRBD's online usage counter</citetitle></ulink>. |
1616 | + The most convenient way to do so |
1617 | + is to set this option to <option>yes</option>. Valid options are: |
1618 | + <option>yes</option>, <option>no</option> and <option>ask</option>. |
1619 | + </para> |
1620 | + </listitem> |
1621 | + </varlistentry> |
1622 | + <varlistentry> |
1623 | + <term> |
1624 | + <option>protocol <replaceable>prot-id</replaceable></option> |
1625 | + </term> |
1626 | + <listitem> |
1627 | + <indexterm significance="normal"> |
1628 | + <primary>drbd.conf</primary> |
1629 | + <secondary>protocol</secondary> |
1630 | + </indexterm> |
1631 | + <para>On the TCP/IP link the specified <replaceable>protocol</replaceable> |
1632 | + is used. Valid protocol specifiers are A, B, and C.</para> |
1633 | + <para>Protocol A: write IO is reported as completed, if it has |
1634 | + reached local disk and local TCP send buffer.</para> |
1635 | + <para>Protocol B: write IO is reported as completed, if it has reached |
1636 | + local disk and remote buffer cache.</para> |
1637 | + <para>Protocol C: write IO is reported as completed, if it has |
1638 | + reached both local and remote disk.</para> |
1639 | + </listitem> |
1640 | + </varlistentry> |
1641 | + <varlistentry> |
1642 | + <term> |
1643 | + <option>device <replaceable>name</replaceable> minor <replaceable>nr</replaceable></option> |
1644 | + </term> |
1645 | + <listitem> |
1646 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>device</secondary></indexterm> |
1647 | + The name of the block device node of the resource being described. |
1648 | + You must use this device with your application (file system) and |
1649 | + you must not use the low level block device which is specified with the |
1650 | + <option>disk</option> parameter. |
1651 | + </para> |
1652 | + <para> One can ether omit the <replaceable>name</replaceable> or <option>minor</option> |
1653 | + and the <replaceable>minor number</replaceable>. If you omit the <replaceable>name</replaceable> |
1654 | + a default of /dev/drbd<replaceable>minor</replaceable> will be used. |
1655 | + </para> |
1656 | + <para> Udev will create additional symlinks in /dev/drbd/by-res and /dev/drbd/by-disk. |
1657 | + </para> |
1658 | + </listitem> |
1659 | + </varlistentry> |
1660 | + <varlistentry> |
1661 | + <term> |
1662 | + <option>disk <replaceable>name</replaceable></option> |
1663 | + </term> |
1664 | + <listitem> |
1665 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>disk</secondary></indexterm> |
1666 | + DRBD uses this block device to actually store and retrieve the data. |
1667 | + Never access such a device while DRBD is running on top of it. This |
1668 | + also holds true for <citerefentry><refentrytitle>dumpe2fs</refentrytitle><manvolnum>8</manvolnum></citerefentry> and similar commands. |
1669 | + </para> |
1670 | + </listitem> |
1671 | + </varlistentry> |
1672 | + <varlistentry> |
1673 | + <term> |
1674 | + <option>address <replaceable>AF addr:port</replaceable></option> |
1675 | + </term> |
1676 | + <listitem> |
1677 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>address</secondary></indexterm> |
1678 | + A resource needs one <replaceable>IP</replaceable> address per device, |
1679 | + which is used to wait for incoming connections from the partner device |
1680 | + respectively to reach the partner device. <replaceable>AF</replaceable> |
1681 | + must be one of <option>ipv4</option>, <option>ipv6</option>, <option>ssocks</option> |
1682 | + or <option>sdp</option> |
1683 | + (for compatibility reasons <option>sci</option> is an alias for <option>ssocks</option>). |
1684 | + It may be omited for IPv4 addresses. The actual IPv6 address that follows |
1685 | + the <option>ipv6</option> keyword must be placed inside brackets: |
1686 | + <literal moreinfo="none">ipv6 [fd01:2345:6789:abcd::1]:7800</literal>. |
1687 | + </para> |
1688 | + <para> Each DRBD resource needs a TCP <replaceable>port</replaceable> |
1689 | + which is used to connect to the node's partner device. |
1690 | + Two different DRBD resources may not use the same |
1691 | + <replaceable>addr:port</replaceable> combination on the same node. |
1692 | + </para> |
1693 | + </listitem> |
1694 | + </varlistentry> |
1695 | + <varlistentry> |
1696 | + <term> |
1697 | + <option>meta-disk <replaceable>internal</replaceable></option> |
1698 | + </term> |
1699 | + <term> |
1700 | + <option>flexible-meta-disk <replaceable>internal</replaceable></option> |
1701 | + </term> |
1702 | + <term> |
1703 | + <option>meta-disk <replaceable>device [index]</replaceable></option> |
1704 | + </term> |
1705 | + <term> |
1706 | + <option>flexible-meta-disk <replaceable>device </replaceable></option> |
1707 | + </term> |
1708 | + <listitem> |
1709 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>meta-disk</secondary></indexterm><indexterm significance="normal"><primary>drbd.conf</primary><secondary>flexible-meta-disk</secondary></indexterm> |
1710 | + Internal means that the last part of the backing device is used to store |
1711 | + the meta-data. You must not use <replaceable>[index]</replaceable> with |
1712 | + internal. Note: Regardless of whether you use the <option>meta-disk</option> or |
1713 | + the <option>flexible-meta-disk</option> keyword, it will always be of |
1714 | + the size needed for the remaining storage size. |
1715 | + </para> |
1716 | + <para> You can use a single block <replaceable>device</replaceable> to store |
1717 | + meta-data of multiple DRBD devices. |
1718 | + E.g. use meta-disk /dev/sde6[0]; and meta-disk /dev/sde6[1]; |
1719 | + for two different resources. In this case the meta-disk |
1720 | + would need to be at least 256 MB in size. |
1721 | + </para> |
1722 | + <para> With the <option>flexible-meta-disk</option> keyword you specify |
1723 | + a block device as meta-data storage. You usually use this with LVM, |
1724 | + which allows you to have many variable sized block devices. |
1725 | + The required size of the meta-disk block device is |
1726 | + 36kB + Backing-Storage-size / 32k. Round this number to the next 4kb |
1727 | + boundary up and you have the exact size. |
1728 | + Rule of the thumb: 32kByte per 1GByte of storage, round up to the next |
1729 | + MB.</para> |
1730 | + </listitem> |
1731 | + </varlistentry> |
1732 | + <varlistentry> |
1733 | + <term> |
1734 | + <option>on-io-error <replaceable>handler</replaceable></option> |
1735 | + </term> |
1736 | + <listitem> |
1737 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>on-io-error</secondary></indexterm><replaceable>handler</replaceable> is taken, if the lower level |
1738 | + device reports io-errors to the upper layers. |
1739 | + </para> |
1740 | + <para><replaceable>handler</replaceable> may be <option>pass_on</option>, <option>call-local-io-error</option> |
1741 | + or <option>detach.</option> |
1742 | + </para> |
1743 | + <para><option>pass_on</option>: The node downgrades the disk status to inconsistent, marks the |
1744 | + erroneous block as inconsistent in the bitmap and retries the IO on the remote node.</para> |
1745 | + <para><option>call-local-io-error</option>: Call the handler script |
1746 | + <option>local-io-error</option>.</para> |
1747 | + <para><option>detach</option>: The node drops its low level device, and continues in diskless mode.</para> |
1748 | + </listitem> |
1749 | + </varlistentry> |
1750 | + <varlistentry> |
1751 | + <term> |
1752 | + <option>fencing <replaceable>fencing_policy</replaceable></option> |
1753 | + </term> |
1754 | + <listitem> |
1755 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>fencing</secondary></indexterm> |
1756 | + By <option>fencing</option> we understand preventive |
1757 | + measures to avoid situations where both nodes are primary |
1758 | + and disconnected (AKA split brain). |
1759 | + </para> |
1760 | + <para>Valid fencing policies are:</para> |
1761 | + <variablelist> |
1762 | + <varlistentry> |
1763 | + <term> |
1764 | + <option>dont-care</option> |
1765 | + </term> |
1766 | + <listitem> |
1767 | + <para> This is the default policy. No fencing actions are taken. |
1768 | + </para> |
1769 | + </listitem> |
1770 | + </varlistentry> |
1771 | + <varlistentry> |
1772 | + <term> |
1773 | + <option>resource-only</option> |
1774 | + </term> |
1775 | + <listitem> |
1776 | + <para> If a node becomes a disconnected primary, it tries to fence |
1777 | + the peer's disk. This is done by calling the <option>fence-peer</option> |
1778 | + handler. The handler is supposed to reach the other node over |
1779 | + alternative communication paths and call '<option>drbdadm outdate |
1780 | + res</option>' there. |
1781 | + </para> |
1782 | + </listitem> |
1783 | + </varlistentry> |
1784 | + <varlistentry> |
1785 | + <term> |
1786 | + <option>resource-and-stonith</option> |
1787 | + </term> |
1788 | + <listitem> |
1789 | + <para> If a node becomes a disconnected primary, it freezes all |
1790 | + its IO operations and calls its fence-peer handler. The |
1791 | + fence-peer handler is supposed to reach the peer over |
1792 | + alternative communication paths and call 'drbdadm outdate |
1793 | + res' there. In case it cannot reach the peer it should |
1794 | + stonith the peer. IO is resumed as soon as the situation |
1795 | + is resolved. In case your handler fails, you can resume |
1796 | + IO with the <option>resume-io</option> command. |
1797 | + </para> |
1798 | + </listitem> |
1799 | + </varlistentry> |
1800 | + </variablelist> |
1801 | + </listitem> |
1802 | + </varlistentry> |
1803 | + <varlistentry> |
1804 | + <term> |
1805 | + <option>use-bmbv</option> |
1806 | + </term> |
1807 | + <listitem> |
1808 | + <indexterm significance="normal"> |
1809 | + <primary>drbd.conf</primary> |
1810 | + <secondary>use-bmbv</secondary> |
1811 | + </indexterm> |
1812 | + <para> In case the backing storage's driver has a merge_bvec_fn() function, |
1813 | + DRBD has to pretend that it can only process IO requests in |
1814 | + units not larger than 4KiB. (At the time of writing the only known drivers which have such a function |
1815 | + are: md (software raid driver), dm (device mapper - LVM) and DRBD |
1816 | + itself).</para> |
1817 | + <para> To get the best performance out of DRBD on top of software RAID (or any |
1818 | + other driver with a merge_bvec_fn() function) you might enable this |
1819 | + function, if you know for sure that the merge_bvec_fn() function will |
1820 | + deliver the same results on all nodes of your cluster. I.e. the |
1821 | + physical disks of the software RAID are of exactly the same |
1822 | + type. <emphasis>Use this option only if you know what you are |
1823 | + doing.</emphasis> |
1824 | + </para> |
1825 | + </listitem> |
1826 | + </varlistentry> |
1827 | + <varlistentry> |
1828 | + <term> |
1829 | + <option>no-disk-barrier</option> |
1830 | + </term> |
1831 | + <term> |
1832 | + <option>no-disk-flushes</option> |
1833 | + </term> |
1834 | + <term> |
1835 | + <option>no-disk-drain</option> |
1836 | + </term> |
1837 | + <listitem> |
1838 | + <indexterm significance="normal"> |
1839 | + <primary>drbd.conf</primary> |
1840 | + <secondary>no-disk-barrier</secondary> |
1841 | + </indexterm> |
1842 | + <indexterm significance="normal"> |
1843 | + <primary>drbd.conf</primary> |
1844 | + <secondary>no-disk-flushes</secondary> |
1845 | + </indexterm> |
1846 | + <indexterm significance="normal"> |
1847 | + <primary>drbd.conf</primary> |
1848 | + <secondary>no-disk-drain</secondary> |
1849 | + </indexterm> |
1850 | + <para> DRBD has four implementations to express write-after-write dependencies to |
1851 | + its backing storage device. DRBD will use the first method that is |
1852 | + supported by the backing storage device and that is not disabled by the user. |
1853 | + </para> |
1854 | + <para> When selecting the method you should not only base your decision on the |
1855 | + measurable performance. In case your backing storage device has a volatile |
1856 | + write cache (plain disks, RAID of plain disks) you should use one |
1857 | + of the first two. In case your backing storage device has battery-backed |
1858 | + write cache you may go with option 3. |
1859 | + Option 4 (disable everything, use "none") <emphasis>is dangerous</emphasis> |
1860 | + on most IO stacks, may result in write-reordering, and if so, |
1861 | + can theoretically be the reason for data corruption, or disturb |
1862 | + the DRBD protocol, causing spurious disconnect/reconnect cycles. |
1863 | + <emphasis>Do not use</emphasis> <option>no-disk-drain</option>. |
1864 | + </para> |
1865 | + <para> Unfortunately device mapper (LVM) might not support barriers. |
1866 | + </para> |
1867 | + <para> The letter after "wo:" in /proc/drbd indicates with method is currently in |
1868 | + use for a device: <option>b</option>, <option>f</option>, <option>d</option>, <option>n</option>. The implementations are: |
1869 | + </para> |
1870 | + <variablelist> |
1871 | + <varlistentry> |
1872 | + <term>barrier</term> |
1873 | + <listitem> |
1874 | + <para> The first requires that the driver of the |
1875 | + backing storage device support barriers (called 'tagged command queuing' in |
1876 | + SCSI and 'native command queuing' in SATA speak). The use of this |
1877 | + method can be disabled by the <option>no-disk-barrier</option> option. |
1878 | + Note: Since Linux-2.6.36 (or RHEL's 2.6.32) this method is disabled. |
1879 | + </para> |
1880 | + </listitem> |
1881 | + </varlistentry> |
1882 | + <varlistentry> |
1883 | + <term>flush</term> |
1884 | + <listitem> |
1885 | + <para> The second requires that the backing device support disk flushes (called |
1886 | + 'force unit access' in the drive vendors speak). The use of this method |
1887 | + can be disabled using the <option>no-disk-flushes</option> option. |
1888 | + </para> |
1889 | + </listitem> |
1890 | + </varlistentry> |
1891 | + <varlistentry> |
1892 | + <term>drain</term> |
1893 | + <listitem> |
1894 | + <para> The third method is simply to let write requests drain before |
1895 | + write requests of a new reordering domain are issued. This was the |
1896 | + only implementation before 8.0.9. |
1897 | + </para> |
1898 | + </listitem> |
1899 | + </varlistentry> |
1900 | + <varlistentry> |
1901 | + <term>none</term> |
1902 | + <listitem> |
1903 | + <para> The fourth method is to not express write-after-write dependencies to |
1904 | + the backing store at all, by also specifying <option>no-disk-drain</option>. |
1905 | + This <emphasis>is dangerous</emphasis> |
1906 | + on most IO stacks, may result in write-reordering, and if so, |
1907 | + can theoretically be the reason for data corruption, or disturb |
1908 | + the DRBD protocol, causing spurious disconnect/reconnect cycles. |
1909 | + <emphasis>Do not use</emphasis> <option>no-disk-drain</option>. |
1910 | + </para> |
1911 | + </listitem> |
1912 | + </varlistentry> |
1913 | + </variablelist> |
1914 | + </listitem> |
1915 | + </varlistentry> |
1916 | + <varlistentry> |
1917 | + <term> |
1918 | + <option>no-md-flushes</option> |
1919 | + </term> |
1920 | + <listitem> |
1921 | + <indexterm significance="normal"> |
1922 | + <primary>drbd.conf</primary> |
1923 | + <secondary>no-md-flushes</secondary> |
1924 | + </indexterm> |
1925 | + <para> Disables the use of disk flushes and barrier BIOs when accessing |
1926 | + the meta data device. See the notes on <option>no-disk-flushes</option>. |
1927 | + </para> |
1928 | + </listitem> |
1929 | + </varlistentry> |
1930 | + <varlistentry> |
1931 | + <term> |
1932 | + <option>max-bio-bvecs</option> |
1933 | + </term> |
1934 | + <listitem> |
1935 | + <indexterm significance="normal"> |
1936 | + <primary>drbd.conf</primary> |
1937 | + <secondary>max-bio-bvecs</secondary> |
1938 | + </indexterm> |
1939 | + <para> In some special circumstances the device mapper stack manages to |
1940 | + pass BIOs to DRBD that violate the constraints that are set forth |
1941 | + by DRBD's merge_bvec() function and which have more than one bvec. |
1942 | + A known example is: |
1943 | + phys-disk -> DRBD -> LVM -> Xen -> misaligned partition (63) -> DomU FS. |
1944 | + Then you might see "bio would need to, but cannot, be split:" in |
1945 | + the Dom0's kernel log. </para> |
1946 | + <para> The best workaround is to proper align the partition within |
1947 | + the VM (E.g. start it at sector 1024). This costs 480 KiB of storage. |
1948 | + Unfortunately the default of most Linux partitioning tools is |
1949 | + to start the first partition at an odd number (63). Therefore |
1950 | + most distribution's install helpers for virtual linux machines will |
1951 | + end up with misaligned partitions. |
1952 | + The second best workaround is to limit DRBD's max bvecs per BIO |
1953 | + (= <option>max-bio-bvecs</option>) to 1, but that might cost performance.</para> |
1954 | + <para> The default value of <option>max-bio-bvecs</option> is 0, which means that |
1955 | + there is no user imposed limitation. |
1956 | + </para> |
1957 | + </listitem> |
1958 | + </varlistentry> |
1959 | + |
1960 | + <varlistentry> |
1961 | + <term> |
1962 | + <option>disk-timeout</option> |
1963 | + </term> |
1964 | + <listitem> |
1965 | + <indexterm significance="normal"> |
1966 | + <primary>drbd.conf</primary> |
1967 | + <secondary>disk-timeout</secondary> |
1968 | + </indexterm> |
1969 | + <para> |
1970 | + If the driver of the <replaceable>lower_device</replaceable> |
1971 | + does not finish an IO request within <replaceable>disk_timeout</replaceable>, |
1972 | + DRBD considers the disk as failed. If DRBD is connected to a remote host, |
1973 | + it will reissue local pending IO requests to the peer, and ship all new |
1974 | + IO requests to the peer only. The disk state advances to diskless, as soon |
1975 | + as the backing block device has finished all IO requests.</para> |
1976 | + <para> The default value of is 0, which means that no timeout is enforced. |
1977 | + The default unit is 100ms. This option is available since 8.3.12. |
1978 | + </para> |
1979 | + </listitem> |
1980 | + </varlistentry> |
1981 | + |
1982 | + |
1983 | + <varlistentry> |
1984 | + <term> |
1985 | + <option>sndbuf-size <replaceable>size</replaceable></option> |
1986 | + </term> |
1987 | + <listitem> |
1988 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>sndbuf-size </secondary></indexterm><replaceable>size</replaceable> is the size of the TCP socket send buffer. |
1989 | + The default value is 0, i.e. autotune. You can specify smaller or larger values. Larger values |
1990 | + are appropriate for reasonable write throughput with protocol A over high |
1991 | + latency networks. Values |
1992 | + below 32K do not make sense. Since 8.0.13 resp. 8.2.7, setting the <replaceable>size</replaceable> |
1993 | + value to 0 means that the kernel should autotune this. |
1994 | + </para> |
1995 | + </listitem> |
1996 | + </varlistentry> |
1997 | + <varlistentry> |
1998 | + <term> |
1999 | + <option>rcvbuf-size <replaceable>size</replaceable></option> |
2000 | + </term> |
2001 | + <listitem> |
2002 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>rcvbuf-size </secondary></indexterm><replaceable>size</replaceable> is the size of the TCP socket receive buffer. |
2003 | + The default value is 0, i.e. autotune. You can specify smaller or larger values. |
2004 | + Usually this should be left at its default. Setting the <replaceable>size</replaceable> |
2005 | + value to 0 means that the kernel should autotune this. |
2006 | + </para> |
2007 | + </listitem> |
2008 | + </varlistentry> |
2009 | + <varlistentry> |
2010 | + <term> |
2011 | + <option>timeout <replaceable>time</replaceable></option> |
2012 | + </term> |
2013 | + <listitem> |
2014 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>timeout</secondary></indexterm> |
2015 | +If the partner node fails to send an expected response packet within |
2016 | +<replaceable>time</replaceable> tenths |
2017 | +of a second, the partner node |
2018 | +is considered dead and therefore the TCP/IP connection is abandoned. This must be lower than <replaceable>connect-int</replaceable> and <replaceable>ping-int</replaceable>. |
2019 | +The default value is 60 = 6 seconds, the unit 0.1 seconds. |
2020 | + </para> |
2021 | + </listitem> |
2022 | + </varlistentry> |
2023 | + <varlistentry> |
2024 | + <term> |
2025 | + <option>connect-int <replaceable>time</replaceable></option> |
2026 | + </term> |
2027 | + <listitem> |
2028 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>connect-int</secondary></indexterm> |
2029 | +In case it is not possible to connect to the remote DRBD device immediately, |
2030 | +DRBD keeps on trying to connect. With this option you can set the time |
2031 | +between two retries. The default value is 10 seconds, the unit is 1 second. |
2032 | + </para> |
2033 | + </listitem> |
2034 | + </varlistentry> |
2035 | + <varlistentry> |
2036 | + <term> |
2037 | + <option>ping-int <replaceable>time</replaceable></option> |
2038 | + </term> |
2039 | + <listitem> |
2040 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>ping-int</secondary></indexterm> |
2041 | +If the TCP/IP connection linking a DRBD device pair is idle for more than |
2042 | +<replaceable>time</replaceable> seconds, DRBD will generate a keep-alive |
2043 | +packet to check if its partner is still alive. The default is 10 seconds, |
2044 | +the unit is 1 second. |
2045 | + </para> |
2046 | + </listitem> |
2047 | + </varlistentry> |
2048 | + <varlistentry> |
2049 | + <term> |
2050 | + <option>ping-timeout <replaceable>time</replaceable></option> |
2051 | + </term> |
2052 | + <listitem> |
2053 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>ping-timeout</secondary></indexterm> |
2054 | + The time the peer has time to answer to a keep-alive packet. In case |
2055 | + the peer's reply is not received within this time period, it is |
2056 | + considered as dead. The default value is 500ms, the default unit are tenths of a second. |
2057 | + </para> |
2058 | + </listitem> |
2059 | + </varlistentry> |
2060 | + <varlistentry> |
2061 | + <term> |
2062 | + <option>max-buffers <replaceable>number</replaceable></option> |
2063 | + </term> |
2064 | + <listitem> |
2065 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>max-buffers </secondary></indexterm> |
2066 | + Maximum number of requests to be allocated by DRBD. Unit is PAGE_SIZE, |
2067 | + which is 4 KiB on most systems. |
2068 | + The minimum is hard coded to 32 (=128 KiB). |
2069 | + For high-performance installations it might help if you |
2070 | + increase that number. These buffers are used to hold |
2071 | + data blocks while they are written to disk. |
2072 | + </para> |
2073 | + </listitem> |
2074 | + </varlistentry> |
2075 | + <varlistentry> |
2076 | + <term> |
2077 | + <option>ko-count <replaceable>number</replaceable></option> |
2078 | + </term> |
2079 | + <listitem> |
2080 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>ko-count </secondary></indexterm> |
2081 | + In case the secondary node fails to complete a single write |
2082 | + request for <replaceable>count</replaceable> times the |
2083 | + <replaceable>timeout</replaceable>, it is expelled from the |
2084 | + cluster. (I.e. the primary node goes into <option>StandAlone</option> mode.) |
2085 | + The default value is 0, which disables this feature. |
2086 | + </para> |
2087 | + </listitem> |
2088 | + </varlistentry> |
2089 | + <varlistentry> |
2090 | + <term> |
2091 | + <option>max-epoch-size <replaceable>number</replaceable></option> |
2092 | + </term> |
2093 | + <listitem> |
2094 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>max-epoch-size </secondary></indexterm> |
2095 | + The highest number of data blocks between two write barriers. |
2096 | + If you set this smaller than 10, you might decrease your performance. |
2097 | + </para> |
2098 | + </listitem> |
2099 | + </varlistentry> |
2100 | + <varlistentry> |
2101 | + <term> |
2102 | + <option>allow-two-primaries</option> |
2103 | + </term> |
2104 | + <listitem> |
2105 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>allow-two-primaries</secondary></indexterm> |
2106 | + With this option set you may assign the primary role to both nodes. You only should |
2107 | + use this option if you use a shared storage file system on top of |
2108 | + DRBD. At the time of writing the only ones are: OCFS2 and GFS. If you |
2109 | + use this option with any other file system, you are going to crash your |
2110 | + nodes and to corrupt your data! |
2111 | + </para> |
2112 | + </listitem> |
2113 | + </varlistentry> |
2114 | + <varlistentry> |
2115 | + <term> |
2116 | + <option>unplug-watermark <replaceable>number</replaceable></option> |
2117 | + </term> |
2118 | + <listitem> |
2119 | + <indexterm significance="normal"> |
2120 | + <primary>drbd.conf</primary> |
2121 | + <secondary>unplug-watermark </secondary> |
2122 | + </indexterm> |
2123 | + <para> When the number of pending write requests on the standby |
2124 | + (secondary) node exceeds the <option>unplug-watermark</option>, we trigger |
2125 | + the request processing of our backing storage device. |
2126 | + Some storage controllers deliver better performance with small |
2127 | + values, others deliver best performance when the value is set to |
2128 | + the same value as max-buffers. Minimum 16, default 128, maximum |
2129 | + 131072. |
2130 | + </para> |
2131 | + </listitem> |
2132 | + </varlistentry> |
2133 | + <varlistentry> |
2134 | + <term> |
2135 | + <option>cram-hmac-alg</option> |
2136 | + </term> |
2137 | + <listitem> |
2138 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>cram-hmac-alg</secondary></indexterm> |
2139 | + You need to specify the HMAC algorithm to enable peer authentication |
2140 | + at all. You are strongly encouraged to use peer authentication. The HMAC |
2141 | + algorithm will be used for the challenge response authentication |
2142 | + of the peer. You may specify any digest algorithm that is named in |
2143 | + <option>/proc/crypto</option>. |
2144 | + </para> |
2145 | + </listitem> |
2146 | + </varlistentry> |
2147 | + <varlistentry> |
2148 | + <term> |
2149 | + <option>shared-secret</option> |
2150 | + </term> |
2151 | + <listitem> |
2152 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>shared-secret</secondary></indexterm> |
2153 | + The shared secret used in peer authentication. May be up to 64 characters. |
2154 | + Note that peer authentication is disabled as long as no <option>cram-hmac-alg</option> |
2155 | + (see above) is specified. |
2156 | + </para> |
2157 | + </listitem> |
2158 | + </varlistentry> |
2159 | + <varlistentry> |
2160 | + <term> |
2161 | + <option>after-sb-0pri </option> |
2162 | + <replaceable>policy</replaceable> |
2163 | + </term> |
2164 | + <listitem> |
2165 | + <indexterm significance="normal"> |
2166 | + <primary>drbd.conf</primary> |
2167 | + <secondary>after-sb-0pri </secondary> |
2168 | + </indexterm> |
2169 | + <para> possible policies are: |
2170 | + </para> |
2171 | + <variablelist> |
2172 | + <varlistentry> |
2173 | + <term> |
2174 | + <option>disconnect</option> |
2175 | + </term> |
2176 | + <listitem> |
2177 | + <para> No automatic resynchronization, simply disconnect. |
2178 | + </para> |
2179 | + </listitem> |
2180 | + </varlistentry> |
2181 | + <varlistentry> |
2182 | + <term> |
2183 | + <option>discard-younger-primary</option> |
2184 | + </term> |
2185 | + <listitem> |
2186 | + <para> Auto sync from the node that was primary before the split-brain situation happened. |
2187 | + </para> |
2188 | + </listitem> |
2189 | + </varlistentry> |
2190 | + <varlistentry> |
2191 | + <term> |
2192 | + <option>discard-older-primary</option> |
2193 | + </term> |
2194 | + <listitem> |
2195 | + <para> Auto sync from the node that became primary as second during |
2196 | + the split-brain situation. |
2197 | + </para> |
2198 | + </listitem> |
2199 | + </varlistentry> |
2200 | + <varlistentry> |
2201 | + <term> |
2202 | + <option>discard-zero-changes</option> |
2203 | + </term> |
2204 | + <listitem> |
2205 | + <para> In case one node did not write anything since the split |
2206 | + brain became evident, sync from the node that wrote something |
2207 | + to the node that did not write anything. In case none wrote |
2208 | + anything this policy uses a random decision to perform |
2209 | + a "resync" of 0 blocks. In case both have written something |
2210 | + this policy disconnects the nodes. |
2211 | + </para> |
2212 | + </listitem> |
2213 | + </varlistentry> |
2214 | + <varlistentry> |
2215 | + <term> |
2216 | + <option>discard-least-changes</option> |
2217 | + </term> |
2218 | + <listitem> |
2219 | + <para> Auto sync from the node that touched more blocks during the |
2220 | + split brain situation. |
2221 | + </para> |
2222 | + </listitem> |
2223 | + </varlistentry> |
2224 | + <varlistentry> |
2225 | + <term> |
2226 | + <option>discard-node-NODENAME</option> |
2227 | + </term> |
2228 | + <listitem> |
2229 | + <para> Auto sync to the named node. |
2230 | + </para> |
2231 | + </listitem> |
2232 | + </varlistentry> |
2233 | + </variablelist> |
2234 | + </listitem> |
2235 | + </varlistentry> |
2236 | + <varlistentry> |
2237 | + <term> |
2238 | + <option>after-sb-1pri </option> |
2239 | + <replaceable>policy</replaceable> |
2240 | + </term> |
2241 | + <listitem> |
2242 | + <indexterm significance="normal"> |
2243 | + <primary>drbd.conf</primary> |
2244 | + <secondary>after-sb-1pri </secondary> |
2245 | + </indexterm> |
2246 | + <para> possible policies are: |
2247 | + </para> |
2248 | + <variablelist> |
2249 | + <varlistentry> |
2250 | + <term> |
2251 | + <option>disconnect</option> |
2252 | + </term> |
2253 | + <listitem> |
2254 | + <para> No automatic resynchronization, simply disconnect. |
2255 | + </para> |
2256 | + </listitem> |
2257 | + </varlistentry> |
2258 | + <varlistentry> |
2259 | + <term> |
2260 | + <option>consensus</option> |
2261 | + </term> |
2262 | + <listitem> |
2263 | + <para> Discard the version of the secondary if the outcome |
2264 | + of the <option>after-sb-0pri</option> algorithm would also |
2265 | + destroy the current secondary's data. Otherwise disconnect. |
2266 | + </para> |
2267 | + </listitem> |
2268 | + </varlistentry> |
2269 | + <varlistentry> |
2270 | + <term> |
2271 | + <option>violently-as0p</option> |
2272 | + </term> |
2273 | + <listitem> |
2274 | + <para> Always take the decision of the <option>after-sb-0pri</option> |
2275 | + algorithm, even if that causes an erratic change of |
2276 | + the primary's view of the data. This is only useful if |
2277 | + you use a one-node FS (i.e. not OCFS2 or GFS) with the |
2278 | + <option>allow-two-primaries</option> flag, <emphasis>AND</emphasis> if you really know what you |
2279 | + are doing. This is <emphasis>DANGEROUS and MAY CRASH YOUR MACHINE</emphasis> |
2280 | + if you have an FS mounted on the primary node. |
2281 | + </para> |
2282 | + </listitem> |
2283 | + </varlistentry> |
2284 | + <varlistentry> |
2285 | + <term> |
2286 | + <option>discard-secondary</option> |
2287 | + </term> |
2288 | + <listitem> |
2289 | + <para> Discard the secondary's version. |
2290 | + </para> |
2291 | + </listitem> |
2292 | + </varlistentry> |
2293 | + <varlistentry> |
2294 | + <term> |
2295 | + <option>call-pri-lost-after-sb</option> |
2296 | + </term> |
2297 | + <listitem> |
2298 | + <para> Always honor the outcome of the <option>after-sb-0pri |
2299 | + </option> algorithm. In case it decides the current |
2300 | + secondary has the right data, it calls the "pri-lost-after-sb" |
2301 | + handler on the current primary. |
2302 | + </para> |
2303 | + </listitem> |
2304 | + </varlistentry> |
2305 | + </variablelist> |
2306 | + </listitem> |
2307 | + </varlistentry> |
2308 | + <varlistentry> |
2309 | + <term> |
2310 | + <option>after-sb-2pri </option> |
2311 | + <replaceable>policy</replaceable> |
2312 | + </term> |
2313 | + <listitem> |
2314 | + <indexterm significance="normal"> |
2315 | + <primary>drbd.conf</primary> |
2316 | + <secondary>after-sb-2pri </secondary> |
2317 | + </indexterm> |
2318 | + <para> possible policies are: |
2319 | + </para> |
2320 | + <variablelist> |
2321 | + <varlistentry> |
2322 | + <term> |
2323 | + <option>disconnect</option> |
2324 | + </term> |
2325 | + <listitem> |
2326 | + <para> No automatic resynchronization, simply disconnect. |
2327 | + </para> |
2328 | + </listitem> |
2329 | + </varlistentry> |
2330 | + <varlistentry> |
2331 | + <term> |
2332 | + <option>violently-as0p</option> |
2333 | + </term> |
2334 | + <listitem> |
2335 | + <para> Always take the decision of the <option>after-sb-0pri</option> |
2336 | + algorithm, even if that causes an erratic change of |
2337 | + the primary's view of the data. This is only useful if |
2338 | + you use a one-node FS (i.e. not OCFS2 or GFS) with the |
2339 | + <option>allow-two-primaries</option> flag, <emphasis>AND</emphasis> if you really know what you |
2340 | + are doing. This is <emphasis>DANGEROUS and MAY CRASH YOUR MACHINE</emphasis> |
2341 | + if you have an FS mounted on the primary node. |
2342 | + </para> |
2343 | + </listitem> |
2344 | + </varlistentry> |
2345 | + <varlistentry> |
2346 | + <term> |
2347 | + <option>call-pri-lost-after-sb</option> |
2348 | + </term> |
2349 | + <listitem> |
2350 | + <para> Call the "pri-lost-after-sb" helper program on one of the |
2351 | + machines. This program is expected to reboot the |
2352 | + machine, i.e. make it secondary. |
2353 | + </para> |
2354 | + </listitem> |
2355 | + </varlistentry> |
2356 | + </variablelist> |
2357 | + </listitem> |
2358 | + </varlistentry> |
2359 | + <varlistentry> |
2360 | + <term> |
2361 | + <option>always-asbp</option> |
2362 | + </term> |
2363 | + <listitem> |
2364 | + <para> Normally the automatic after-split-brain policies are only |
2365 | + used if current states of the UUIDs do not indicate the |
2366 | + presence of a third node. |
2367 | + </para> |
2368 | + <para> With this option you request that the automatic |
2369 | + after-split-brain policies are used as long as the data |
2370 | + sets of the nodes are somehow related. This might cause |
2371 | + a full sync, if the UUIDs indicate the presence of a third |
2372 | + node. (Or double faults led to strange UUID sets.) |
2373 | + </para> |
2374 | + </listitem> |
2375 | + </varlistentry> |
2376 | + <varlistentry> |
2377 | + <term> |
2378 | + <option>rr-conflict </option> |
2379 | + <replaceable>policy</replaceable> |
2380 | + </term> |
2381 | + <listitem> |
2382 | + <indexterm significance="normal"> |
2383 | + <primary>drbd.conf</primary> |
2384 | + <secondary>rr-conflict </secondary> |
2385 | + </indexterm> |
2386 | + <para> This option helps to solve the cases when the outcome of the resync decision is |
2387 | + incompatible with the current role assignment in the cluster. |
2388 | + </para> |
2389 | + <variablelist> |
2390 | + <varlistentry> |
2391 | + <term> |
2392 | + <option>disconnect</option> |
2393 | + </term> |
2394 | + <listitem> |
2395 | + <para> No automatic resynchronization, simply disconnect. |
2396 | + </para> |
2397 | + </listitem> |
2398 | + </varlistentry> |
2399 | + <varlistentry> |
2400 | + <term> |
2401 | + <option>violently</option> |
2402 | + </term> |
2403 | + <listitem> |
2404 | + <para> Sync to the primary node is allowed, violating the |
2405 | + assumption that data on a block device are stable for one |
2406 | + of the nodes. <emphasis>Dangerous, do not use.</emphasis> |
2407 | + </para> |
2408 | + </listitem> |
2409 | + </varlistentry> |
2410 | + <varlistentry> |
2411 | + <term> |
2412 | + <option>call-pri-lost</option> |
2413 | + </term> |
2414 | + <listitem> |
2415 | + <para> Call the "pri-lost" helper program on one of the |
2416 | + machines. This program is expected to reboot the |
2417 | + machine, i.e. make it secondary. |
2418 | + </para> |
2419 | + </listitem> |
2420 | + </varlistentry> |
2421 | + </variablelist> |
2422 | + </listitem> |
2423 | + </varlistentry> |
2424 | + <varlistentry> |
2425 | + <term> |
2426 | + <option>data-integrity-alg </option> |
2427 | + <replaceable>alg</replaceable> |
2428 | + </term> |
2429 | + <listitem> |
2430 | + <indexterm significance="normal"> |
2431 | + <primary>drbd.conf</primary> |
2432 | + <secondary>data-integrity-alg</secondary> |
2433 | + </indexterm> |
2434 | + <para> DRBD can ensure the data integrity of the user's data on the network |
2435 | + by comparing hash values. Normally this is ensured by the 16 bit checksums |
2436 | + in the headers of TCP/IP packets.</para> |
2437 | + <para>This option can be set to any of the kernel's data digest algorithms. |
2438 | + In a typical kernel configuration you should have |
2439 | + at least one of <option>md5</option>, <option>sha1</option>, and <option>crc32c</option> |
2440 | + available. By default this is not enabled.</para> |
2441 | + <para>See also the notes on data integrity.</para> |
2442 | + </listitem> |
2443 | + </varlistentry> |
2444 | + <varlistentry> |
2445 | + <term> |
2446 | + <option>no-tcp-cork</option> |
2447 | + </term> |
2448 | + <listitem> |
2449 | + <indexterm significance="normal"> |
2450 | + <primary>drbd.conf</primary> |
2451 | + <secondary>no-tcp-cork</secondary> |
2452 | + </indexterm> |
2453 | + <para> DRBD usually uses the TCP socket option TCP_CORK to hint to the network |
2454 | + stack when it can expect more data, and when it should flush out what it |
2455 | + has in its send queue. It turned out that there is at least one network |
2456 | + stack that performs worse when one uses this hinting method. Therefore |
2457 | + we introducted this option, which disables the setting and clearing of |
2458 | + the TCP_CORK socket option by DRBD.</para> |
2459 | + </listitem> |
2460 | + </varlistentry> |
2461 | + <varlistentry> |
2462 | + <term> |
2463 | + <option>on-congestion <replaceable>congestion_policy</replaceable></option> |
2464 | + </term> |
2465 | + <term> |
2466 | + <option>congestion-fill <replaceable>fill_threshold</replaceable></option> |
2467 | + </term> |
2468 | + <term> |
2469 | + <option>congestion-extents <replaceable>active_extents_threshold</replaceable></option> |
2470 | + </term> |
2471 | + <listitem> |
2472 | + <para>By default DRBD blocks when the available TCP send queue becomes full. |
2473 | + That means it will slow down the application that generates the write |
2474 | + requests that cause DRBD to send more data down that TCP connection. |
2475 | + </para> |
2476 | + <para>When DRBD is deployed with DRBD-proxy it might be more desirable that |
2477 | + DRBD goes into AHEAD/BEHIND mode shortly before the send queue becomes full. |
2478 | + In AHEAD/BEHIND mode DRBD does no longer replicate data, but still keeps |
2479 | + the connection open.</para> |
2480 | + <para>The advantage of the AHEAD/BEHIND mode is that the |
2481 | + application is not slowed down, even if DRBD-proxy's buffer is |
2482 | + not sufficient to buffer all write requests. The downside is that |
2483 | + the peer node falls behind, and that a resync will be necessary to |
2484 | + bring it back into sync. During that resync the peer node will have |
2485 | + an inconsistent disk. </para> |
2486 | + <para>Available <replaceable>congestion_policy</replaceable>s are <option>block</option> |
2487 | + and <option>pull-ahead</option>. The default is <option>block</option>. |
2488 | + <replaceable>Fill_threshold</replaceable> might be in the range of 0 to 10GiBytes. The |
2489 | + default is 0 which disables the check. <replaceable>Active_extents_threshold</replaceable> |
2490 | + has the same limits as <option>al-extents</option>.</para> |
2491 | + <para>The AHEAD/BEHIND mode and its settings are available since DRBD 8.3.10.</para> |
2492 | + </listitem> |
2493 | + </varlistentry> |
2494 | + <varlistentry> |
2495 | + <term> |
2496 | + <option>wfc-timeout <replaceable>time</replaceable></option> |
2497 | + </term> |
2498 | + <listitem> |
2499 | + <para>Wait for connection timeout. |
2500 | + <indexterm significance="normal"><primary>drbd.conf</primary><secondary>wfc-timeout </secondary></indexterm> |
2501 | + The init script <citerefentry><refentrytitle>drbd</refentrytitle><manvolnum>8</manvolnum></citerefentry> blocks the boot process |
2502 | + until the DRBD resources are connected. |
2503 | + When the cluster manager starts later, |
2504 | + it does not see a resource with internal split-brain. |
2505 | + In case you want to limit the wait time, do it here. |
2506 | + Default is 0, which means unlimited. The unit is seconds. |
2507 | + </para> |
2508 | + </listitem> |
2509 | + </varlistentry> |
2510 | + <varlistentry> |
2511 | + <term> |
2512 | + <option>degr-wfc-timeout <replaceable>time</replaceable></option> |
2513 | + </term> |
2514 | + <listitem> |
2515 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>degr-wfc-timeout </secondary></indexterm> |
2516 | + Wait for connection timeout, if this node was a degraded cluster. |
2517 | + In case a degraded cluster (= cluster with only one node left) |
2518 | + is rebooted, this timeout value is used instead of wfc-timeout, |
2519 | + because the peer is less likely to show up in time, |
2520 | + if it had been dead before. Value 0 means unlimited. |
2521 | + </para> |
2522 | + </listitem> |
2523 | + </varlistentry> |
2524 | + <varlistentry> |
2525 | + <term> |
2526 | + <option>outdated-wfc-timeout <replaceable>time</replaceable></option> |
2527 | + </term> |
2528 | + <listitem> |
2529 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>outdated-wfc-timeout </secondary></indexterm> |
2530 | + Wait for connection timeout, if the peer was outdated. |
2531 | + In case a degraded cluster (= cluster with only one node left) |
2532 | + with an outdated peer disk is rebooted, this timeout value is used instead of wfc-timeout, |
2533 | + because the peer is not allowed to become primary in the meantime. |
2534 | + Value 0 means unlimited. |
2535 | + </para> |
2536 | + </listitem> |
2537 | + </varlistentry> |
2538 | + <varlistentry> |
2539 | + <term> |
2540 | + <option>wait-after-sb</option> |
2541 | + </term> |
2542 | + <listitem> |
2543 | + <para> By setting this option you can make the init script to continue |
2544 | + to wait even if the device pair had a split brain situation |
2545 | + and therefore refuses to connect. |
2546 | + </para> |
2547 | + </listitem> |
2548 | + </varlistentry> |
2549 | + <varlistentry> |
2550 | + <term> |
2551 | + <option>become-primary-on <replaceable>node-name</replaceable></option> |
2552 | + </term> |
2553 | + <listitem> |
2554 | + <para> Sets on which node the device should be promoted to primary role by |
2555 | + the init script. The <replaceable>node-name</replaceable> might either |
2556 | + be a host name or the keyword <option>both</option>. When this option is |
2557 | + not set the devices stay in secondary role on both nodes. Usually |
2558 | + one delegates the role assignment to a cluster manager (e.g. heartbeat). |
2559 | + </para> |
2560 | + </listitem> |
2561 | + </varlistentry> |
2562 | + <varlistentry> |
2563 | + <term> |
2564 | + <option>stacked-timeouts</option> |
2565 | + </term> |
2566 | + <listitem> |
2567 | + <para> Usually <option>wfc-timeout</option> and <option>degr-wfc-timeout</option> are |
2568 | + ignored for stacked devices, instead twice the amount of <option>connect-int</option> |
2569 | + is used for the connection timeouts. |
2570 | + With the <option>stacked-timeouts</option> keyword you disable this, and force |
2571 | + DRBD to mind the <option>wfc-timeout</option> and <option>degr-wfc-timeout</option> |
2572 | + statements. Only do that if the peer of the stacked resource is usually not |
2573 | + available or will usually not become primary. |
2574 | + By using this option incorrectly, you run the risk of causing unexpected split brain. |
2575 | + </para> |
2576 | + </listitem> |
2577 | + </varlistentry> |
2578 | + <varlistentry> |
2579 | + <term> |
2580 | + <option>rate <replaceable>rate</replaceable></option> |
2581 | + </term> |
2582 | + <listitem> |
2583 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>rate </secondary></indexterm> |
2584 | + To ensure a smooth operation of the application on top of DRBD, |
2585 | + it is possible to limit the bandwidth which may be used by |
2586 | + background synchronizations. The default is 250 KB/sec, the |
2587 | + default unit is KB/sec. Optional suffixes K, M, G are allowed. |
2588 | + </para> |
2589 | + </listitem> |
2590 | + </varlistentry> |
2591 | + <varlistentry> |
2592 | + <term> |
2593 | + <option>use-rle</option> |
2594 | + </term> |
2595 | + <listitem> |
2596 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>use-rle </secondary></indexterm> |
2597 | + During resync-handshake, the dirty-bitmaps of the nodes are exchanged and |
2598 | + merged (using bit-or), so the nodes will have the same understanding of |
2599 | + which blocks are dirty. On large devices, the fine grained dirty-bitmap can |
2600 | + become large as well, and the bitmap exchange can take quite some time on |
2601 | + low-bandwidth links. |
2602 | + </para> |
2603 | + <para> Because the bitmap typically contains compact areas where |
2604 | + all bits are unset (clean) or set (dirty), a simple run-length |
2605 | + encoding scheme can considerably reduce the network traffic |
2606 | + necessary for the bitmap exchange. |
2607 | + </para> |
2608 | + <para> For backward compatibilty reasons, and because on fast |
2609 | + links this possibly does not improve transfer time but |
2610 | + consumes cpu cycles, this defaults to off. |
2611 | + </para> |
2612 | + </listitem> |
2613 | + </varlistentry> |
2614 | + <varlistentry> |
2615 | + <term> |
2616 | + <option>after <replaceable>res-name</replaceable></option> |
2617 | + </term> |
2618 | + <listitem> |
2619 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>after </secondary></indexterm> |
2620 | + By default, resynchronization of all devices would run in parallel. |
2621 | + By defining a sync-after dependency, the resynchronization of this |
2622 | + resource will start only if the resource <replaceable>res-name</replaceable> |
2623 | + is already in connected state (i.e., has finished its resynchronization). |
2624 | + </para> |
2625 | + </listitem> |
2626 | + </varlistentry> |
2627 | + <varlistentry> |
2628 | + <term> |
2629 | + <option>al-extents <replaceable>extents</replaceable></option> |
2630 | + </term> |
2631 | + <listitem> |
2632 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>al-extents </secondary></indexterm> |
2633 | + DRBD automatically performs hot area detection. With this |
2634 | + parameter you control how big the hot area (= active set) can |
2635 | + get. Each extent marks 4M of the backing storage (= low-level device). |
2636 | + In case a primary node leaves the cluster unexpectedly, the areas covered |
2637 | + by the active set must be resynced upon rejoining of the failed |
2638 | + node. The data structure is stored in the meta-data area, therefore each |
2639 | + change of the active set is a write operation |
2640 | + to the meta-data device. A higher number of extents gives |
2641 | + longer resync times but less updates to the meta-data. The |
2642 | + default number of <replaceable>extents</replaceable> is |
2643 | + 127. (Minimum: 7, Maximum: 3843) |
2644 | + </para> |
2645 | + </listitem> |
2646 | + </varlistentry> |
2647 | + <varlistentry> |
2648 | + <term> |
2649 | + <option>verify-alg <replaceable>hash-alg</replaceable></option> |
2650 | + </term> |
2651 | + <listitem> |
2652 | + <para>During online verification (as initiated by the |
2653 | + <command moreinfo="none">verify</command> sub-command), |
2654 | + rather than doing a bit-wise comparison, DRBD applies a hash function |
2655 | + to the contents of every block being verified, and compares that |
2656 | + hash with the peer. This option defines the hash algorithm being |
2657 | + used for that purpose. It can be set to any of the kernel's data |
2658 | + digest algorithms. In a typical kernel configuration you should have |
2659 | + at least one of <option>md5</option>, <option>sha1</option>, and <option>crc32c</option> |
2660 | + available. By default this is not enabled; you must set this |
2661 | + option explicitly in order to be able to use on-line device verification.</para> |
2662 | + <para>See also the notes on data integrity.</para> |
2663 | + </listitem> |
2664 | + </varlistentry> |
2665 | + <varlistentry> |
2666 | + <term> |
2667 | + <option>csums-alg <replaceable>hash-alg</replaceable></option> |
2668 | + </term> |
2669 | + <listitem> |
2670 | + <para>A resync process sends all marked data blocks from the source to |
2671 | + the destination node, as long as no <option>csums-alg</option> is |
2672 | + given. When one is specified the resync process exchanges hash values of all |
2673 | + marked blocks first, and sends only those data blocks that have different |
2674 | + hash values.</para> |
2675 | + <para>This setting is useful for DRBD setups with low bandwidth links. |
2676 | + During the restart of a crashed primary node, all blocks covered by the |
2677 | + activity log are marked for resync. But a large part of those will actually |
2678 | + be still in sync, therefore using <option>csums-alg</option> will lower |
2679 | + the required bandwidth in exchange for CPU cycles.</para> |
2680 | + </listitem> |
2681 | + </varlistentry> |
2682 | + <varlistentry> |
2683 | + <term> |
2684 | + <option>c-plan-ahead <replaceable>plan_time</replaceable></option> |
2685 | + </term> |
2686 | + <term> |
2687 | + <option>c-fill-target <replaceable>fill_target</replaceable></option> |
2688 | + </term> |
2689 | + <term> |
2690 | + <option>c-delay-target <replaceable>delay_target</replaceable></option> |
2691 | + </term> |
2692 | + <term> |
2693 | + <option>c-max-rate <replaceable>max_rate</replaceable></option> |
2694 | + </term> |
2695 | + <listitem> |
2696 | + <para>The dynamic resync speed controller gets enabled with setting |
2697 | + <replaceable>plan_time</replaceable> to a positive value. It aims to |
2698 | + fill the buffers along the data path with either a constant amount of data |
2699 | + <replaceable>fill_target</replaceable>, or aims to have a constant |
2700 | + delay time of <replaceable>delay_target</replaceable> along the |
2701 | + path. The controller has an upper bound of <replaceable>max_rate</replaceable>. |
2702 | + </para> |
2703 | + <para> |
2704 | + By <replaceable>plan_time</replaceable> the agility of the controller is configured. |
2705 | + Higher values yield for slower/lower responses of the controller to deviation |
2706 | + from the target value. It should be at least 5 times RTT. |
2707 | + For regular data paths a <replaceable>fill_target</replaceable> |
2708 | + in the area of 4k to 100k is appropriate. For a setup that contains drbd-proxy |
2709 | + it is advisable to use <replaceable>delay_target</replaceable> instead. |
2710 | + Only when <replaceable>fill_target</replaceable> is set to 0 the controller |
2711 | + will use <replaceable>delay_target</replaceable>. 5 times RTT is a reasonable |
2712 | + starting value. <replaceable>Max_rate</replaceable> should be set to the |
2713 | + bandwidth available between the DRBD-hosts and the machines hosting |
2714 | + DRBD-proxy, or to the available disk-bandwidth. |
2715 | + </para> |
2716 | + <para> |
2717 | + The default value of <replaceable>plan_time</replaceable> is 0, the default unit is |
2718 | + 0.1 seconds. <replaceable>Fill_target</replaceable> has 0 and sectors as default unit. |
2719 | + <replaceable>Delay_target</replaceable> has 1 (100ms) and 0.1 as default unit. |
2720 | + <replaceable>Max_rate</replaceable> has 10240 (100MiB/s) and KiB/s as default unit. |
2721 | + </para> |
2722 | + <para> |
2723 | + The dynamic resync speed controller and its settings are available since DRBD 8.3.9. |
2724 | + </para> |
2725 | + </listitem> |
2726 | + </varlistentry> |
2727 | + <varlistentry> |
2728 | + <term> |
2729 | + <option>c-min-rate <replaceable>min_rate</replaceable></option> |
2730 | + </term> |
2731 | + <listitem> |
2732 | + <para>A node that is primary and sync-source has to schedule application |
2733 | + IO requests and resync IO requests. The <replaceable>min_rate</replaceable> |
2734 | + tells DRBD use only up to min_rate for resync IO and to dedicate all |
2735 | + other available IO bandwidth to application requests.</para> |
2736 | + <para>Note: The value 0 has a special meaning. It disables the limitation |
2737 | + of resync IO completely, which might slow down application IO considerably. |
2738 | + Set it to a value of 1, if you prefer that resync IO never slows down |
2739 | + application IO. |
2740 | + </para> |
2741 | + <para>Note: Although the name might suggest that it is a lower bound for the |
2742 | + dynamic resync speed controller, it is not. If the DRBD-proxy buffer is full, |
2743 | + the dynamic resync speed controller is free to lower the resync speed down |
2744 | + to 0, completely independent of the <option>c-min-rate</option> setting. |
2745 | + </para> |
2746 | + <para> |
2747 | + <replaceable>Min_rate</replaceable> has 4096 (4MiB/s) and KiB/s as default unit. |
2748 | + </para> |
2749 | + </listitem> |
2750 | + </varlistentry> |
2751 | + <varlistentry> |
2752 | + <term> |
2753 | + <option>on-no-data-accessible <replaceable>ond-policy</replaceable></option> |
2754 | + </term> |
2755 | + <listitem> |
2756 | + <para>This setting controls what happens to IO requests on a degraded, disk less node |
2757 | + (I.e. no data store is reachable). The available policies are <option>io-error</option> |
2758 | + and <option>suspend-io</option>.</para> |
2759 | + <para> |
2760 | + If <replaceable>ond-policy</replaceable> is set to <option>suspend-io</option> you |
2761 | + can either resume IO by attaching/connecting the last lost data storage, or by |
2762 | + the <command moreinfo="none">drbdadm resume-io <replaceable>res</replaceable></command> |
2763 | + command. The latter will result in IO errors of course. |
2764 | + </para> |
2765 | + <para> |
2766 | + The default is <option>io-error</option>. This setting is available since DRBD 8.3.9. |
2767 | + </para> |
2768 | + </listitem> |
2769 | + </varlistentry> |
2770 | + <varlistentry> |
2771 | + <term> |
2772 | + <option>cpu-mask <replaceable>cpu-mask</replaceable></option> |
2773 | + </term> |
2774 | + <listitem> |
2775 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>cpu-mask </secondary></indexterm> |
2776 | + Sets the cpu-affinity-mask for DRBD's kernel threads of this device. The |
2777 | + default value of <replaceable>cpu-mask</replaceable> is 0, which means |
2778 | + that DRBD's kernel threads should be spread over all CPUs of the machine. |
2779 | + This value must be given in hexadecimal notation. If it is too big it will |
2780 | + be truncated. |
2781 | + </para> |
2782 | + </listitem> |
2783 | + </varlistentry> |
2784 | + <varlistentry> |
2785 | + <term> |
2786 | + <option>pri-on-incon-degr <replaceable>cmd</replaceable></option> |
2787 | + </term> |
2788 | + <listitem> |
2789 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>pri-on-incon-degr </secondary></indexterm> |
2790 | + This handler is called if the node is primary, degraded |
2791 | + and if the local copy of the data is inconsistent.</para> |
2792 | + </listitem> |
2793 | + </varlistentry> |
2794 | + <varlistentry> |
2795 | + <term> |
2796 | + <option>pri-lost-after-sb <replaceable>cmd</replaceable></option> |
2797 | + </term> |
2798 | + <listitem> |
2799 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>pri-lost-after-sb </secondary></indexterm> |
2800 | + The node is currently primary, but lost the after-split-brain |
2801 | + auto recovery procedure. As as consequence, it should be abandoned. |
2802 | + </para> |
2803 | + </listitem> |
2804 | + </varlistentry> |
2805 | + <varlistentry> |
2806 | + <term> |
2807 | + <option>pri-lost <replaceable>cmd</replaceable></option> |
2808 | + </term> |
2809 | + <listitem> |
2810 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>pri-lost </secondary></indexterm> |
2811 | + The node is currently primary, but DRBD's algorithm |
2812 | + thinks that it should become sync target. As a consequence it should |
2813 | + give up its primary role. |
2814 | + </para> |
2815 | + </listitem> |
2816 | + </varlistentry> |
2817 | + <varlistentry> |
2818 | + <term> |
2819 | + <option>fence-peer <replaceable>cmd</replaceable></option> |
2820 | + </term> |
2821 | + <listitem> |
2822 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>fence-peer </secondary></indexterm> |
2823 | + The handler is part of the <option>fencing</option> |
2824 | + mechanism. This handler is called in case the node needs to fence the |
2825 | + peer's disk. It should use other communication paths than DRBD's network |
2826 | + link. </para> |
2827 | + </listitem> |
2828 | + </varlistentry> |
2829 | + <varlistentry> |
2830 | + <term> |
2831 | + <option>local-io-error <replaceable>cmd</replaceable></option> |
2832 | + </term> |
2833 | + <listitem> |
2834 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>local-io-error </secondary></indexterm> |
2835 | + DRBD got an IO error from the local IO subsystem. |
2836 | + </para> |
2837 | + </listitem> |
2838 | + </varlistentry> |
2839 | + <varlistentry> |
2840 | + <term> |
2841 | + <option>initial-split-brain <replaceable>cmd</replaceable></option> |
2842 | + </term> |
2843 | + <listitem> |
2844 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>initial-split-brain </secondary></indexterm> |
2845 | + DRBD has connected and detected a split brain situation. |
2846 | + This handler can alert someone in all cases of split brain, not just |
2847 | + those that go unresolved. |
2848 | + </para> |
2849 | + </listitem> |
2850 | + </varlistentry> |
2851 | + <varlistentry> |
2852 | + <term> |
2853 | + <option>split-brain <replaceable>cmd</replaceable></option> |
2854 | + </term> |
2855 | + <listitem> |
2856 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>split-brain </secondary></indexterm> |
2857 | + DRBD detected a split brain situation but remains unresolved. |
2858 | + Manual recovery is necessary. This handler should alert someone on duty. |
2859 | + </para> |
2860 | + </listitem> |
2861 | + </varlistentry> |
2862 | + <varlistentry> |
2863 | + <term> |
2864 | + <option>before-resync-target <replaceable>cmd</replaceable></option> |
2865 | + </term> |
2866 | + <listitem> |
2867 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>before-resync-target </secondary></indexterm> |
2868 | + DRBD calls this handler just before a resync begins on the node |
2869 | + that becomes resync target. It might be used to take a snapshot of the |
2870 | + backing block device. |
2871 | + </para> |
2872 | + </listitem> |
2873 | + </varlistentry> |
2874 | + <varlistentry> |
2875 | + <term> |
2876 | + <option>after-resync-target <replaceable>cmd</replaceable></option> |
2877 | + </term> |
2878 | + <listitem> |
2879 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>after-resync-target </secondary></indexterm> |
2880 | + DRBD calls this handler just after a resync operation finished on the |
2881 | + node whose disk just became consistent after being inconsistent for the |
2882 | + duration of the resync. It might be used to remove a snapshot of the backing device |
2883 | + that was created by the <option>before-resync-target</option> handler. |
2884 | + </para> |
2885 | + </listitem> |
2886 | + </varlistentry> |
2887 | + </variablelist> |
2888 | + </refsect2> |
2889 | + <refsect2> |
2890 | + <title>Other Keywords</title> |
2891 | + <variablelist> |
2892 | + <varlistentry> |
2893 | + <term> |
2894 | + <option>include <replaceable>file-pattern</replaceable></option> |
2895 | + </term> |
2896 | + <listitem> |
2897 | + <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>include</secondary></indexterm> |
2898 | + Include all files matching the wildcard pattern <replaceable>file-pattern</replaceable>. |
2899 | + The <option>include</option> statement |
2900 | + is only allowed on the top level, i.e. it is not allowed inside any section. |
2901 | + </para> |
2902 | + </listitem> |
2903 | + </varlistentry> |
2904 | + </variablelist> |
2905 | + </refsect2> |
2906 | + </refsect1> |
2907 | + <refsect1 id="data-integrity"> |
2908 | + <title>Notes on data integrity</title> |
2909 | + <para>There are two independent methods in DRBD to ensure the integrity of |
2910 | +the mirrored data. The online-verify mechanism and the <option>data-integrity-alg</option> |
2911 | +of the <option>network</option> section.</para> |
2912 | + <para>Both mechanisms might deliver false positives if the user of DRBD modifies the |
2913 | +data which gets written to disk while the transfer goes on. This may happen for |
2914 | +swap, or for certain append while global sync, or truncate/rewrite workloads, |
2915 | +and not necessarily poses a problem for the integrity of the data. |
2916 | +Usually when the initiator of the data transfer does this, it already knows that |
2917 | +that data block will not be part of an on disk data structure, or will be resubmitted |
2918 | +with correct data soon enough.</para> |
2919 | +<para>The <option>data-integrity-alg</option> causes the receiving side to log |
2920 | +an error about "Digest integrity check FAILED: Ns +x\n", where N is the sector |
2921 | +offset, and x is the size of the requst in bytes. It will then disconnect, and |
2922 | +reconnect, thus causing a quick resync. If the sending side at the same time |
2923 | +detected a modification, it warns about "Digest mismatch, buffer modified by |
2924 | +upper layers during write: Ns +x\n", which shows that this was a false positive. |
2925 | +The sending side may detect these buffer modifications immediately after the |
2926 | +unmodified data has been copied to the tcp buffers, in which case the receiving |
2927 | +side won't notice it.</para> |
2928 | + <para>The most recent (2007) example of systematic corruption was an |
2929 | +issue with the TCP offloading engine and the driver of a certain type |
2930 | +of GBit NIC. The actual corruption happened on the DMA transfer from |
2931 | +core memory to the card. Since the TCP checksum gets calculated on the card, |
2932 | +this type of corruption stays undetected as long as you do not use |
2933 | +either the online <option>verify</option> or the <option>data-integrity-alg</option>.</para> |
2934 | + <para>We suggest to use the <option>data-integrity-alg</option> only during a |
2935 | +pre-production phase due to its CPU costs. Further we suggest to do online |
2936 | +<option>verify</option> runs regularly e.g. once a month during a low load period.</para> |
2937 | + </refsect1> |
2938 | + <refsect1> |
2939 | + <title>Version</title> |
2940 | + <simpara>This document was revised for version 8.3.2 of the DRBD distribution.</simpara> |
2941 | + </refsect1> |
2942 | + <refsect1> |
2943 | + <title>Author</title> |
2944 | + <simpara>Written by Philipp Reisner <email>philipp.reisner@linbit.com</email> |
2945 | + and Lars Ellenberg <email>lars.ellenberg@linbit.com</email>.</simpara> |
2946 | + </refsect1> |
2947 | + <refsect1> |
2948 | + <title>Reporting Bugs</title> |
2949 | + <simpara>Report bugs to <email>drbd-user@lists.linbit.com</email>.</simpara> |
2950 | + </refsect1> |
2951 | + <refsect1> |
2952 | + <title>Copyright</title> |
2953 | + <simpara>Copyright 2001-2008 LINBIT Information Technologies, |
2954 | +Philipp Reisner, Lars Ellenberg. This is free software; |
2955 | +see the source for copying conditions. There is NO warranty; |
2956 | +not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</simpara> |
2957 | + </refsect1> |
2958 | + <refsect1> |
2959 | + <title>See Also</title> |
2960 | + <para><citerefentry><refentrytitle>drbd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, |
2961 | + <citerefentry><refentrytitle>drbddisk</refentrytitle><manvolnum>8</manvolnum></citerefentry>, |
2962 | + <citerefentry><refentrytitle>drbdsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>, |
2963 | + <citerefentry><refentrytitle>drbdadm</refentrytitle><manvolnum>8</manvolnum></citerefentry>, |
2964 | + <ulink url="http://www.drbd.org/users-guide/"><citetitle>DRBD User's Guide</citetitle></ulink>, |
2965 | + <ulink url="http://www.drbd.org/"><citetitle>DRBD web site</citetitle></ulink></para> |
2966 | + </refsect1> |
2967 | +</refentry> |
2968 | |
2969 | === removed file 'documentation/drbd.conf.xml' |
2970 | --- documentation/drbd.conf.xml 2011-07-05 15:40:13 +0000 |
2971 | +++ documentation/drbd.conf.xml 1970-01-01 00:00:00 +0000 |
2972 | @@ -1,1752 +0,0 @@ |
2973 | -<?xml version="1.0"?> |
2974 | -<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> |
2975 | -<refentry id="re-drbdconf"> |
2976 | - <refentryinfo> |
2977 | - <date>5 Dec 2008</date> |
2978 | - <productname>DRBD</productname> |
2979 | - <productnumber>8.3.2</productnumber> |
2980 | - </refentryinfo> |
2981 | - <refmeta> |
2982 | - <refentrytitle>drbd.conf</refentrytitle> |
2983 | - <manvolnum>5</manvolnum> |
2984 | - <refmiscinfo class="manual">Configuration Files</refmiscinfo> |
2985 | - </refmeta> |
2986 | - <refnamediv> |
2987 | - <refname>drbd.conf</refname> |
2988 | - <refpurpose>Configuration file for DRBD's devices |
2989 | - <indexterm significance="normal"> |
2990 | - <primary>drbd.conf</primary> |
2991 | - </indexterm> |
2992 | - </refpurpose> |
2993 | - </refnamediv> |
2994 | - <refsect1> |
2995 | - <title>Introduction</title> |
2996 | - <para> The file <option>/etc/drbd.conf</option> is read by |
2997 | - <option>drbdadm</option>. |
2998 | - </para> |
2999 | - <para> The file format was designed as to allow to have |
3000 | - a verbatim copy of the file on both nodes of the cluster. |
3001 | - It is highly recommended to do so in order to keep your configuration |
3002 | - manageable. The file <option>/etc/drbd.conf</option> should be the same on both nodes of the cluster. Changes to <option>/etc/drbd.conf</option> do not apply |
3003 | - immediately. |
3004 | -<example><title>A small drbd.conf file</title><programlisting format="linespecific">global { usage-count yes; } |
3005 | -common { syncer { rate 10M; } } |
3006 | -resource r0 { |
3007 | - protocol C; |
3008 | - net { |
3009 | - cram-hmac-alg sha1; |
3010 | - shared-secret "FooFunFactory"; |
3011 | - } |
3012 | - on alice { |
3013 | - device minor 1; |
3014 | - disk /dev/sda7; |
3015 | - address 10.1.1.31:7789; |
3016 | - meta-disk internal; |
3017 | - } |
3018 | - on bob { |
3019 | - device minor 1; |
3020 | - disk /dev/sda7; |
3021 | - address 10.1.1.32:7789; |
3022 | - meta-disk internal; |
3023 | - } |
3024 | -}</programlisting></example> |
3025 | - In this example, there is a single DRBD resource (called r0) which uses |
3026 | - protocol C for the connection between its devices. |
3027 | - The device which runs |
3028 | - on host <replaceable>alice</replaceable> uses |
3029 | - <replaceable>/dev/drbd1</replaceable> as devices for its application, and |
3030 | - <replaceable>/dev/sda7</replaceable> as low-level storage for the data. |
3031 | - The IP addresses are used to specify the networking interfaces to be used. |
3032 | - An eventually running resync process should use about 10MByte/second of IO |
3033 | - bandwidth. |
3034 | - </para> |
3035 | - <para> There may be multiple resource sections in a single drbd.conf file. |
3036 | - For more examples, please have a look at the |
3037 | - <ulink url="http://www.drbd.org/users-guide/"><citetitle>DRBD User's Guide</citetitle></ulink>. |
3038 | - </para> |
3039 | - </refsect1> |
3040 | - <refsect1> |
3041 | - <title>File Format</title> |
3042 | - <para> The file consists of sections and parameters. |
3043 | - A section begins with a keyword, sometimes an additional name, and an |
3044 | - opening brace (<quote>{</quote>). |
3045 | - A section ends with a closing brace (<quote>}</quote>. |
3046 | - The braces enclose the parameters. |
3047 | - </para> |
3048 | - <para> section [name] { parameter value; [...] } |
3049 | - </para> |
3050 | - <para> A parameter starts with the identifier of the parameter followed |
3051 | - by whitespace. Every subsequent character |
3052 | - is considered |
3053 | - as part of the parameter's value. A special case are Boolean |
3054 | - parameters which consist only of the identifier. |
3055 | - Parameters are terminated by a semicolon (<quote>;</quote>). |
3056 | - </para> |
3057 | - <para>Some parameter values have default units which might be overruled |
3058 | - by K, M or G. These units are defined in the usual way (K = 2^10 = 1024, |
3059 | - M = 1024 K, G = 1024 M). |
3060 | - </para> |
3061 | - <para> Comments may be placed into the configuration file and must |
3062 | - begin with a hash sign (<quote>#</quote>). Subsequent characters are ignored |
3063 | - until the end of the line. |
3064 | - </para> |
3065 | - <refsect2> |
3066 | - <title>Sections</title> |
3067 | - <variablelist> |
3068 | - <varlistentry> |
3069 | - <term> |
3070 | - <option>skip</option> |
3071 | - </term> |
3072 | - <listitem> |
3073 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>skip</secondary></indexterm> |
3074 | - Comments out chunks of text, even spanning more than one line. |
3075 | - Characters between the keyword <option>skip</option> and the opening |
3076 | - brace (<quote>{</quote>) are ignored. Everything enclosed by the braces |
3077 | - is skipped. |
3078 | - This comes in handy, if you just want to comment out |
3079 | - some '<option>resource [name] {...}</option>' section: just precede it with '<quote>skip</quote>'. |
3080 | - </para> |
3081 | - </listitem> |
3082 | - </varlistentry> |
3083 | - <varlistentry> |
3084 | - <term> |
3085 | - <option>global</option> |
3086 | - </term> |
3087 | - <listitem> |
3088 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>global</secondary></indexterm> |
3089 | - Configures some global parameters. Currently only |
3090 | - <option>minor-count</option>, <option>dialog-refresh</option>, |
3091 | - <option>disable-ip-verification</option> and <option>usage-count</option> |
3092 | - are allowed here. You may only have one global section, preferably |
3093 | - as the first section. |
3094 | - </para> |
3095 | - </listitem> |
3096 | - </varlistentry> |
3097 | - <varlistentry> |
3098 | - <term> |
3099 | - <option>common</option> |
3100 | - </term> |
3101 | - <listitem> |
3102 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>common</secondary></indexterm> |
3103 | - All resources inherit the options set in this section. |
3104 | - The common section might have |
3105 | - a <option>startup</option>, |
3106 | - a <option>syncer</option>, |
3107 | - a <option>handlers</option>, |
3108 | - a <option>net</option> and a <option>disk</option> section. |
3109 | - </para> |
3110 | - </listitem> |
3111 | - </varlistentry> |
3112 | - <varlistentry> |
3113 | - <term> |
3114 | - <option>resource <replaceable>name</replaceable></option> |
3115 | - </term> |
3116 | - <listitem> |
3117 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>resource</secondary></indexterm> |
3118 | - Configures a DRBD resource. |
3119 | - Each resource section needs to have two (or more) |
3120 | - <option>on <replaceable>host</replaceable></option> sections |
3121 | - and may have |
3122 | - a <option>startup</option>, |
3123 | - a <option>syncer</option>, |
3124 | - a <option>handlers</option>, |
3125 | - a <option>net</option> and a <option>disk</option> section. |
3126 | - Required parameter in this section: <option>protocol</option>. |
3127 | - </para> |
3128 | - </listitem> |
3129 | - </varlistentry> |
3130 | - <varlistentry> |
3131 | - <term> |
3132 | - <option>on <replaceable>host-name</replaceable></option> |
3133 | - </term> |
3134 | - <listitem> |
3135 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>on</secondary></indexterm> |
3136 | - Carries the necessary configuration parameters for a DRBD |
3137 | - device of the enclosing resource. |
3138 | - <replaceable>host-name</replaceable> is mandatory and must match the |
3139 | - Linux host name (uname -n) of one of the nodes. |
3140 | - You may list more than one host name here, in case you want to use the same |
3141 | - parameters on several hosts (you'd have to move the IP around usually). |
3142 | - Or you may list more than two such sections. |
3143 | - <programlisting format="linespecific"> resource r1 { |
3144 | - protocol C; |
3145 | - device minor 1; |
3146 | - meta-disk internal; |
3147 | - |
3148 | - on alice bob { |
3149 | - address 10.2.2.100:7801; |
3150 | - disk /dev/mapper/some-san; |
3151 | - } |
3152 | - on charlie { |
3153 | - address 10.2.2.101:7801; |
3154 | - disk /dev/mapper/other-san; |
3155 | - } |
3156 | - on daisy { |
3157 | - address 10.2.2.103:7801; |
3158 | - disk /dev/mapper/other-san-as-seen-from-daisy; |
3159 | - } |
3160 | - } |
3161 | - </programlisting> |
3162 | - See also the <option>floating</option> section keyword. |
3163 | - Required parameters in this section: <option>device</option>, |
3164 | - <option>disk</option>, <option>address</option>, <option>meta-disk</option>, |
3165 | - <option>flexible-meta-disk</option>. |
3166 | - </para> |
3167 | - </listitem> |
3168 | - </varlistentry> |
3169 | - <varlistentry> |
3170 | - <term> |
3171 | - <option>stacked-on-top-of <replaceable>resource</replaceable></option> |
3172 | - </term> |
3173 | - <listitem> |
3174 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>stacked-on-top-of</secondary></indexterm> |
3175 | - For a stacked DRBD setup (3 or 4 nodes), a <option>stacked-on-top-of</option> is used |
3176 | - instead of an <option>on</option> section. |
3177 | - Required parameters in this section: <option>device</option> and |
3178 | - <option>address</option>. |
3179 | - </para> |
3180 | - </listitem> |
3181 | - </varlistentry> |
3182 | - <varlistentry> |
3183 | - <term> |
3184 | - <option>floating <replaceable>AF addr:port</replaceable></option> |
3185 | - </term> |
3186 | - <listitem> |
3187 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>on</secondary></indexterm> |
3188 | - Carries the necessary configuration parameters for a DRBD |
3189 | - device of the enclosing resource. |
3190 | - This section is very similar to the <option>on</option> section. |
3191 | - The difference to the <option>on</option> section is that |
3192 | - the matching of the host sections to machines is done by the IP-address |
3193 | - instead of the node name. |
3194 | - Required parameters in this section: <option>device</option>, |
3195 | - <option>disk</option>, <option>meta-disk</option>, |
3196 | - <option>flexible-meta-disk</option>, all of which <emphasis>may</emphasis> be |
3197 | - inherited from the resource section, in which case you may shorten this section |
3198 | - down to just the address identifier. |
3199 | - <programlisting format="linespecific"> resource r2 { |
3200 | - protocol C; |
3201 | - device minor 2; |
3202 | - disk /dev/sda7; |
3203 | - meta-disk internal; |
3204 | - |
3205 | - # short form, device, disk and meta-disk inherited |
3206 | - floating 10.1.1.31:7802; |
3207 | - |
3208 | - # longer form, only device inherited |
3209 | - floating 10.1.1.32:7802 { |
3210 | - disk /dev/sdb; |
3211 | - meta-disk /dev/sdc8; |
3212 | - } |
3213 | - } |
3214 | - </programlisting> |
3215 | - </para> |
3216 | - </listitem> |
3217 | - </varlistentry> |
3218 | - <varlistentry> |
3219 | - <term> |
3220 | - <option>disk</option> |
3221 | - </term> |
3222 | - <listitem> |
3223 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>disk</secondary></indexterm> |
3224 | - This section is used to fine tune DRBD's properties |
3225 | - in respect to the low level storage. Please |
3226 | - refer to <citerefentry><refentrytitle>drbdsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry> for detailed description of |
3227 | - the parameters. |
3228 | - Optional parameters: <option>on-io-error</option>, |
3229 | - <option>size</option>, <option>fencing</option>, <option>use-bmbv</option>, |
3230 | - <option>no-disk-barrier</option>, <option>no-disk-flushes</option>, |
3231 | - <option>no-disk-drain</option>, <option>no-md-flushes</option>, |
3232 | - <option>max-bio-bvecs</option>. |
3233 | - </para> |
3234 | - </listitem> |
3235 | - </varlistentry> |
3236 | - <varlistentry> |
3237 | - <term> |
3238 | - <option>net</option> |
3239 | - </term> |
3240 | - <listitem> |
3241 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>net</secondary></indexterm> |
3242 | - This section is used to fine tune DRBD's properties. Please |
3243 | - refer to <citerefentry><refentrytitle>drbdsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry> for a detailed description |
3244 | - of this section's parameters. |
3245 | - Optional parameters: |
3246 | - <option>sndbuf-size</option>, <option>rcvbuf-size</option>, |
3247 | - <option>timeout</option>, |
3248 | - <option>connect-int</option>, <option>ping-int</option>, |
3249 | - <option>ping-timeout</option>, |
3250 | - <option>max-buffers</option>, <option>max-epoch-size</option>, |
3251 | - <option>ko-count</option>, <option>allow-two-primaries</option>, |
3252 | - <option>cram-hmac-alg</option>, <option>shared-secret</option>, |
3253 | - <option>after-sb-0pri</option>, <option>after-sb-1pri</option>, |
3254 | - <option>after-sb-2pri</option>, <option>data-integrity-alg</option>, |
3255 | - <option>no-tcp-cork</option>, <option>on-congestion</option>, |
3256 | - <option>congestion-fill</option>, <option>congestion-extents</option> |
3257 | - </para> |
3258 | - </listitem> |
3259 | - </varlistentry> |
3260 | - <varlistentry> |
3261 | - <term> |
3262 | - <option>startup</option> |
3263 | - </term> |
3264 | - <listitem> |
3265 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>startup</secondary></indexterm> |
3266 | - This section is used to fine tune DRBD's properties. Please |
3267 | - refer to <citerefentry><refentrytitle>drbdsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry> for a detailed description |
3268 | - of this section's parameters. |
3269 | - Optional parameters: |
3270 | - <option>wfc-timeout</option>, <option>degr-wfc-timeout</option>, |
3271 | - <option>outdated-wfc-timeout</option>, |
3272 | - <option>wait-after-sb</option>, <option>stacked-timeouts</option> |
3273 | - and <option>become-primary-on</option>. |
3274 | - </para> |
3275 | - </listitem> |
3276 | - </varlistentry> |
3277 | - <varlistentry> |
3278 | - <term> |
3279 | - <option>syncer</option> |
3280 | - </term> |
3281 | - <listitem> |
3282 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>syncer</secondary></indexterm> |
3283 | - This section is used to fine tune the synchronization daemon |
3284 | - for the device. Please |
3285 | - refer to <citerefentry><refentrytitle>drbdsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry> for a detailed description |
3286 | - of this section's parameters. |
3287 | - Optional parameters: |
3288 | - <option>rate</option>, <option>after</option>, <option>al-extents</option>, |
3289 | - <option>use-rle</option>, |
3290 | - <option>cpu-mask</option>, <option>verify-alg</option>, <option>csums-alg</option>, |
3291 | - <option>c-plan-ahead</option>, <option>c-fill-target</option>, |
3292 | - <option>c-delay-target</option>, <option>c-max-rate</option>, |
3293 | - <option>c-min-rate</option> |
3294 | - and <option>on-no-data-accessible</option>. |
3295 | - </para> |
3296 | - </listitem> |
3297 | - </varlistentry> |
3298 | - <varlistentry> |
3299 | - <term> |
3300 | - <option>handlers</option> |
3301 | - </term> |
3302 | - <listitem> |
3303 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>handlers</secondary></indexterm> |
3304 | - In this section you can define handlers (executables) that are started |
3305 | - by the DRBD system in response to certain events. |
3306 | - Optional parameters: |
3307 | - <option>pri-on-incon-degr</option>, <option>pri-lost-after-sb</option>, |
3308 | - <option>pri-lost</option>, <option>fence-peer</option> (formerly oudate-peer), |
3309 | - <option>local-io-error</option>, <option>initial-split-brain</option>, <option>split-brain</option>, |
3310 | - <option>before-resync-target</option>, <option>after-resync-target</option>. |
3311 | - </para> |
3312 | - <para> |
3313 | - The interface is done via environment variables: |
3314 | - <variablelist> |
3315 | - <varlistentry> |
3316 | - <term><option>DRBD_RESOURCE</option></term> |
3317 | - <listitem><para>is the name of the resource</para></listitem> |
3318 | - </varlistentry> |
3319 | - <varlistentry> |
3320 | - <term><option>DRBD_MINOR</option></term> |
3321 | - <listitem><para>is the minor number of the DRBD device, in decimal.</para></listitem> |
3322 | - </varlistentry> |
3323 | - <varlistentry> |
3324 | - <term><option>DRBD_CONF</option></term> |
3325 | - <listitem><para> |
3326 | - is the path to the primary configuration file; if you |
3327 | - split your configuration into multiple files (e.g. in <option>/etc/drbd.conf.d/</option>), |
3328 | - this will not be helpful. |
3329 | - </para></listitem> |
3330 | - </varlistentry> |
3331 | - <varlistentry> |
3332 | - <term><option>DRBD_PEER_AF</option>, |
3333 | - <option>DRBD_PEER_ADDRESS</option>, |
3334 | - <option>DRBD_PEERS</option></term> |
3335 | - <listitem><para> |
3336 | - are the address family (e.g. <option>ipv6</option>), |
3337 | - the peer's address and hostnames. |
3338 | - </para></listitem> |
3339 | - </varlistentry> |
3340 | - </variablelist> |
3341 | - <option>DRBD_PEER</option> (note the singular form) is deprecated, and superseeded by DRBD_PEERS. |
3342 | - </para> |
3343 | - <para> |
3344 | - Please note that not all of these might be set for all handlers, and that some values might not be useable for a <option>floating</option> definition. |
3345 | - </para> |
3346 | - </listitem> |
3347 | - </varlistentry> |
3348 | - </variablelist> |
3349 | - </refsect2> |
3350 | - <refsect2> |
3351 | - <title>Parameters</title> |
3352 | - <variablelist> |
3353 | - <varlistentry> |
3354 | - <term> |
3355 | - <option>minor-count <replaceable>count</replaceable></option> |
3356 | - </term> |
3357 | - <listitem> |
3358 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>minor-count </secondary></indexterm><replaceable>count</replaceable> may be a number from 1 to 255. |
3359 | - </para> |
3360 | - <para>Use <replaceable>minor-count</replaceable> |
3361 | - if you want to define massively more resources later without reloading |
3362 | - the DRBD kernel |
3363 | - module. Per default the module loads with 11 more resources than you have currently |
3364 | - in your config but at least 32.</para> |
3365 | - </listitem> |
3366 | - </varlistentry> |
3367 | - <varlistentry> |
3368 | - <term> |
3369 | - <option>dialog-refresh <replaceable>time</replaceable></option> |
3370 | - </term> |
3371 | - <listitem> |
3372 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>dialog-refresh </secondary></indexterm><replaceable>time</replaceable> may be 0 or a positive number. |
3373 | - </para> |
3374 | - <para>The user dialog redraws the second count every |
3375 | - <replaceable>time</replaceable> seconds (or does no redraws if |
3376 | - <replaceable>time</replaceable> is 0). The default value is 1.</para> |
3377 | - </listitem> |
3378 | - </varlistentry> |
3379 | - <varlistentry> |
3380 | - <term> |
3381 | - <option>disable-ip-verification</option> |
3382 | - </term> |
3383 | - <listitem> |
3384 | - <indexterm significance="normal"> |
3385 | - <primary>drbd.conf</primary> |
3386 | - <secondary>disable-ip-verification</secondary> |
3387 | - </indexterm> |
3388 | - <para>Use <replaceable>disable-ip-verification</replaceable> |
3389 | - if, for some obscure reasons, drbdadm can/might not use <option>ip</option> or <option>ifconfig</option> |
3390 | - to do a sanity check for the IP address. You can disable the IP verification with |
3391 | - this option. |
3392 | - </para> |
3393 | - </listitem> |
3394 | - </varlistentry> |
3395 | - <varlistentry> |
3396 | - <term> |
3397 | - <option>usage-count <replaceable>val</replaceable></option> |
3398 | - </term> |
3399 | - <listitem> |
3400 | - <indexterm significance="normal"> |
3401 | - <primary>drbd.conf</primary> |
3402 | - <secondary>usage-count </secondary> |
3403 | - </indexterm> |
3404 | - <para>Please participate in |
3405 | - <ulink url="http://usage.drbd.org"><citetitle>DRBD's online usage counter</citetitle></ulink>. |
3406 | - The most convenient way to do so |
3407 | - is to set this option to <option>yes</option>. Valid options are: |
3408 | - <option>yes</option>, <option>no</option> and <option>ask</option>. |
3409 | - </para> |
3410 | - </listitem> |
3411 | - </varlistentry> |
3412 | - <varlistentry> |
3413 | - <term> |
3414 | - <option>protocol <replaceable>prot-id</replaceable></option> |
3415 | - </term> |
3416 | - <listitem> |
3417 | - <indexterm significance="normal"> |
3418 | - <primary>drbd.conf</primary> |
3419 | - <secondary>protocol</secondary> |
3420 | - </indexterm> |
3421 | - <para>On the TCP/IP link the specified <replaceable>protocol</replaceable> |
3422 | - is used. Valid protocol specifiers are A, B, and C.</para> |
3423 | - <para>Protocol A: write IO is reported as completed, if it has |
3424 | - reached local disk and local TCP send buffer.</para> |
3425 | - <para>Protocol B: write IO is reported as completed, if it has reached |
3426 | - local disk and remote buffer cache.</para> |
3427 | - <para>Protocol C: write IO is reported as completed, if it has |
3428 | - reached both local and remote disk.</para> |
3429 | - </listitem> |
3430 | - </varlistentry> |
3431 | - <varlistentry> |
3432 | - <term> |
3433 | - <option>device <replaceable>name</replaceable> minor <replaceable>nr</replaceable></option> |
3434 | - </term> |
3435 | - <listitem> |
3436 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>device</secondary></indexterm> |
3437 | - The name of the block device node of the resource being described. |
3438 | - You must use this device with your application (file system) and |
3439 | - you must not use the low level block device which is specified with the |
3440 | - <option>disk</option> parameter. |
3441 | - </para> |
3442 | - <para> One can ether omit the <replaceable>name</replaceable> or <option>minor</option> |
3443 | - and the <replaceable>minor number</replaceable>. If you omit the <replaceable>name</replaceable> |
3444 | - a default of /dev/drbd<replaceable>minor</replaceable> will be used. |
3445 | - </para> |
3446 | - <para> Udev will create additional symlinks in /dev/drbd/by-res and /dev/drbd/by-disk. |
3447 | - </para> |
3448 | - </listitem> |
3449 | - </varlistentry> |
3450 | - <varlistentry> |
3451 | - <term> |
3452 | - <option>disk <replaceable>name</replaceable></option> |
3453 | - </term> |
3454 | - <listitem> |
3455 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>disk</secondary></indexterm> |
3456 | - DRBD uses this block device to actually store and retrieve the data. |
3457 | - Never access such a device while DRBD is running on top of it. This |
3458 | - also holds true for <citerefentry><refentrytitle>dumpe2fs</refentrytitle><manvolnum>8</manvolnum></citerefentry> and similar commands. |
3459 | - </para> |
3460 | - </listitem> |
3461 | - </varlistentry> |
3462 | - <varlistentry> |
3463 | - <term> |
3464 | - <option>address <replaceable>AF addr:port</replaceable></option> |
3465 | - </term> |
3466 | - <listitem> |
3467 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>address</secondary></indexterm> |
3468 | - A resource needs one <replaceable>IP</replaceable> address per device, |
3469 | - which is used to wait for incoming connections from the partner device |
3470 | - respectively to reach the partner device. <replaceable>AF</replaceable> |
3471 | - must be one of <option>ipv4</option>, <option>ipv6</option>, <option>ssocks</option> |
3472 | - or <option>sdp</option> |
3473 | - (for compatibility reasons <option>sci</option> is an alias for <option>ssocks</option>). |
3474 | - It may be omited for IPv4 addresses. The actual IPv6 address that follows |
3475 | - the <option>ipv6</option> keyword must be placed inside brackets: |
3476 | - <literal moreinfo="none">ipv6 [fd01:2345:6789:abcd::1]:7800</literal>. |
3477 | - </para> |
3478 | - <para> Each DRBD resource needs a TCP <replaceable>port</replaceable> |
3479 | - which is used to connect to the node's partner device. |
3480 | - Two different DRBD resources may not use the same |
3481 | - <replaceable>addr:port</replaceable> combination on the same node. |
3482 | - </para> |
3483 | - </listitem> |
3484 | - </varlistentry> |
3485 | - <varlistentry> |
3486 | - <term> |
3487 | - <option>meta-disk <replaceable>internal</replaceable></option> |
3488 | - </term> |
3489 | - <term> |
3490 | - <option>flexible-meta-disk <replaceable>internal</replaceable></option> |
3491 | - </term> |
3492 | - <term> |
3493 | - <option>meta-disk <replaceable>device [index]</replaceable></option> |
3494 | - </term> |
3495 | - <term> |
3496 | - <option>flexible-meta-disk <replaceable>device </replaceable></option> |
3497 | - </term> |
3498 | - <listitem> |
3499 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>meta-disk</secondary></indexterm><indexterm significance="normal"><primary>drbd.conf</primary><secondary>flexible-meta-disk</secondary></indexterm> |
3500 | - Internal means that the last part of the backing device is used to store |
3501 | - the meta-data. You must not use <replaceable>[index]</replaceable> with |
3502 | - internal. Note: Regardless of whether you use the <option>meta-disk</option> or |
3503 | - the <option>flexible-meta-disk</option> keyword, it will always be of |
3504 | - the size needed for the remaining storage size. |
3505 | - </para> |
3506 | - <para> You can use a single block <replaceable>device</replaceable> to store |
3507 | - meta-data of multiple DRBD devices. |
3508 | - E.g. use meta-disk /dev/sde6[0]; and meta-disk /dev/sde6[1]; |
3509 | - for two different resources. In this case the meta-disk |
3510 | - would need to be at least 256 MB in size. |
3511 | - </para> |
3512 | - <para> With the <option>flexible-meta-disk</option> keyword you specify |
3513 | - a block device as meta-data storage. You usually use this with LVM, |
3514 | - which allows you to have many variable sized block devices. |
3515 | - The required size of the meta-disk block device is |
3516 | - 36kB + Backing-Storage-size / 32k. Round this number to the next 4kb |
3517 | - boundary up and you have the exact size. |
3518 | - Rule of the thumb: 32kByte per 1GByte of storage, round up to the next |
3519 | - MB.</para> |
3520 | - </listitem> |
3521 | - </varlistentry> |
3522 | - <varlistentry> |
3523 | - <term> |
3524 | - <option>on-io-error <replaceable>handler</replaceable></option> |
3525 | - </term> |
3526 | - <listitem> |
3527 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>on-io-error</secondary></indexterm><replaceable>handler</replaceable> is taken, if the lower level |
3528 | - device reports io-errors to the upper layers. |
3529 | - </para> |
3530 | - <para><replaceable>handler</replaceable> may be <option>pass_on</option>, <option>call-local-io-error</option> |
3531 | - or <option>detach.</option> |
3532 | - </para> |
3533 | - <para><option>pass_on</option>: The node downgrades the disk status to inconsistent, marks the |
3534 | - erroneous block as inconsistent in the bitmap and retries the IO on the remote node.</para> |
3535 | - <para><option>call-local-io-error</option>: Call the handler script |
3536 | - <option>local-io-error</option>.</para> |
3537 | - <para><option>detach</option>: The node drops its low level device, and continues in diskless mode.</para> |
3538 | - </listitem> |
3539 | - </varlistentry> |
3540 | - <varlistentry> |
3541 | - <term> |
3542 | - <option>fencing <replaceable>fencing_policy</replaceable></option> |
3543 | - </term> |
3544 | - <listitem> |
3545 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>fencing</secondary></indexterm> |
3546 | - By <option>fencing</option> we understand preventive |
3547 | - measures to avoid situations where both nodes are primary |
3548 | - and disconnected (AKA split brain). |
3549 | - </para> |
3550 | - <para>Valid fencing policies are:</para> |
3551 | - <variablelist> |
3552 | - <varlistentry> |
3553 | - <term> |
3554 | - <option>dont-care</option> |
3555 | - </term> |
3556 | - <listitem> |
3557 | - <para> This is the default policy. No fencing actions are taken. |
3558 | - </para> |
3559 | - </listitem> |
3560 | - </varlistentry> |
3561 | - <varlistentry> |
3562 | - <term> |
3563 | - <option>resource-only</option> |
3564 | - </term> |
3565 | - <listitem> |
3566 | - <para> If a node becomes a disconnected primary, it tries to fence |
3567 | - the peer's disk. This is done by calling the <option>fence-peer</option> |
3568 | - handler. The handler is supposed to reach the other node over |
3569 | - alternative communication paths and call '<option>drbdadm outdate |
3570 | - res</option>' there. |
3571 | - </para> |
3572 | - </listitem> |
3573 | - </varlistentry> |
3574 | - <varlistentry> |
3575 | - <term> |
3576 | - <option>resource-and-stonith</option> |
3577 | - </term> |
3578 | - <listitem> |
3579 | - <para> If a node becomes a disconnected primary, it freezes all |
3580 | - its IO operations and calls its fence-peer handler. The |
3581 | - fence-peer handler is supposed to reach the peer over |
3582 | - alternative communication paths and call 'drbdadm outdate |
3583 | - res' there. In case it cannot reach the peer it should |
3584 | - stonith the peer. IO is resumed as soon as the situation |
3585 | - is resolved. In case your handler fails, you can resume |
3586 | - IO with the <option>resume-io</option> command. |
3587 | - </para> |
3588 | - </listitem> |
3589 | - </varlistentry> |
3590 | - </variablelist> |
3591 | - </listitem> |
3592 | - </varlistentry> |
3593 | - <varlistentry> |
3594 | - <term> |
3595 | - <option>use-bmbv</option> |
3596 | - </term> |
3597 | - <listitem> |
3598 | - <indexterm significance="normal"> |
3599 | - <primary>drbd.conf</primary> |
3600 | - <secondary>use-bmbv</secondary> |
3601 | - </indexterm> |
3602 | - <para> In case the backing storage's driver has a merge_bvec_fn() function, |
3603 | - DRBD has to pretend that it can only process IO requests in |
3604 | - units not larger than 4KiB. (At the time of writing the only known drivers which have such a function |
3605 | - are: md (software raid driver), dm (device mapper - LVM) and DRBD |
3606 | - itself).</para> |
3607 | - <para> To get the best performance out of DRBD on top of software RAID (or any |
3608 | - other driver with a merge_bvec_fn() function) you might enable this |
3609 | - function, if you know for sure that the merge_bvec_fn() function will |
3610 | - deliver the same results on all nodes of your cluster. I.e. the |
3611 | - physical disks of the software RAID are of exactly the same |
3612 | - type. <emphasis>Use this option only if you know what you are |
3613 | - doing.</emphasis> |
3614 | - </para> |
3615 | - </listitem> |
3616 | - </varlistentry> |
3617 | - <varlistentry> |
3618 | - <term> |
3619 | - <option>no-disk-barrier</option> |
3620 | - </term> |
3621 | - <term> |
3622 | - <option>no-disk-flushes</option> |
3623 | - </term> |
3624 | - <term> |
3625 | - <option>no-disk-drain</option> |
3626 | - </term> |
3627 | - <listitem> |
3628 | - <indexterm significance="normal"> |
3629 | - <primary>drbd.conf</primary> |
3630 | - <secondary>no-disk-flushes</secondary> |
3631 | - </indexterm> |
3632 | - <indexterm significance="normal"> |
3633 | - <primary>drbd.conf</primary> |
3634 | - <secondary>no-disk-flushes</secondary> |
3635 | - </indexterm> |
3636 | - <indexterm significance="normal"> |
3637 | - <primary>drbd.conf</primary> |
3638 | - <secondary>no-disk-flushes</secondary> |
3639 | - </indexterm> |
3640 | - <para> DRBD has four implementations to express write-after-write dependencies to |
3641 | - its backing storage device. DRBD will use the first method that is |
3642 | - supported by the backing storage device and that is not disabled by the user. |
3643 | - </para> |
3644 | - <para> When selecting the method you should not only base your decision on the |
3645 | - measurable performance. In case your backing storage device has a volatile |
3646 | - write cache (plain disks, RAID of plain disks) you should use one |
3647 | - of the first two. In case your backing storage device has battery-backed |
3648 | - write cache you may go with option 3 or 4. Option 4 will deliver the |
3649 | - best performance on such devices. |
3650 | - </para> |
3651 | - <para> Unfortunately device mapper (LVM) might not support barriers. |
3652 | - </para> |
3653 | - <para> The letter after "wo:" in /proc/drbd indicates with method is currently in |
3654 | - use for a device: <option>b</option>, <option>f</option>, <option>d</option>, <option>n</option>. The implementations are: |
3655 | - </para> |
3656 | - <variablelist> |
3657 | - <varlistentry> |
3658 | - <term>barrier</term> |
3659 | - <listitem> |
3660 | - <para> The first requires that the driver of the |
3661 | - backing storage device support barriers (called 'tagged command queuing' in |
3662 | - SCSI and 'native command queuing' in SATA speak). The use of this |
3663 | - method can be disabled by the <option>no-disk-barrier</option> option. |
3664 | - </para> |
3665 | - </listitem> |
3666 | - </varlistentry> |
3667 | - <varlistentry> |
3668 | - <term>flush</term> |
3669 | - <listitem> |
3670 | - <para> The second requires that the backing device support disk flushes (called |
3671 | - 'force unit access' in the drive vendors speak). The use of this method |
3672 | - can be disabled using the <option>no-disk-flushes</option> option. |
3673 | - </para> |
3674 | - </listitem> |
3675 | - </varlistentry> |
3676 | - <varlistentry> |
3677 | - <term>drain</term> |
3678 | - <listitem> |
3679 | - <para> The third method is simply to let write requests drain before |
3680 | - write requests of a new reordering domain are issued. This was the |
3681 | - only implementation before 8.0.9. You can disable this |
3682 | - method by using the <option>no-disk-drain</option> option. |
3683 | - </para> |
3684 | - </listitem> |
3685 | - </varlistentry> |
3686 | - <varlistentry> |
3687 | - <term>none</term> |
3688 | - <listitem> |
3689 | - <para> The fourth method is to not express write-after-write dependencies to |
3690 | - the backing store at all. |
3691 | - </para> |
3692 | - </listitem> |
3693 | - </varlistentry> |
3694 | - </variablelist> |
3695 | - </listitem> |
3696 | - </varlistentry> |
3697 | - <varlistentry> |
3698 | - <term> |
3699 | - <option>no-md-flushes</option> |
3700 | - </term> |
3701 | - <listitem> |
3702 | - <indexterm significance="normal"> |
3703 | - <primary>drbd.conf</primary> |
3704 | - <secondary>no-md-flushes</secondary> |
3705 | - </indexterm> |
3706 | - <para> Disables the use of disk flushes and barrier BIOs when accessing |
3707 | - the meta data device. See the notes on <option>no-disk-flushes</option>. |
3708 | - </para> |
3709 | - </listitem> |
3710 | - </varlistentry> |
3711 | - <varlistentry> |
3712 | - <term> |
3713 | - <option>max-bio-bvecs</option> |
3714 | - </term> |
3715 | - <listitem> |
3716 | - <indexterm significance="normal"> |
3717 | - <primary>drbd.conf</primary> |
3718 | - <secondary>max-bio-bvecs</secondary> |
3719 | - </indexterm> |
3720 | - <para> In some special circumstances the device mapper stack manages to |
3721 | - pass BIOs to DRBD that violate the constraints that are set forth |
3722 | - by DRBD's merge_bvec() function and which have more than one bvec. |
3723 | - A known example is: |
3724 | - phys-disk -> DRBD -> LVM -> Xen -> misaligned partition (63) -> DomU FS. |
3725 | - Then you might see "bio would need to, but cannot, be split:" in |
3726 | - the Dom0's kernel log. </para> |
3727 | - <para> The best workaround is to proper align the partition within |
3728 | - the VM (E.g. start it at sector 1024). This costs 480 KiB of storage. |
3729 | - Unfortunately the default of most Linux partitioning tools is |
3730 | - to start the first partition at an odd number (63). Therefore |
3731 | - most distribution's install helpers for virtual linux machines will |
3732 | - end up with misaligned partitions. |
3733 | - The second best workaround is to limit DRBD's max bvecs per BIO |
3734 | - (= <option>max-bio-bvecs</option>) to 1, but that might cost performance.</para> |
3735 | - <para> The default value of <option>max-bio-bvecs</option> is 0, which means that |
3736 | - there is no user imposed limitation. |
3737 | - </para> |
3738 | - </listitem> |
3739 | - </varlistentry> |
3740 | - <varlistentry> |
3741 | - <term> |
3742 | - <option>sndbuf-size <replaceable>size</replaceable></option> |
3743 | - </term> |
3744 | - <listitem> |
3745 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>sndbuf-size </secondary></indexterm><replaceable>size</replaceable> is the size of the TCP socket send buffer. |
3746 | - The default value is 0, i.e. autotune. You can specify smaller or larger values. Larger values |
3747 | - are appropriate for reasonable write throughput with protocol A over high |
3748 | - latency networks. Values |
3749 | - below 32K do not make sense. Since 8.0.13 resp. 8.2.7, setting the <replaceable>size</replaceable> |
3750 | - value to 0 means that the kernel should autotune this. |
3751 | - </para> |
3752 | - </listitem> |
3753 | - </varlistentry> |
3754 | - <varlistentry> |
3755 | - <term> |
3756 | - <option>rcvbuf-size <replaceable>size</replaceable></option> |
3757 | - </term> |
3758 | - <listitem> |
3759 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>rcvbuf-size </secondary></indexterm><replaceable>size</replaceable> is the size of the TCP socket receive buffer. |
3760 | - The default value is 0, i.e. autotune. You can specify smaller or larger values. |
3761 | - Usually this should be left at its default. Setting the <replaceable>size</replaceable> |
3762 | - value to 0 means that the kernel should autotune this. |
3763 | - </para> |
3764 | - </listitem> |
3765 | - </varlistentry> |
3766 | - <varlistentry> |
3767 | - <term> |
3768 | - <option>timeout <replaceable>time</replaceable></option> |
3769 | - </term> |
3770 | - <listitem> |
3771 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>timeout</secondary></indexterm> |
3772 | -If the partner node fails to send an expected response packet within |
3773 | -<replaceable>time</replaceable> tenths |
3774 | -of a second, the partner node |
3775 | -is considered dead and therefore the TCP/IP connection is abandoned. This must be lower than <replaceable>connect-int</replaceable> and <replaceable>ping-int</replaceable>. |
3776 | -The default value is 60 = 6 seconds, the unit 0.1 seconds. |
3777 | - </para> |
3778 | - </listitem> |
3779 | - </varlistentry> |
3780 | - <varlistentry> |
3781 | - <term> |
3782 | - <option>connect-int <replaceable>time</replaceable></option> |
3783 | - </term> |
3784 | - <listitem> |
3785 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>connect-int</secondary></indexterm> |
3786 | -In case it is not possible to connect to the remote DRBD device immediately, |
3787 | -DRBD keeps on trying to connect. With this option you can set the time |
3788 | -between two retries. The default value is 10 seconds, the unit is 1 second. |
3789 | - </para> |
3790 | - </listitem> |
3791 | - </varlistentry> |
3792 | - <varlistentry> |
3793 | - <term> |
3794 | - <option>ping-int <replaceable>time</replaceable></option> |
3795 | - </term> |
3796 | - <listitem> |
3797 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>ping-int</secondary></indexterm> |
3798 | -If the TCP/IP connection linking a DRBD device pair is idle for more than |
3799 | -<replaceable>time</replaceable> seconds, DRBD will generate a keep-alive |
3800 | -packet to check if its partner is still alive. The default is 10 seconds, |
3801 | -the unit is 1 second. |
3802 | - </para> |
3803 | - </listitem> |
3804 | - </varlistentry> |
3805 | - <varlistentry> |
3806 | - <term> |
3807 | - <option>ping-timeout <replaceable>time</replaceable></option> |
3808 | - </term> |
3809 | - <listitem> |
3810 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>ping-timeout</secondary></indexterm> |
3811 | - The time the peer has time to answer to a keep-alive packet. In case |
3812 | - the peer's reply is not received within this time period, it is |
3813 | - considered as dead. The default value is 500ms, the default unit are tenths of a second. |
3814 | - </para> |
3815 | - </listitem> |
3816 | - </varlistentry> |
3817 | - <varlistentry> |
3818 | - <term> |
3819 | - <option>max-buffers <replaceable>number</replaceable></option> |
3820 | - </term> |
3821 | - <listitem> |
3822 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>max-buffers </secondary></indexterm> |
3823 | - Maximum number of requests to be allocated by DRBD. Unit is PAGE_SIZE, |
3824 | - which is 4 KiB on most systems. |
3825 | - The minimum is hard coded to 32 (=128 KiB). |
3826 | - For high-performance installations it might help if you |
3827 | - increase that number. These buffers are used to hold |
3828 | - data blocks while they are written to disk. |
3829 | - </para> |
3830 | - </listitem> |
3831 | - </varlistentry> |
3832 | - <varlistentry> |
3833 | - <term> |
3834 | - <option>ko-count <replaceable>number</replaceable></option> |
3835 | - </term> |
3836 | - <listitem> |
3837 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>ko-count </secondary></indexterm> |
3838 | - In case the secondary node fails to complete a single write |
3839 | - request for <replaceable>count</replaceable> times the |
3840 | - <replaceable>timeout</replaceable>, it is expelled from the |
3841 | - cluster. (I.e. the primary node goes into <option>StandAlone</option> mode.) |
3842 | - The default value is 0, which disables this feature. |
3843 | - </para> |
3844 | - </listitem> |
3845 | - </varlistentry> |
3846 | - <varlistentry> |
3847 | - <term> |
3848 | - <option>max-epoch-size <replaceable>number</replaceable></option> |
3849 | - </term> |
3850 | - <listitem> |
3851 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>max-epoch-size </secondary></indexterm> |
3852 | - The highest number of data blocks between two write barriers. |
3853 | - If you set this smaller than 10, you might decrease your performance. |
3854 | - </para> |
3855 | - </listitem> |
3856 | - </varlistentry> |
3857 | - <varlistentry> |
3858 | - <term> |
3859 | - <option>allow-two-primaries</option> |
3860 | - </term> |
3861 | - <listitem> |
3862 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>allow-two-primaries</secondary></indexterm> |
3863 | - With this option set you may assign the primary role to both nodes. You only should |
3864 | - use this option if you use a shared storage file system on top of |
3865 | - DRBD. At the time of writing the only ones are: OCFS2 and GFS. If you |
3866 | - use this option with any other file system, you are going to crash your |
3867 | - nodes and to corrupt your data! |
3868 | - </para> |
3869 | - </listitem> |
3870 | - </varlistentry> |
3871 | - <varlistentry> |
3872 | - <term> |
3873 | - <option>unplug-watermark <replaceable>number</replaceable></option> |
3874 | - </term> |
3875 | - <listitem> |
3876 | - <indexterm significance="normal"> |
3877 | - <primary>drbd.conf</primary> |
3878 | - <secondary>unplug-watermark </secondary> |
3879 | - </indexterm> |
3880 | - <para> When the number of pending write requests on the standby |
3881 | - (secondary) node exceeds the <option>unplug-watermark</option>, we trigger |
3882 | - the request processing of our backing storage device. |
3883 | - Some storage controllers deliver better performance with small |
3884 | - values, others deliver best performance when the value is set to |
3885 | - the same value as max-buffers. Minimum 16, default 128, maximum |
3886 | - 131072. |
3887 | - </para> |
3888 | - </listitem> |
3889 | - </varlistentry> |
3890 | - <varlistentry> |
3891 | - <term> |
3892 | - <option>cram-hmac-alg</option> |
3893 | - </term> |
3894 | - <listitem> |
3895 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>cram-hmac-alg</secondary></indexterm> |
3896 | - You need to specify the HMAC algorithm to enable peer authentication |
3897 | - at all. You are strongly encouraged to use peer authentication. The HMAC |
3898 | - algorithm will be used for the challenge response authentication |
3899 | - of the peer. You may specify any digest algorithm that is named in |
3900 | - <option>/proc/crypto</option>. |
3901 | - </para> |
3902 | - </listitem> |
3903 | - </varlistentry> |
3904 | - <varlistentry> |
3905 | - <term> |
3906 | - <option>shared-secret</option> |
3907 | - </term> |
3908 | - <listitem> |
3909 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>shared-secret</secondary></indexterm> |
3910 | - The shared secret used in peer authentication. May be up to 64 characters. |
3911 | - Note that peer authentication is disabled as long as no <option>cram-hmac-alg</option> |
3912 | - (see above) is specified. |
3913 | - </para> |
3914 | - </listitem> |
3915 | - </varlistentry> |
3916 | - <varlistentry> |
3917 | - <term> |
3918 | - <option>after-sb-0pri </option> |
3919 | - <replaceable>policy</replaceable> |
3920 | - </term> |
3921 | - <listitem> |
3922 | - <indexterm significance="normal"> |
3923 | - <primary>drbd.conf</primary> |
3924 | - <secondary>after-sb-0pri </secondary> |
3925 | - </indexterm> |
3926 | - <para> possible policies are: |
3927 | - </para> |
3928 | - <variablelist> |
3929 | - <varlistentry> |
3930 | - <term> |
3931 | - <option>disconnect</option> |
3932 | - </term> |
3933 | - <listitem> |
3934 | - <para> No automatic resynchronization, simply disconnect. |
3935 | - </para> |
3936 | - </listitem> |
3937 | - </varlistentry> |
3938 | - <varlistentry> |
3939 | - <term> |
3940 | - <option>discard-younger-primary</option> |
3941 | - </term> |
3942 | - <listitem> |
3943 | - <para> Auto sync from the node that was primary before the split-brain situation happened. |
3944 | - </para> |
3945 | - </listitem> |
3946 | - </varlistentry> |
3947 | - <varlistentry> |
3948 | - <term> |
3949 | - <option>discard-older-primary</option> |
3950 | - </term> |
3951 | - <listitem> |
3952 | - <para> Auto sync from the node that became primary as second during |
3953 | - the split-brain situation. |
3954 | - </para> |
3955 | - </listitem> |
3956 | - </varlistentry> |
3957 | - <varlistentry> |
3958 | - <term> |
3959 | - <option>discard-zero-changes</option> |
3960 | - </term> |
3961 | - <listitem> |
3962 | - <para> In case one node did not write anything since the split |
3963 | - brain became evident, sync from the node that wrote something |
3964 | - to the node that did not write anything. In case none wrote |
3965 | - anything this policy uses a random decision to perform |
3966 | - a "resync" of 0 blocks. In case both have written something |
3967 | - this policy disconnects the nodes. |
3968 | - </para> |
3969 | - </listitem> |
3970 | - </varlistentry> |
3971 | - <varlistentry> |
3972 | - <term> |
3973 | - <option>discard-least-changes</option> |
3974 | - </term> |
3975 | - <listitem> |
3976 | - <para> Auto sync from the node that touched more blocks during the |
3977 | - split brain situation. |
3978 | - </para> |
3979 | - </listitem> |
3980 | - </varlistentry> |
3981 | - <varlistentry> |
3982 | - <term> |
3983 | - <option>discard-node-NODENAME</option> |
3984 | - </term> |
3985 | - <listitem> |
3986 | - <para> Auto sync to the named node. |
3987 | - </para> |
3988 | - </listitem> |
3989 | - </varlistentry> |
3990 | - </variablelist> |
3991 | - </listitem> |
3992 | - </varlistentry> |
3993 | - <varlistentry> |
3994 | - <term> |
3995 | - <option>after-sb-1pri </option> |
3996 | - <replaceable>policy</replaceable> |
3997 | - </term> |
3998 | - <listitem> |
3999 | - <indexterm significance="normal"> |
4000 | - <primary>drbd.conf</primary> |
4001 | - <secondary>after-sb-1pri </secondary> |
4002 | - </indexterm> |
4003 | - <para> possible policies are: |
4004 | - </para> |
4005 | - <variablelist> |
4006 | - <varlistentry> |
4007 | - <term> |
4008 | - <option>disconnect</option> |
4009 | - </term> |
4010 | - <listitem> |
4011 | - <para> No automatic resynchronization, simply disconnect. |
4012 | - </para> |
4013 | - </listitem> |
4014 | - </varlistentry> |
4015 | - <varlistentry> |
4016 | - <term> |
4017 | - <option>consensus</option> |
4018 | - </term> |
4019 | - <listitem> |
4020 | - <para> Discard the version of the secondary if the outcome |
4021 | - of the <option>after-sb-0pri</option> algorithm would also |
4022 | - destroy the current secondary's data. Otherwise disconnect. |
4023 | - </para> |
4024 | - </listitem> |
4025 | - </varlistentry> |
4026 | - <varlistentry> |
4027 | - <term> |
4028 | - <option>violently-as0p</option> |
4029 | - </term> |
4030 | - <listitem> |
4031 | - <para> Always take the decision of the <option>after-sb-0pri</option> |
4032 | - algorithm, even if that causes an erratic change of |
4033 | - the primary's view of the data. This is only useful if |
4034 | - you use a one-node FS (i.e. not OCFS2 or GFS) with the |
4035 | - <option>allow-two-primaries</option> flag, <emphasis>AND</emphasis> if you really know what you |
4036 | - are doing. This is <emphasis>DANGEROUS and MAY CRASH YOUR MACHINE</emphasis> |
4037 | - if you have an FS mounted on the primary node. |
4038 | - </para> |
4039 | - </listitem> |
4040 | - </varlistentry> |
4041 | - <varlistentry> |
4042 | - <term> |
4043 | - <option>discard-secondary</option> |
4044 | - </term> |
4045 | - <listitem> |
4046 | - <para> Discard the secondary's version. |
4047 | - </para> |
4048 | - </listitem> |
4049 | - </varlistentry> |
4050 | - <varlistentry> |
4051 | - <term> |
4052 | - <option>call-pri-lost-after-sb</option> |
4053 | - </term> |
4054 | - <listitem> |
4055 | - <para> Always honor the outcome of the <option>after-sb-0pri |
4056 | - </option> algorithm. In case it decides the current |
4057 | - secondary has the right data, it calls the "pri-lost-after-sb" |
4058 | - handler on the current primary. |
4059 | - </para> |
4060 | - </listitem> |
4061 | - </varlistentry> |
4062 | - </variablelist> |
4063 | - </listitem> |
4064 | - </varlistentry> |
4065 | - <varlistentry> |
4066 | - <term> |
4067 | - <option>after-sb-2pri </option> |
4068 | - <replaceable>policy</replaceable> |
4069 | - </term> |
4070 | - <listitem> |
4071 | - <indexterm significance="normal"> |
4072 | - <primary>drbd.conf</primary> |
4073 | - <secondary>after-sb-2pri </secondary> |
4074 | - </indexterm> |
4075 | - <para> possible policies are: |
4076 | - </para> |
4077 | - <variablelist> |
4078 | - <varlistentry> |
4079 | - <term> |
4080 | - <option>disconnect</option> |
4081 | - </term> |
4082 | - <listitem> |
4083 | - <para> No automatic resynchronization, simply disconnect. |
4084 | - </para> |
4085 | - </listitem> |
4086 | - </varlistentry> |
4087 | - <varlistentry> |
4088 | - <term> |
4089 | - <option>violently-as0p</option> |
4090 | - </term> |
4091 | - <listitem> |
4092 | - <para> Always take the decision of the <option>after-sb-0pri</option> |
4093 | - algorithm, even if that causes an erratic change of |
4094 | - the primary's view of the data. This is only useful if |
4095 | - you use a one-node FS (i.e. not OCFS2 or GFS) with the |
4096 | - <option>allow-two-primaries</option> flag, <emphasis>AND</emphasis> if you really know what you |
4097 | - are doing. This is <emphasis>DANGEROUS and MAY CRASH YOUR MACHINE</emphasis> |
4098 | - if you have an FS mounted on the primary node. |
4099 | - </para> |
4100 | - </listitem> |
4101 | - </varlistentry> |
4102 | - <varlistentry> |
4103 | - <term> |
4104 | - <option>call-pri-lost-after-sb</option> |
4105 | - </term> |
4106 | - <listitem> |
4107 | - <para> Call the "pri-lost-after-sb" helper program on one of the |
4108 | - machines. This program is expected to reboot the |
4109 | - machine, i.e. make it secondary. |
4110 | - </para> |
4111 | - </listitem> |
4112 | - </varlistentry> |
4113 | - </variablelist> |
4114 | - </listitem> |
4115 | - </varlistentry> |
4116 | - <varlistentry> |
4117 | - <term> |
4118 | - <option>always-asbp</option> |
4119 | - </term> |
4120 | - <listitem> |
4121 | - <para> Normally the automatic after-split-brain policies are only |
4122 | - used if current states of the UUIDs do not indicate the |
4123 | - presence of a third node. |
4124 | - </para> |
4125 | - <para> With this option you request that the automatic |
4126 | - after-split-brain policies are used as long as the data |
4127 | - sets of the nodes are somehow related. This might cause |
4128 | - a full sync, if the UUIDs indicate the presence of a third |
4129 | - node. (Or double faults led to strange UUID sets.) |
4130 | - </para> |
4131 | - </listitem> |
4132 | - </varlistentry> |
4133 | - <varlistentry> |
4134 | - <term> |
4135 | - <option>rr-conflict </option> |
4136 | - <replaceable>policy</replaceable> |
4137 | - </term> |
4138 | - <listitem> |
4139 | - <indexterm significance="normal"> |
4140 | - <primary>drbd.conf</primary> |
4141 | - <secondary>rr-conflict </secondary> |
4142 | - </indexterm> |
4143 | - <para> This option helps to solve the cases when the outcome of the resync decision is |
4144 | - incompatible with the current role assignment in the cluster. |
4145 | - </para> |
4146 | - <variablelist> |
4147 | - <varlistentry> |
4148 | - <term> |
4149 | - <option>disconnect</option> |
4150 | - </term> |
4151 | - <listitem> |
4152 | - <para> No automatic resynchronization, simply disconnect. |
4153 | - </para> |
4154 | - </listitem> |
4155 | - </varlistentry> |
4156 | - <varlistentry> |
4157 | - <term> |
4158 | - <option>violently</option> |
4159 | - </term> |
4160 | - <listitem> |
4161 | - <para> Sync to the primary node is allowed, violating the |
4162 | - assumption that data on a block device are stable for one |
4163 | - of the nodes. <emphasis>Dangerous, do not use.</emphasis> |
4164 | - </para> |
4165 | - </listitem> |
4166 | - </varlistentry> |
4167 | - <varlistentry> |
4168 | - <term> |
4169 | - <option>call-pri-lost</option> |
4170 | - </term> |
4171 | - <listitem> |
4172 | - <para> Call the "pri-lost" helper program on one of the |
4173 | - machines. This program is expected to reboot the |
4174 | - machine, i.e. make it secondary. |
4175 | - </para> |
4176 | - </listitem> |
4177 | - </varlistentry> |
4178 | - </variablelist> |
4179 | - </listitem> |
4180 | - </varlistentry> |
4181 | - <varlistentry> |
4182 | - <term> |
4183 | - <option>data-integrity-alg </option> |
4184 | - <replaceable>alg</replaceable> |
4185 | - </term> |
4186 | - <listitem> |
4187 | - <indexterm significance="normal"> |
4188 | - <primary>drbd.conf</primary> |
4189 | - <secondary>data-integrity-alg</secondary> |
4190 | - </indexterm> |
4191 | - <para> DRBD can ensure the data integrity of the user's data on the network |
4192 | - by comparing hash values. Normally this is ensured by the 16 bit checksums |
4193 | - in the headers of TCP/IP packets.</para> |
4194 | - <para>This option can be set to any of the kernel's data digest algorithms. |
4195 | - In a typical kernel configuration you should have |
4196 | - at least one of <option>md5</option>, <option>sha1</option>, and <option>crc32c</option> |
4197 | - available. By default this is not enabled.</para> |
4198 | - <para>See also the notes on data integrity.</para> |
4199 | - </listitem> |
4200 | - </varlistentry> |
4201 | - <varlistentry> |
4202 | - <term> |
4203 | - <option>no-tcp-cork</option> |
4204 | - </term> |
4205 | - <listitem> |
4206 | - <indexterm significance="normal"> |
4207 | - <primary>drbd.conf</primary> |
4208 | - <secondary>no-tcp-cork</secondary> |
4209 | - </indexterm> |
4210 | - <para> DRBD usually uses the TCP socket option TCP_CORK to hint to the network |
4211 | - stack when it can expect more data, and when it should flush out what it |
4212 | - has in its send queue. It turned out that there is at least one network |
4213 | - stack that performs worse when one uses this hinting method. Therefore |
4214 | - we introducted this option, which disables the setting and clearing of |
4215 | - the TCP_CORK socket option by DRBD.</para> |
4216 | - </listitem> |
4217 | - </varlistentry> |
4218 | - <varlistentry> |
4219 | - <term> |
4220 | - <option>on-congestion <replaceable>congestion_policy</replaceable></option> |
4221 | - </term> |
4222 | - <term> |
4223 | - <option>congestion-fill <replaceable>fill_threshold</replaceable></option> |
4224 | - </term> |
4225 | - <term> |
4226 | - <option>congestion-extents <replaceable>active_extents_threshold</replaceable></option> |
4227 | - </term> |
4228 | - <listitem> |
4229 | - <para>By default DRBD blocks when the available TCP send queue becomes full. |
4230 | - That means it will slow down the application that generates the write |
4231 | - requests that cause DRBD to send more data down that TCP connection. |
4232 | - </para> |
4233 | - <para>When DRBD is deployed with DRBD-proxy it might be more desirable that |
4234 | - DRBD goes into AHEAD/BEHIND mode shortly before the send queue becomes full. |
4235 | - In AHEAD/BEHIND mode DRBD does no longer replicate data, but still keeps |
4236 | - the connection open.</para> |
4237 | - <para>The advantage of the AHEAD/BEHIND mode is that the |
4238 | - application is not slowed down, even if DRBD-proxy's buffer is |
4239 | - not sufficient to buffer all write requests. The downside is that |
4240 | - the peer node falls behind, and that a resync will be necessary to |
4241 | - bring it back into sync. During that resync the peer node will have |
4242 | - an inconsistent disk. </para> |
4243 | - <para>Available <replaceable>congestion_policy</replaceable>s are <option>block</option> |
4244 | - and <option>pull-ahead</option>. The default is <option>block</option>. |
4245 | - <replaceable>Fill_threshold</replaceable> might be in the range of 0 to 10GiBytes. The |
4246 | - default is 0 which disables the check. <replaceable>Active_extents_threshold</replaceable> |
4247 | - has the same limits as <option>al-extents</option>.</para> |
4248 | - <para>The AHEAD/BEHIND mode and its settings are available since DRBD 8.3.10.</para> |
4249 | - </listitem> |
4250 | - </varlistentry> |
4251 | - <varlistentry> |
4252 | - <term> |
4253 | - <option>wfc-timeout <replaceable>time</replaceable></option> |
4254 | - </term> |
4255 | - <listitem> |
4256 | - <para>Wait for connection timeout. |
4257 | - <indexterm significance="normal"><primary>drbd.conf</primary><secondary>wfc-timeout </secondary></indexterm> |
4258 | - The init script <citerefentry><refentrytitle>drbd</refentrytitle><manvolnum>8</manvolnum></citerefentry> blocks the boot process |
4259 | - until the DRBD resources are connected. |
4260 | - When the cluster manager starts later, |
4261 | - it does not see a resource with internal split-brain. |
4262 | - In case you want to limit the wait time, do it here. |
4263 | - Default is 0, which means unlimited. The unit is seconds. |
4264 | - </para> |
4265 | - </listitem> |
4266 | - </varlistentry> |
4267 | - <varlistentry> |
4268 | - <term> |
4269 | - <option>degr-wfc-timeout <replaceable>time</replaceable></option> |
4270 | - </term> |
4271 | - <listitem> |
4272 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>degr-wfc-timeout </secondary></indexterm> |
4273 | - Wait for connection timeout, if this node was a degraded cluster. |
4274 | - In case a degraded cluster (= cluster with only one node left) |
4275 | - is rebooted, this timeout value is used instead of wfc-timeout, |
4276 | - because the peer is less likely to show up in time, |
4277 | - if it had been dead before. Value 0 means unlimited. |
4278 | - </para> |
4279 | - </listitem> |
4280 | - </varlistentry> |
4281 | - <varlistentry> |
4282 | - <term> |
4283 | - <option>outdated-wfc-timeout <replaceable>time</replaceable></option> |
4284 | - </term> |
4285 | - <listitem> |
4286 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>outdated-wfc-timeout </secondary></indexterm> |
4287 | - Wait for connection timeout, if the peer was outdated. |
4288 | - In case a degraded cluster (= cluster with only one node left) |
4289 | - with an outdated peer disk is rebooted, this timeout value is used instead of wfc-timeout, |
4290 | - because the peer is not allowed to become primary in the meantime. |
4291 | - Value 0 means unlimited. |
4292 | - </para> |
4293 | - </listitem> |
4294 | - </varlistentry> |
4295 | - <varlistentry> |
4296 | - <term> |
4297 | - <option>wait-after-sb</option> |
4298 | - </term> |
4299 | - <listitem> |
4300 | - <para> By setting this option you can make the init script to continue |
4301 | - to wait even if the device pair had a split brain situation |
4302 | - and therefore refuses to connect. |
4303 | - </para> |
4304 | - </listitem> |
4305 | - </varlistentry> |
4306 | - <varlistentry> |
4307 | - <term> |
4308 | - <option>become-primary-on <replaceable>node-name</replaceable></option> |
4309 | - </term> |
4310 | - <listitem> |
4311 | - <para> Sets on which node the device should be promoted to primary role by |
4312 | - the init script. The <replaceable>node-name</replaceable> might either |
4313 | - be a host name or the keyword <option>both</option>. When this option is |
4314 | - not set the devices stay in secondary role on both nodes. Usually |
4315 | - one delegates the role assignment to a cluster manager (e.g. heartbeat). |
4316 | - </para> |
4317 | - </listitem> |
4318 | - </varlistentry> |
4319 | - <varlistentry> |
4320 | - <term> |
4321 | - <option>stacked-timeouts</option> |
4322 | - </term> |
4323 | - <listitem> |
4324 | - <para> Usually <option>wfc-timeout</option> and <option>degr-wfc-timeout</option> are |
4325 | - ignored for stacked devices, instead twice the amount of <option>connect-int</option> |
4326 | - is used for the connection timeouts. |
4327 | - With the <option>stacked-timeouts</option> keyword you disable this, and force |
4328 | - DRBD to mind the <option>wfc-timeout</option> and <option>degr-wfc-timeout</option> |
4329 | - statements. Only do that if the peer of the stacked resource is usually not |
4330 | - available or will usually not become primary. |
4331 | - By using this option incorrectly, you run the risk of causing unexpected split brain. |
4332 | - </para> |
4333 | - </listitem> |
4334 | - </varlistentry> |
4335 | - <varlistentry> |
4336 | - <term> |
4337 | - <option>rate <replaceable>rate</replaceable></option> |
4338 | - </term> |
4339 | - <listitem> |
4340 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>rate </secondary></indexterm> |
4341 | - To ensure a smooth operation of the application on top of DRBD, |
4342 | - it is possible to limit the bandwidth which may be used by |
4343 | - background synchronizations. The default is 250 KB/sec, the |
4344 | - default unit is KB/sec. Optional suffixes K, M, G are allowed. |
4345 | - </para> |
4346 | - </listitem> |
4347 | - </varlistentry> |
4348 | - <varlistentry> |
4349 | - <term> |
4350 | - <option>use-rle</option> |
4351 | - </term> |
4352 | - <listitem> |
4353 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>use-rle </secondary></indexterm> |
4354 | - During resync-handshake, the dirty-bitmaps of the nodes are exchanged and |
4355 | - merged (using bit-or), so the nodes will have the same understanding of |
4356 | - which blocks are dirty. On large devices, the fine grained dirty-bitmap can |
4357 | - become large as well, and the bitmap exchange can take quite some time on |
4358 | - low-bandwidth links. |
4359 | - </para> |
4360 | - <para> Because the bitmap typically contains compact areas where |
4361 | - all bits are unset (clean) or set (dirty), a simple run-length |
4362 | - encoding scheme can considerably reduce the network traffic |
4363 | - necessary for the bitmap exchange. |
4364 | - </para> |
4365 | - <para> For backward compatibilty reasons, and because on fast |
4366 | - links this possibly does not improve transfer time but |
4367 | - consumes cpu cycles, this defaults to off. |
4368 | - </para> |
4369 | - </listitem> |
4370 | - </varlistentry> |
4371 | - <varlistentry> |
4372 | - <term> |
4373 | - <option>after <replaceable>res-name</replaceable></option> |
4374 | - </term> |
4375 | - <listitem> |
4376 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>after </secondary></indexterm> |
4377 | - By default, resynchronization of all devices would run in parallel. |
4378 | - By defining a sync-after dependency, the resynchronization of this |
4379 | - resource will start only if the resource <replaceable>res-name</replaceable> |
4380 | - is already in connected state (i.e., has finished its resynchronization). |
4381 | - </para> |
4382 | - </listitem> |
4383 | - </varlistentry> |
4384 | - <varlistentry> |
4385 | - <term> |
4386 | - <option>al-extents <replaceable>extents</replaceable></option> |
4387 | - </term> |
4388 | - <listitem> |
4389 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>al-extents </secondary></indexterm> |
4390 | - DRBD automatically performs hot area detection. With this |
4391 | - parameter you control how big the hot area (= active set) can |
4392 | - get. Each extent marks 4M of the backing storage (= low-level device). |
4393 | - In case a primary node leaves the cluster unexpectedly, the areas covered |
4394 | - by the active set must be resynced upon rejoining of the failed |
4395 | - node. The data structure is stored in the meta-data area, therefore each |
4396 | - change of the active set is a write operation |
4397 | - to the meta-data device. A higher number of extents gives |
4398 | - longer resync times but less updates to the meta-data. The |
4399 | - default number of <replaceable>extents</replaceable> is |
4400 | - 127. (Minimum: 7, Maximum: 3843) |
4401 | - </para> |
4402 | - </listitem> |
4403 | - </varlistentry> |
4404 | - <varlistentry> |
4405 | - <term> |
4406 | - <option>verify-alg <replaceable>hash-alg</replaceable></option> |
4407 | - </term> |
4408 | - <listitem> |
4409 | - <para>During online verification (as initiated by the |
4410 | - <command moreinfo="none">verify</command> sub-command), |
4411 | - rather than doing a bit-wise comparison, DRBD applies a hash function |
4412 | - to the contents of every block being verified, and compares that |
4413 | - hash with the peer. This option defines the hash algorithm being |
4414 | - used for that purpose. It can be set to any of the kernel's data |
4415 | - digest algorithms. In a typical kernel configuration you should have |
4416 | - at least one of <option>md5</option>, <option>sha1</option>, and <option>crc32c</option> |
4417 | - available. By default this is not enabled; you must set this |
4418 | - option explicitly in order to be able to use on-line device verification.</para> |
4419 | - <para>See also the notes on data integrity.</para> |
4420 | - </listitem> |
4421 | - </varlistentry> |
4422 | - <varlistentry> |
4423 | - <term> |
4424 | - <option>csums-alg <replaceable>hash-alg</replaceable></option> |
4425 | - </term> |
4426 | - <listitem> |
4427 | - <para>A resync process sends all marked data blocks from the source to |
4428 | - the destination node, as long as no <option>csums-alg</option> is |
4429 | - given. When one is specified the resync process exchanges hash values of all |
4430 | - marked blocks first, and sends only those data blocks that have different |
4431 | - hash values.</para> |
4432 | - <para>This setting is useful for DRBD setups with low bandwidth links. |
4433 | - During the restart of a crashed primary node, all blocks covered by the |
4434 | - activity log are marked for resync. But a large part of those will actually |
4435 | - be still in sync, therefore using <option>csums-alg</option> will lower |
4436 | - the required bandwidth in exchange for CPU cycles.</para> |
4437 | - </listitem> |
4438 | - </varlistentry> |
4439 | - <varlistentry> |
4440 | - <term> |
4441 | - <option>c-plan-ahead <replaceable>plan_time</replaceable></option> |
4442 | - </term> |
4443 | - <term> |
4444 | - <option>c-fill-target <replaceable>fill_target</replaceable></option> |
4445 | - </term> |
4446 | - <term> |
4447 | - <option>c-delay-target <replaceable>delay_target</replaceable></option> |
4448 | - </term> |
4449 | - <term> |
4450 | - <option>c-max-rate <replaceable>max_rate</replaceable></option> |
4451 | - </term> |
4452 | - <listitem> |
4453 | - <para>The dynamic resync speed controller gets enabled with setting |
4454 | - <replaceable>plan_time</replaceable> to a positive value. It aims to |
4455 | - fill the buffers along the data path with either a constant amount of data |
4456 | - <replaceable>fill_target</replaceable>, or aims to have a constant |
4457 | - delay time of <replaceable>delay_target</replaceable> along the |
4458 | - path. The controller has an upper bound of <replaceable>max_rate</replaceable>. |
4459 | - </para> |
4460 | - <para> |
4461 | - By <replaceable>plan_time</replaceable> the agility of the controller is configured. |
4462 | - Higher values yield for slower/lower responses of the controller to deviation |
4463 | - from the target value. It should be at least 5 times RTT. |
4464 | - For regular data paths a <replaceable>fill_target</replaceable> |
4465 | - in the area of 4k to 100k is appropriate. For a setup that contains drbd-proxy |
4466 | - it is advisable to use <replaceable>delay_target</replaceable> instead. |
4467 | - Only when <replaceable>fill_target</replaceable> is set to 0 the controller |
4468 | - will use <replaceable>delay_target</replaceable>. 5 times RTT is a reasonable |
4469 | - starting value. <replaceable>Max_rate</replaceable> should be set to the |
4470 | - bandwidth available between the DRBD-hosts and the machines hosting |
4471 | - DRBD-proxy, or to the available disk-bandwidth. |
4472 | - </para> |
4473 | - <para> |
4474 | - The default value of <replaceable>plan_time</replaceable> is 0, the default unit is |
4475 | - 0.1 seconds. <replaceable>Fill_target</replaceable> has 0 and sectors as default unit. |
4476 | - <replaceable>Delay_target</replaceable> has 1 (100ms) and 0.1 as default unit. |
4477 | - <replaceable>Max_rate</replaceable> has 10240 (100MiB/s) and KiB/s as default unit. |
4478 | - </para> |
4479 | - <para> |
4480 | - The dynamic resync speed controller and its settings are available since DRBD 8.3.9. |
4481 | - </para> |
4482 | - </listitem> |
4483 | - </varlistentry> |
4484 | - <varlistentry> |
4485 | - <term> |
4486 | - <option>c-min-rate <replaceable>min_rate</replaceable></option> |
4487 | - </term> |
4488 | - <listitem> |
4489 | - <para>A node that is primary and sync-source has to schedule application |
4490 | - IO requests and resync IO requests. The <replaceable>min_rate</replaceable> |
4491 | - tells DRBD use only up to min_rate for resync IO and to dedicate all |
4492 | - other available IO bandwidth to application requests.</para> |
4493 | - <para>Note: The value 0 has a special meaning. It disables the limitation |
4494 | - of resync IO completely, which might slow down application IO considerably. |
4495 | - Set it to a value of 1, if you prefer that resync IO never slows down |
4496 | - application IO. |
4497 | - </para> |
4498 | - <para>Note: Although the name might suggest that it is a lower bound for the |
4499 | - dynamic resync speed controller, it is not. If the DRBD-proxy buffer is full, |
4500 | - the dynamic resync speed controller is free to lower the resync speed down |
4501 | - to 0, completely independent of the <option>c-min-rate</option> setting. |
4502 | - </para> |
4503 | - <para> |
4504 | - <replaceable>Min_rate</replaceable> has 4096 (4MiB/s) and KiB/s as default unit. |
4505 | - </para> |
4506 | - </listitem> |
4507 | - </varlistentry> |
4508 | - <varlistentry> |
4509 | - <term> |
4510 | - <option>on-no-data-accessible <replaceable>ond-policy</replaceable></option> |
4511 | - </term> |
4512 | - <listitem> |
4513 | - <para>This setting controls what happens to IO requests on a degraded, disk less node |
4514 | - (I.e. no data store is reachable). The available policies are <option>io-error</option> |
4515 | - and <option>suspend-io</option>.</para> |
4516 | - <para> |
4517 | - If <replaceable>ond-policy</replaceable> is set to <option>suspend-io</option> you |
4518 | - can either resume IO by attaching/connecting the last lost data storage, or by |
4519 | - the <command moreinfo="none">drbdadm resume-io <replaceable>res</replaceable></command> |
4520 | - command. The latter will result in IO errors of course. |
4521 | - </para> |
4522 | - <para> |
4523 | - The default is <option>io-error</option>. This setting is available since DRBD 8.3.9. |
4524 | - </para> |
4525 | - </listitem> |
4526 | - </varlistentry> |
4527 | - <varlistentry> |
4528 | - <term> |
4529 | - <option>cpu-mask <replaceable>cpu-mask</replaceable></option> |
4530 | - </term> |
4531 | - <listitem> |
4532 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>cpu-mask </secondary></indexterm> |
4533 | - Sets the cpu-affinity-mask for DRBD's kernel threads of this device. The |
4534 | - default value of <replaceable>cpu-mask</replaceable> is 0, which means |
4535 | - that DRBD's kernel threads should be spread over all CPUs of the machine. |
4536 | - This value must be given in hexadecimal notation. If it is too big it will |
4537 | - be truncated. |
4538 | - </para> |
4539 | - </listitem> |
4540 | - </varlistentry> |
4541 | - <varlistentry> |
4542 | - <term> |
4543 | - <option>pri-on-incon-degr <replaceable>cmd</replaceable></option> |
4544 | - </term> |
4545 | - <listitem> |
4546 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>pri-on-incon-degr </secondary></indexterm> |
4547 | - This handler is called if the node is primary, degraded |
4548 | - and if the local copy of the data is inconsistent.</para> |
4549 | - </listitem> |
4550 | - </varlistentry> |
4551 | - <varlistentry> |
4552 | - <term> |
4553 | - <option>pri-lost-after-sb <replaceable>cmd</replaceable></option> |
4554 | - </term> |
4555 | - <listitem> |
4556 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>pri-lost-after-sb </secondary></indexterm> |
4557 | - The node is currently primary, but lost the after-split-brain |
4558 | - auto recovery procedure. As as consequence, it should be abandoned. |
4559 | - </para> |
4560 | - </listitem> |
4561 | - </varlistentry> |
4562 | - <varlistentry> |
4563 | - <term> |
4564 | - <option>pri-lost <replaceable>cmd</replaceable></option> |
4565 | - </term> |
4566 | - <listitem> |
4567 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>pri-lost </secondary></indexterm> |
4568 | - The node is currently primary, but DRBD's algorithm |
4569 | - thinks that it should become sync target. As a consequence it should |
4570 | - give up its primary role. |
4571 | - </para> |
4572 | - </listitem> |
4573 | - </varlistentry> |
4574 | - <varlistentry> |
4575 | - <term> |
4576 | - <option>fence-peer <replaceable>cmd</replaceable></option> |
4577 | - </term> |
4578 | - <listitem> |
4579 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>fence-peer </secondary></indexterm> |
4580 | - The handler is part of the <option>fencing</option> |
4581 | - mechanism. This handler is called in case the node needs to fence the |
4582 | - peer's disk. It should use other communication paths than DRBD's network |
4583 | - link. </para> |
4584 | - </listitem> |
4585 | - </varlistentry> |
4586 | - <varlistentry> |
4587 | - <term> |
4588 | - <option>local-io-error <replaceable>cmd</replaceable></option> |
4589 | - </term> |
4590 | - <listitem> |
4591 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>local-io-error </secondary></indexterm> |
4592 | - DRBD got an IO error from the local IO subsystem. |
4593 | - </para> |
4594 | - </listitem> |
4595 | - </varlistentry> |
4596 | - <varlistentry> |
4597 | - <term> |
4598 | - <option>initial-split-brain <replaceable>cmd</replaceable></option> |
4599 | - </term> |
4600 | - <listitem> |
4601 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>initial-split-brain </secondary></indexterm> |
4602 | - DRBD has connected and detected a split brain situation. |
4603 | - This handler can alert someone in all cases of split brain, not just |
4604 | - those that go unresolved. |
4605 | - </para> |
4606 | - </listitem> |
4607 | - </varlistentry> |
4608 | - <varlistentry> |
4609 | - <term> |
4610 | - <option>split-brain <replaceable>cmd</replaceable></option> |
4611 | - </term> |
4612 | - <listitem> |
4613 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>split-brain </secondary></indexterm> |
4614 | - DRBD detected a split brain situation but remains unresolved. |
4615 | - Manual recovery is necessary. This handler should alert someone on duty. |
4616 | - </para> |
4617 | - </listitem> |
4618 | - </varlistentry> |
4619 | - <varlistentry> |
4620 | - <term> |
4621 | - <option>before-resync-target <replaceable>cmd</replaceable></option> |
4622 | - </term> |
4623 | - <listitem> |
4624 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>before-resync-target </secondary></indexterm> |
4625 | - DRBD calls this handler just before a resync begins on the node |
4626 | - that becomes resync target. It might be used to take a snapshot of the |
4627 | - backing block device. |
4628 | - </para> |
4629 | - </listitem> |
4630 | - </varlistentry> |
4631 | - <varlistentry> |
4632 | - <term> |
4633 | - <option>after-resync-target <replaceable>cmd</replaceable></option> |
4634 | - </term> |
4635 | - <listitem> |
4636 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>after-resync-target </secondary></indexterm> |
4637 | - DRBD calls this handler just after a resync operation finished on the |
4638 | - node whose disk just became consistent after being inconsistent for the |
4639 | - duration of the resync. It might be used to remove a snapshot of the backing device |
4640 | - that was created by the <option>before-resync-target</option> handler. |
4641 | - </para> |
4642 | - </listitem> |
4643 | - </varlistentry> |
4644 | - </variablelist> |
4645 | - </refsect2> |
4646 | - <refsect2> |
4647 | - <title>Other Keywords</title> |
4648 | - <variablelist> |
4649 | - <varlistentry> |
4650 | - <term> |
4651 | - <option>include <replaceable>file-pattern</replaceable></option> |
4652 | - </term> |
4653 | - <listitem> |
4654 | - <para><indexterm significance="normal"><primary>drbd.conf</primary><secondary>include</secondary></indexterm> |
4655 | - Include all files matching the wildcard pattern <replaceable>file-pattern</replaceable>. |
4656 | - The <option>include</option> statement |
4657 | - is only allowed on the top level, i.e. it is not allowed inside any section. |
4658 | - </para> |
4659 | - </listitem> |
4660 | - </varlistentry> |
4661 | - </variablelist> |
4662 | - </refsect2> |
4663 | - </refsect1> |
4664 | - <refsect1 id="data-integrity"> |
4665 | - <title>Notes on data integrity</title> |
4666 | - <para>There are two independent methods in DRBD to ensure the integrity of |
4667 | -the mirrored data. The online-verify mechanism and the <option>data-integrity-alg</option> |
4668 | -of the <option>network</option> section.</para> |
4669 | - <para>Both mechanisms might deliver false positives if the user of DRBD modifies the |
4670 | -data which gets written to disk while the transfer goes on. This may happen for |
4671 | -swap, or for certain append while global sync, or truncate/rewrite workloads, |
4672 | -and not necessarily poses a problem for the integrity of the data. |
4673 | -Usually when the initiator of the data transfer does this, it already knows that |
4674 | -that data block will not be part of an on disk data structure, or will be resubmitted |
4675 | -with correct data soon enough.</para> |
4676 | -<para>The <option>data-integrity-alg</option> causes the receiving side to log |
4677 | -an error about "Digest integrity check FAILED: Ns +x\n", where N is the sector |
4678 | -offset, and x is the size of the requst in bytes. It will then disconnect, and |
4679 | -reconnect, thus causing a quick resync. If the sending side at the same time |
4680 | -detected a modification, it warns about "Digest mismatch, buffer modified by |
4681 | -upper layers during write: Ns +x\n", which shows that this was a false positive. |
4682 | -The sending side may detect these buffer modifications immediately after the |
4683 | -unmodified data has been copied to the tcp buffers, in which case the receiving |
4684 | -side won't notice it.</para> |
4685 | - <para>The most recent (2007) example of systematic corruption was an |
4686 | -issue with the TCP offloading engine and the driver of a certain type |
4687 | -of GBit NIC. The actual corruption happened on the DMA transfer from |
4688 | -core memory to the card. Since the TCP checksum gets calculated on the card, |
4689 | -this type of corruption stays undetected as long as you do not use |
4690 | -either the online <option>verify</option> or the <option>data-integrity-alg</option>.</para> |
4691 | - <para>We suggest to use the <option>data-integrity-alg</option> only during a |
4692 | -pre-production phase due to its CPU costs. Further we suggest to do online |
4693 | -<option>verify</option> runs regularly e.g. once a month during a low load period.</para> |
4694 | - </refsect1> |
4695 | - <refsect1> |
4696 | - <title>Version</title> |
4697 | - <simpara>This document was revised for version 8.3.2 of the DRBD distribution.</simpara> |
4698 | - </refsect1> |
4699 | - <refsect1> |
4700 | - <title>Author</title> |
4701 | - <simpara>Written by Philipp Reisner <email>philipp.reisner@linbit.com</email> |
4702 | - and Lars Ellenberg <email>lars.ellenberg@linbit.com</email>.</simpara> |
4703 | - </refsect1> |
4704 | - <refsect1> |
4705 | - <title>Reporting Bugs</title> |
4706 | - <simpara>Report bugs to <email>drbd-user@lists.linbit.com</email>.</simpara> |
4707 | - </refsect1> |
4708 | - <refsect1> |
4709 | - <title>Copyright</title> |
4710 | - <simpara>Copyright 2001-2008 LINBIT Information Technologies, |
4711 | -Philipp Reisner, Lars Ellenberg. This is free software; |
4712 | -see the source for copying conditions. There is NO warranty; |
4713 | -not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</simpara> |
4714 | - </refsect1> |
4715 | - <refsect1> |
4716 | - <title>See Also</title> |
4717 | - <para><citerefentry><refentrytitle>drbd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, |
4718 | - <citerefentry><refentrytitle>drbddisk</refentrytitle><manvolnum>8</manvolnum></citerefentry>, |
4719 | - <citerefentry><refentrytitle>drbdsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>, |
4720 | - <citerefentry><refentrytitle>drbdadm</refentrytitle><manvolnum>8</manvolnum></citerefentry>, |
4721 | - <ulink url="http://www.drbd.org/users-guide/"><citetitle>DRBD User's Guide</citetitle></ulink>, |
4722 | - <ulink url="http://www.drbd.org/"><citetitle>DRBD web site</citetitle></ulink></para> |
4723 | - </refsect1> |
4724 | -</refentry> |
4725 | |
4726 | === modified file 'documentation/drbdadm.8' |
4727 | --- documentation/drbdadm.8 2011-01-24 15:36:33 +0000 |
4728 | +++ documentation/drbdadm.8 2012-11-21 23:20:34 +0000 |
4729 | @@ -1,7 +1,7 @@ |
4730 | '\" t |
4731 | .\" Title: drbdadm |
4732 | .\" Author: [see the "Author" section] |
4733 | -.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> |
4734 | +.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> |
4735 | .\" Date: 5 Dec 2008 |
4736 | .\" Manual: System Administration |
4737 | .\" Source: DRBD 8.3.2 |
4738 | @@ -197,6 +197,21 @@ |
4739 | The |
4740 | \fB\-\-assume\-peer\-has\-space\fR |
4741 | allows you to resize a device which is currently not connected to the peer\&. Use with care, since if you do not resize the peer\*(Aqs disk as well, further connect attempts of the two will fail\&. |
4742 | +.sp |
4743 | +The |
4744 | +\fB\-\-assume\-clean\fR |
4745 | +allows you to resize an existing device and avoid syncing the new space\&. This is useful when adding addtional blank storage to your device\&. Example: |
4746 | +.sp |
4747 | +.if n \{\ |
4748 | +.RS 4 |
4749 | +.\} |
4750 | +.nf |
4751 | +# drbdadm \-\- \-\-assume\-clean resize r0 |
4752 | +.fi |
4753 | +.if n \{\ |
4754 | +.RE |
4755 | +.\} |
4756 | +.sp |
4757 | .RE |
4758 | .PP |
4759 | check\-resize |
4760 | |
4761 | === added file 'documentation/drbdadm.xml' |
4762 | --- documentation/drbdadm.xml 1970-01-01 00:00:00 +0000 |
4763 | +++ documentation/drbdadm.xml 2012-11-21 23:20:34 +0000 |
4764 | @@ -0,0 +1,486 @@ |
4765 | +<?xml version="1.0"?> |
4766 | +<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> |
4767 | +<refentry id="re-drbdadm"> |
4768 | + <refentryinfo> |
4769 | + <date>5 Dec 2008</date> |
4770 | + <productname>DRBD</productname> |
4771 | + <productnumber>8.3.2</productnumber> |
4772 | + </refentryinfo> |
4773 | + <refmeta> |
4774 | + <refentrytitle>drbdadm</refentrytitle> |
4775 | + <manvolnum>8</manvolnum> |
4776 | + <refmiscinfo class="manual">System Administration</refmiscinfo> |
4777 | + </refmeta> |
4778 | + <refnamediv> |
4779 | + <refname>drbdadm</refname> |
4780 | + <refpurpose>Administration tool for DRBD |
4781 | + <indexterm significance="normal"> |
4782 | + <primary>drbdadm</primary> |
4783 | + </indexterm> |
4784 | + </refpurpose> |
4785 | + </refnamediv> |
4786 | + <refsynopsisdiv> |
4787 | + <cmdsynopsis sepchar=" "> |
4788 | + <command moreinfo="none">drbdadm</command> |
4789 | + <arg choice="opt" rep="norepeat">-d</arg> |
4790 | + <arg choice="opt" rep="norepeat">-c<arg choice="req" rep="norepeat"><replaceable>file</replaceable></arg></arg> |
4791 | + <arg choice="opt" rep="norepeat">-t<arg choice="req" rep="norepeat"><replaceable>file</replaceable></arg></arg> |
4792 | + <arg choice="opt" rep="norepeat">-s<arg choice="req" rep="norepeat"><replaceable>cmd</replaceable></arg></arg> |
4793 | + <arg choice="opt" rep="norepeat">-m<arg choice="req" rep="norepeat"><replaceable>cmd</replaceable></arg></arg> |
4794 | + <arg choice="opt" rep="norepeat">-S</arg> |
4795 | + <arg choice="opt" rep="norepeat">-h<arg choice="req" rep="norepeat"><replaceable>host</replaceable></arg></arg> |
4796 | + <arg choice="opt" rep="norepeat">--<arg choice="req" rep="norepeat"><replaceable>backend-options</replaceable></arg></arg> |
4797 | + <arg choice="req" rep="norepeat"> |
4798 | + <replaceable>command</replaceable> |
4799 | + </arg> |
4800 | + <group choice="opt" rep="norepeat"> |
4801 | + <arg choice="plain" rep="norepeat">all</arg> |
4802 | + <arg choice="plain" rep="repeat"> |
4803 | + <replaceable>resource</replaceable> |
4804 | + </arg> |
4805 | + </group> |
4806 | + </cmdsynopsis> |
4807 | + </refsynopsisdiv> |
4808 | + <refsect1> |
4809 | + <title>Description</title> |
4810 | + <para> <option>Drbdadm</option> is the high level tool of the DRBD program suite. <option>Drbdadm</option> is to |
4811 | + <option>drbdsetup</option> and <option>drbdmeta</option> what <option>ifup</option>/<option>ifdown</option> is to <option>ifconfig</option>. <option>Drbdadm</option> reads its |
4812 | + configuration file and performs the specified commands by calling the |
4813 | + <option>drbdsetup</option> and/or the <option>drbdmeta</option> program. |
4814 | + </para> |
4815 | + </refsect1> |
4816 | + <refsect1> |
4817 | + <title>Options</title> |
4818 | + <variablelist> |
4819 | + <varlistentry> |
4820 | + <term><option>-d</option>, <option>--dry-run</option></term> |
4821 | + <listitem> |
4822 | + <para> Just prints the calls of <option>drbdsetup</option> to stdout, but does not run |
4823 | + the commands. |
4824 | + </para> |
4825 | + </listitem> |
4826 | + </varlistentry> |
4827 | + <varlistentry> |
4828 | + <term><option>-c</option>, <option>--config-file</option> <replaceable>file</replaceable></term> |
4829 | + <listitem> |
4830 | + <para> Specifies the configuration file drbdadm will use. If this parameter |
4831 | + is not specified, drbdadm will look for <option>/etc/drbd-83.conf</option>, |
4832 | + <option>/etc/drbd-08.conf</option> and <option>/etc/drbd.conf</option>. |
4833 | + </para> |
4834 | + </listitem> |
4835 | + </varlistentry> |
4836 | + |
4837 | + <varlistentry> |
4838 | + <term><option>-t</option>, <option>--config-to-test</option> <replaceable>file</replaceable></term> |
4839 | + <listitem> |
4840 | + <para> Specifies an additional configuration file drbdadm to check. This option |
4841 | + is only allowed with the dump and the sh-nop commands. |
4842 | + </para> |
4843 | + </listitem> |
4844 | + </varlistentry> |
4845 | + |
4846 | + <varlistentry> |
4847 | + <term><option>-s</option>, <option>--drbdsetup</option> <replaceable>file</replaceable></term> |
4848 | + <listitem> |
4849 | + <para> Specifies the full path to the <option>drbdsetup</option> program. If this option is |
4850 | + omitted, drbdadm will look for <option>/sbin/drbdsetup</option> and <option>./drbdsetup</option>. |
4851 | + </para> |
4852 | + </listitem> |
4853 | + </varlistentry> |
4854 | + <varlistentry> |
4855 | + <term><option>-m</option>, <option>--drbdmeta</option> <replaceable>file</replaceable></term> |
4856 | + <listitem> |
4857 | + <para> Specifies the full path to the <option>drbdmeta</option> program. If this option is |
4858 | + omitted, drbdadm will look for <option>/sbin/drbdmeta</option> and |
4859 | + <option>./drbdmeta</option>. |
4860 | + </para> |
4861 | + </listitem> |
4862 | + </varlistentry> |
4863 | + <varlistentry> |
4864 | + <term><option>-S</option>, <option>--stacked</option></term> |
4865 | + <listitem> |
4866 | + <para> Specifies that this command should be performed on a stacked resource. |
4867 | + </para> |
4868 | + </listitem> |
4869 | + </varlistentry> |
4870 | + <varlistentry> |
4871 | + <term><option>-P</option>, <option>--peer</option></term> |
4872 | + <listitem> |
4873 | + <para> Specifies to which peer node to connect. Only necessary if there are |
4874 | + more than two host sections in the resource you are working on. |
4875 | + </para> |
4876 | + </listitem> |
4877 | + </varlistentry> |
4878 | + <varlistentry> |
4879 | + <term><option>--</option> <replaceable>backend-options</replaceable></term> |
4880 | + <listitem> |
4881 | + <para>All options following the doubly hyphen are considered <replaceable>backend-options</replaceable>. |
4882 | + These are passed through to the backend command. I.e. to <option>drbdsetup</option>, |
4883 | + <option>drbdmeta</option> or <option>drbd-proxy-ctl</option>. |
4884 | + </para> |
4885 | + </listitem> |
4886 | + </varlistentry> |
4887 | + </variablelist> |
4888 | + </refsect1> |
4889 | + <refsect1> |
4890 | + <title>Commands</title> |
4891 | + <variablelist> |
4892 | + <varlistentry> |
4893 | + <term>attach</term> |
4894 | + <listitem> |
4895 | + <para> Attaches a local backing block device to the DRBD resource's device. |
4896 | + </para> |
4897 | + </listitem> |
4898 | + </varlistentry> |
4899 | + <varlistentry> |
4900 | + <term>detach</term> |
4901 | + <listitem> |
4902 | + <para><indexterm significance="normal"><primary>drbdadm</primary><secondary>detach</secondary></indexterm> |
4903 | + Removes the backing storage device from a DRBD resource's device. |
4904 | + </para> |
4905 | + </listitem> |
4906 | + </varlistentry> |
4907 | + <varlistentry> |
4908 | + <term>connect</term> |
4909 | + <listitem> |
4910 | + <para><indexterm significance="normal"><primary>drbdadm</primary><secondary>connect</secondary></indexterm> |
4911 | + Sets up the network configuration of the resource's device. If the |
4912 | + peer device is already configured, the two DRBD devices will connect. |
4913 | + If there are more than two host sections in the resource you need |
4914 | + to use the <option>--peer</option> option to select the peer you want to |
4915 | + connect to. |
4916 | + </para> |
4917 | + </listitem> |
4918 | + </varlistentry> |
4919 | + <varlistentry> |
4920 | + <term>disconnect</term> |
4921 | + <listitem> |
4922 | + <para><indexterm significance="normal"><primary>drbdadm</primary><secondary>disconnect</secondary></indexterm> |
4923 | + Removes the network configuration from the resource. The device |
4924 | + will then go into StandAlone state. |
4925 | + </para> |
4926 | + </listitem> |
4927 | + </varlistentry> |
4928 | + <varlistentry> |
4929 | + <term>syncer</term> |
4930 | + <listitem> |
4931 | + <para><indexterm significance="normal"><primary>drbdadm</primary><secondary>syncer</secondary></indexterm> |
4932 | + Loads the resynchronization parameters into the device. |
4933 | + </para> |
4934 | + </listitem> |
4935 | + </varlistentry> |
4936 | + <varlistentry> |
4937 | + <term>up</term> |
4938 | + <listitem> |
4939 | + <para><indexterm significance="normal"><primary>drbdadm</primary><secondary>up</secondary></indexterm> |
4940 | + Is a shortcut for attach and connect. |
4941 | + </para> |
4942 | + </listitem> |
4943 | + </varlistentry> |
4944 | + <varlistentry> |
4945 | + <term>down</term> |
4946 | + <listitem> |
4947 | + <para><indexterm significance="normal"><primary>drbdadm</primary><secondary>down</secondary></indexterm> |
4948 | + Is a shortcut for disconnect and detach. |
4949 | + </para> |
4950 | + </listitem> |
4951 | + </varlistentry> |
4952 | + <varlistentry> |
4953 | + <term>primary</term> |
4954 | + <listitem> |
4955 | + <para><indexterm significance="normal"><primary>drbdadm</primary><secondary>primary</secondary></indexterm> |
4956 | + Promote the resource's device into primary role. You need to do |
4957 | + this before any access to the device, such as creating or mounting a file system. |
4958 | + </para> |
4959 | + </listitem> |
4960 | + </varlistentry> |
4961 | + <varlistentry> |
4962 | + <term>secondary</term> |
4963 | + <listitem> |
4964 | + <para><indexterm significance="normal"><primary>drbdadm</primary><secondary>secondary</secondary></indexterm> |
4965 | + Brings the device back into secondary role. This is needed since in |
4966 | + a connected DRBD device pair, only one of the two peers may have |
4967 | + primary role (except if <option>allow-two-primaries</option> is explicitly set in |
4968 | + the configuration file). |
4969 | + </para> |
4970 | + </listitem> |
4971 | + </varlistentry> |
4972 | + <varlistentry> |
4973 | + <term>invalidate</term> |
4974 | + <listitem> |
4975 | + <para><indexterm significance="normal"><primary>drbdadm</primary><secondary>invalidate</secondary></indexterm> |
4976 | + Forces DRBD to consider the data on the <emphasis>local</emphasis> backing |
4977 | + storage device as out-of-sync. Therefore DRBD will copy each |
4978 | + and every block from its peer, to bring the local storage |
4979 | + device back in sync. |
4980 | + </para> |
4981 | + </listitem> |
4982 | + </varlistentry> |
4983 | + <varlistentry> |
4984 | + <term>invalidate-remote</term> |
4985 | + <listitem> |
4986 | + <para><indexterm significance="normal"><primary>drbdadm</primary><secondary>invalidate-remote</secondary></indexterm> |
4987 | + This command is similar to the invalidate command, however, the |
4988 | + <emphasis>peer's</emphasis> backing storage is invalidated and hence rewritten |
4989 | + with the data of the local node. |
4990 | + </para> |
4991 | + </listitem> |
4992 | + </varlistentry> |
4993 | + <varlistentry> |
4994 | + <term>resize</term> |
4995 | + <listitem> |
4996 | + <para><indexterm significance="normal"><primary>drbdadm</primary><secondary>resize</secondary></indexterm> |
4997 | + Causes DRBD to re-examine all sizing constraints, and resize the |
4998 | + resource's device accordingly. For example, if you increased the |
4999 | + size of your backing storage devices (on both nodes, of course), |
5000 | + then DRBD will adopt the new size after you called |
The diff has been truncated for viewing.
Hi Benjamin
Thanks for the merge proposal; I noticed that Andres has already re-synced this package from Debian (so its only a minor point release behind this MP).
The official packaging branch is out-of-date due to:
http:// package- import. ubuntu. com/status/ drbd8.html# 2012-07- 09%2005: 37:49.954343
I've emailed <email address hidden> and asked them if this can be fixed up.
Hopefully this will get fixed up and then you can rebase your work; otherwise you could raise a bug and generate a debdiff for the new version.
Thanks!