[DRBD-announce] drbd-9.0.5 & drbd-8.4.9 & drbd-utils-8.9.9
philipp.reisner at linbit.com
Fri Oct 21 14:10:48 CEST 2016
Super release day!
For drbd-9 there is one very important fix.
All drbd-9.0.x version until now had the following bug:
In case you are running with a diskless primary that is connected to
two secondaries with disk, and there is a resync going on between the
secondaries, it applies application writes from the primary only to
the resync source. It marks those blocks as out of sync in the bitmap,
but the marks stay there, the stay out of sync on the resync target
and the resync terminates.
For the scenario, that you want to run with a small number of nodes
with disks (2, 3 maybe 4) and a bigger number of diskless nodes (.e.g 20)
you want to have only 4 or 5 bitmap slots and not 25 allocated.
Before 9.0.5 DRBD required to have a bitmap slot for each and every node.
Starting with 9.0.5 it does not allocate bitmap slots for permanently
diskless nodes. If you want to have many big volumes (like multi terabytes)
the memory consumptions matters, and this improvement helps you a lot.
Please note that drbd-9 still does not come with nice pacemaker
integration (no crm-fence-peer, no ocf resource agent). Do not try
to hack that with patches flying around, those are incomplete.
This is an area where drbd-9 is not yet complete, and we will address
this in the development cycle that opens with this release.
In drbd-8.4.9 there is no change, except compatibility code for upstream
DRBD 9.0.5-1 (api:genl2/proto:86-112/transport:14)
* fix a bug that causes data inconsistency between mirrors. The bug triggered
if you write on a diskless primary while a resync is going on between two
nodes with disk.
It might happen that the diskless primary chooses the not-updated mirror
for subsequent reads of those blocks, then this bug manifests as data
* no longer allocate bitmap-slots on diskfull nodes for nodes that are
configures to be diskless; Saves bitmap-slots, thus allows you to use
smaller max-peers numbers, thus saves memory and CPU resources
* fix bugs in the try_become_up_to_date() logic; they caused hanging
machines or hangs during state transitions
* fix a IO deadlock that could happen when two secondaries are in a resync
and a write on a third node (primary) is sent two the two resyncing nodes
* fix two phase-commits when the nodes form a circular structure
* fix support for WRITE_SAME. Was broken since merged from 8.4
* balance read requests from diskless primary nodes among multiple peers
(if available). In the past it read always from one node (that happened
to be first in the internal data structures)
* make sure it compiles with Linux 4.8
DRBD 8.4.9-1 (api:genl1/proto:86-101)
* compat fixes for linux kernels up to 4.8
* fix --skip-disk/--skip-net when used with more than one resource
* events2 of v8.4: Fake peer-node-ids to make it in-line with v9
* fix drbdadm crashes in set-gi and new-current-uuid
* new peer_device option (--bitmap=no) to indicate that for this peer
no bitmap slot should be allocated in the meta-data; This is used
by all peers of a (configured) diskless node; saves bitmap-slots,
thus allows you to use smaller max-peers numbers, thus saves memory
and CPU resources
* removed sh-status from v9
More information about the drbd-announce