File: ChangeLog

package info (click to toggle)
drbd 0.7.10-4
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 1,324 kB
  • ctags: 1,787
  • sloc: ansic: 14,123; perl: 2,344; sh: 1,686; makefile: 593; yacc: 426
file content (359 lines) | stat: -rw-r--r-- 15,285 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
Latest:
------
 ChangeLog last updated: r1730 2005-01-25
 Cumulative changes since last tarball.
 For even more detail, use "svn log" and "svn diff".

0.7.10 (api:77/proto:74)
-----
 * 0.7.9 had a memory corruption bug and memory leakage (BIOs).
   This time I did the clone_bio() fix myself, and this release is
   supposed to work with SLES9 SP1, Linux-2.6.11 and Linux-2.6.12.

0.7.9 (api:77/proto:74)
-----
 * A fix that makes DRBD work on SLES9 SP1 kernel, and 
   probabely will be also necessary for Linux-2.6.11

0.7.8 (api:77/proto:74)
-----
 * Fixed a bug that caused the syncer to starve on devices 
   bigger than 2 TB on 32bit systems (=CONFIG_LBA).
 * Made online resizing actually work. Now it makes a lot
   more sense to put DRBD on top of LVM.
 * Made the user dialog to work on RedHat based distributions.
 * A small optimization that improves the performance of the 
   syncer when woking with IBM's ServRaid Controllers (ips).
   May have a positive effect with other Controllers as well.
 * Made epoch_size atomic. This removes a SMP race condition that
   could lead on some Xeon CPUs to an ASSERT printk, but did no other
   harm than printing messages to the syslog
 * Fixed write_gc.pl to work with the perl version delivered
   with RHAS3.
 * Made the initscript to abort if one of the setup commands fails.

0.7.7 (api:77/proto:74)
-----
 * "drbdadm adjust [res...]" now does the calls to drbdsetup 
   in an improved order, first the disk config of all devices,
   then the syncer and net config last. With the old scheme
   drbdadm run in a timeout when setting up more than about 
   6 devices at once (startup script...).
 * New progress indication in the startup script.
 * Bugfix to a race that could cause a OOPS on a BUG() macro
   in mod_timer while starting resync. The more devices you have 
   the higher the probability to hit this race condition.
 * Fixed a bug in the sync-groups conde, that only showed up
   when you have more than 4 resources in your config. 
   The resync process was continued too early on the node in
   SyncTarget state.
 * Fixed a stupid typo in the range-check code, that was intoduced
   in 0.7.6. Drbdsetup allowed "max-buffers" to be in the range 
   from 32 to 32.
 * Makefiles are gcc-2.95 compatible again.
	
0.7.6 (api:77/proto:74)
-----
 * Fixed bug that could cause a lockup of the receiver and
   asender threads, the visible outcome was that the syncer
   starves.
 * Fixed a bug that under specific circumstandes caused that the
   SyncSource node did not recognised that a resync process was
   finished.
 * "drbdadm invalidate [res]" was not working correct, while
   "drbdadm invalidate_remote [res]" works. Fixed the former.
 * Make DRBD work on Linux-2.6.10-rc2 and newer: Replaced
   sock_alloc() by sock_create(), replaced TASK_ZOMBIE by 
   EXIT_ZOMBIE.
 * Range checks in drbdadm for all numeric configure parameters.
 * A fix to make ioctl()s work on machines with 64bit kernel space 
   and 32bit user space. 
 * Ioctl()s are only allowed if the caller has CAP_SYS_ADMIN set.
 * Removal of warnings on 64bit architectures.
 * Backport of find_first_bit() for x86_64 aka AMD64 for use on 
   that architecture under Linux-2.4.x
 * Changed drbdadm to do the syncer config before the net config.
 * Changed the way drbdadm determines the minor_count parameter for
   module loading.
 * Improvements to the drbddisk script, to do the right thing
   in case Heartbeat is configured with a small timeout than DRBD.
 * On request of the debian package maintainers, the debian directory
   from SVN is not longer included in the tar.gz releases.

0.7.5 (api:76/proto:74)
-----
 * Fix a bug that could case read requests to return wrong data
   on a node in Primary/SyncTaget state. (A very unlikely race,
   it is not known that this ever triggered; It was found by an 
   ASSERTION in the code)
 * Removed the 30MB/sec speeding limit for the syncer. (this was 
   intended as a debugging aid, but it was not removed in time)
 * A fix to drbdsetup, to make drbdadm adjust work if a resource
   is diskless.
 * Got rid of the compiler warning when build on a kernel with
   CONFIG_LBD not set.
 * Now the device nodes are created with sane permissions.
 * The debian package is now named "drbd0.7"
 * set_fs() is now also done for sendpage()
 * Better compatibility with early 2.4.x kernels (BH_Launder, min()/max())
 * Touch /var/lock/subsys/drbd, needed for RedHat based distros.
 * Improvements to the INSALL document
 * Removed HOWTO, ja, pt_BR ... all hopelessly outdated.
   disabled benchmark/run.sh

0.7.4 (api:76/proto:74)
-----
 * Fixed a critical bug with Linux-2.4.x and HIGHMEM!
 * Fixed a bug that only showed up with the HIGHMEM problem on 
   Linux-2.4.x -> It caused the resync process to starve.
 * The drbd.spec file now creates /dev/drbd in the post-install stage.
 * Fixed support for more than 2TB storage. Now DRBD supports up to
   3.99TB storage. It will also tell you, that it is not supported if 
   you try to set up a bigger device.
 * Debian's build rules file now knows about the adjust_drbd_config_h.sh
   file.
 * DRBD_DISABLE_SENDPAGE available in drbd_config.h

0.7.3 (api:75/proto:74)
-----
 * Fixed minor bugs in the handling of the generation counters.
 * prevent possible in-kernel buffer overflow in drbd_proc.c
 * Fixed debian's postinst script to create /dev/drbd? instead of /dev/nb?
 * drbd status:
   be nice to heartbeat, include "OK" in output.
 * added FullSync meta data flag to read/write gc.pl
 * make the RHEL3 happy (page_count no longer in mm.h, but in mm_inline.h)
 * [Patch by Pavel Semerad]. Also use the drbd_devfs_name on Linux-2.4.x
 * fix missing dependencies on drbd_config.h

0.7.2 (api:75/proto:74)
-----
  *) Proper handling of backing storage devices that occasionally fail 
     READA (=read ahead) requests. (E.g. LVM and MD)
  *) DRBD now fails READA requests itself, if a resynchronisation is running
     and it would need to fetch the block from its peer.
  *) "drbdadm adjust" had a race, which caused random errors. ( Missing
     waitpid() ). Fixed now.
  *) Proper subtract SyncPause times from the syncer performance numbers.
  *) Fix to the syncer progress bar in /proc/drbd.
  *) Fix to debian build rules.
	 
0.7.1 (api:75/proto:74)
-----
  *) Upgrade instructions for 0.6.x -> 0.7.0 and 0.7.0 -> 0.7.1
  *) Workaround for XFS' IO requests with page count of zero.
  *) Handle the human and the timeout count correctly in the new init script.
  *) The implementation of the incon-degr-cmd was missing, added.
  *) Fix for integer overflow in /proc/drbd syncer progress display
  *) Longer timeouts in drbdadm for drbdsetup commands witch operate on 
     meta data.
  *) New major number 147 (officially registered at lanana.org).
  *) Added a missing w_resume_next_wg() in case we stop syncing because
     of connection loss.
  *) Fixed a Linux-2.2-ismus in recieve_data_tail(). Should considerably
     speed up protocols A and B.
  *) Some work on vendor kernel compatibility
	
0.7.0 (api:74/proto:74)
-----
  Drbd-0.7 was actually forked off from drbd-0.6.1 (actually -pre18). 

  *) Complete new way of doing resynchronisation. Does no longer need
     to do tricks with the nice value, and delivers very good performace.
  *) Decoupling of role assignment (primary/secondary) from the direction
     of resynchronisation. (Necessary for primary/primary)
  *) All "ack" and "ping" packets now go through the msock. 
     (Prerequisite for primary/primary)
  *) Reworked a lot of internals to work with sector_t instead of
     blocknumbers. DRBD works now with XFS, and will be complete
     immune to changes in the block size.
  *) Reworked the tl_ code, the user no longer has to specify the size
     for a preallocated transfer-log.
  *) Improved metadata; Ao the device size is now stored in metadata,
     users no longer need to configure it.
  *) Online resizing via "drbdsetup resize"
  *) Resynchronisation groups "drbdsetup syncer -g"
  *) New (very short!) sys-v init scripts, new userland tool "drbdadm"
  *) Changes to the way we allocate memory. We want to survive hard OOM
     situations. (partially done, partially ongoing work) 
  *) Implemented the Activity-Log and the persistent bitmap.
	
0.6.1  (api:58/proto:61)
-----
Since the last one should have been 0.6, this is 0.6.1:
  *) Rewrote the receiver code. This one eliminates inter-device deadlocks,
     as far as I can tell (and is a big step in the direction of active/active)
  *) Introduced a new Packet into the protocol. The "WriteHint" drastically 
     improves performace of protocol C in conjunction with a FS with mount
     option "sync".
  *) Fixed a bug that could cause a OOPS on the primary if the connection 
     is lost when the send queue is not empty.
  *) Fixed a bug that could cause data corruption on the secondary if you 
     put high IO-load on the primary during resynchronisation.
  *) Fixed a bug that could cause the secondary to "forget" to send some
     ack packets if it is under high load during resynchronisation.
  *) devfs support by Lelik P.Korchagin <lelik@price.ru>.
  *) Fixed a bug that could crash a task in kernel space on the primary 
     in the moment the secondary leaves the cluster.
  *) A few SMP-only bugs removed.
  *) The state files are now written with O_SYNC.
  *)Droped the postponepackets; Checkeing the liveliness via a second
     TCP connection (msock). -- No more timeout in case of the standby
     node has high load.
  *) If an application which is writing to a drbd device receives a signal
     while it sleeps in DRBD's send_msg call, the connection is dropped.
     -- Fixed this bug. (You could observe this with tiobench)
  *) Fixed serious bugs in the meta-data handling.
  *) Split the code of the module into 7 files
  *) Added reasonable support for Linux-2.4.x.
     Yes you can put in on top of RAID/LVM and you can even stack
     multiple drbd devices.
  *) Completely removed the SYNC-LOG and implemented a better scheme
  *) Removed the mbdh.h interface since it was useless
  *) Implemented correct signal sending (not longer done from interrupt time)
     Based on a patch from Ard van Breemen <ard@telegraafnet.nl>
  *) Implemented correct removing of requests from the transfer log
  *) Fixed a "can not guess name" bug in drbdsetup
  *) implemented /etc/init.d/drbd XXX status
  *) From now on the drbd wire protocol and the ioctl interface carry
     interface version numbers, which are independend of the release
     number. E.g. You can combine a drbd device of release 0.6.1 and
     0.5.8, since both have protocol version 58. You can even use
     drbdsetup of 0.5.8 to configure the module of the 0.6.1 release.
	
0.5.8
-----
A lot of new features: (This release should be named 0.6)
  *) codecleanup of the on-the-fly counters
  *) drbdsetup is not splitted into a disk and a net part / syntax changed
  *) syncer rewritten. Now a lot faster but currently only woking with
     4K based file systems. (mkfs -b 4096)
  *) Meta-data management implemented. => DRBD is now able to select
     the node with the up-to-date data to become primary after a cluster 
     restart.
  *) datadisk / drbd scripts rewritten two times :) Now they are in
     perl and we have a new configuration file named /etc/drbd.conf

0.5.7
-----
Bugfix release:
  *) Fixed the bh_count > 0 bug.
  *) Fixed the multiple-timeouts-bug.
  *) Fixed a bug when working with a fs with a blocksize other than 4096
  *) Applied the patch from Juri Haberland against the datadisk script.

0.5.6
-----
No updates to the mirroring core. (It seems to be stable)
A lot of updates to the "user interface"
  *) Better log-messages and better messages of drbdsetup.
  *) Fixed a few crashes of drbdsetup/ioctl interface.
  *) It is not longer possible to use an already mounted partition.
  *) It's possible to unconfigure a drbd device now.
  *) Fixed the "infinite error messages" when a wrong disk size was given.
A better datadisk script (Thomas Mangin contributed this, thanks)
Some work on the protocol:
  *) Cleanup
  *) Added automatic reconnect
  *) An intace connection is monitored by "ping" packets, thus
     a secondary will notice a broken connection immediately.
Found and fixed a 64 Bits problem in the bitmap based syncer.

0.5.5
-----
SMP and ext3 fixes to the module.
Scripts should work on RedHat distributions now.
(Automatic) support for more than two devices.

0.5.4
-----
No more zombies, when a connection is canceled.
An important SMP fix. (It seems to work on SMP now)
A lot of small improvments.(benchmarking, stress testing... )

0.5.3
-----
More sanity checks.
Fix to protocol C.
Script for automatic benchmarking.
New heartbeat scripts.

0.5.2
-----
Improved the behaviour upon loss of connction. Now it
always goes into WFConnection state instead of Unconnected.

Added a command to drbdsetup to force a run of the basic syncer.

Things to be fixed: Heartbeat scripts, protocol C on SMP machines.

0.5.1
-----
Fixed the lockup upon loss of connection on SMP machines.
Added a kludge to make use with heartbeat possible.
Added scripts for use with heartbeat.

0.5
---
The code was considerably changed and enlarged.

There are now three wire protocols.
A) A write operation is complete as soon as the data is
   written to disk and sent to the network.
B) A write operation is complete as soon as a reception 
   acknowledgement arrived.
c) A write operation is complete as soon as a write
   acknowledgement arrived.

The basic syncer was replaced by a bitmap-based syncer. The new
one only updates the blocks which were modified during the
absence of the newly joined node.

A huge load of bug fixes.

Finally I cleaned up the drbdsetup utility. Now all the
features are accessible with command line options.

0.4
---
There is a basic syncer now. It will bring a newly joined
secondary node up to date by copying each block.
It is working at 250KB/second (hard coded in drbdsetup for now).

IO errors on the local disk are now reported as if there
was an io error on drbd.


0.3
---
There is a new timeout. If the primary node cannot send (TCP!)
within the timeout, it falls back into unconnected operation.

You can also disable the timeout (by setting it to zero), but in
case of a failure of the secondary node, your primary node will block!

Currently the timeout is hard coded into drbdsetup (3 Seconds).


0.2
---
This time I worked a lot looking into all possible deadlocks...
I think if you do not use any loop-back device it should
work without deadlocking. It is not working on top of the loop
block device and it is not working via the loop-back network!

This time it should handle all block size issues, and thus
reiserfs is feeling happy on top of drbd.


Status of drbd-0.1.tar.gz
-------------------------
This is a proof-it-is-no-vapo-ware-release and not more!
It is the first time it is somehow working without immediately crashing
my machine (you can "even" unload the module). It is not able to 
handle block sizes other than 1024 and there is not a single line of code
of the sync-a-new-secondary stuff yet.
The used port is hard coded into drbdsetup (7788) for now.
I have tested it on an Intel box and an alpha machine.