[DRBD-announce] drbd-reactor v0.4.4

Roland Kammerer roland.kammerer at linbit.com
Tue Aug 10 09:25:01 CEST 2021


Dear DRBD users,

this is version 0.4.4 of drbd-reactor. It fixes a corner case in the
promoter plugin where preferring nodes with a favorable disk state did
not always work. This corner case is triggered by linstor-gateway, so
this deserves a bugfix release on its own.

Details:
On switch/fail over we want to prefer nodes with a good disk state
(e.g., promote an UpToDate instead of a Diskless node). This is done by
checking the DRBD state of all disks in a resource and sleeping just a
bit on "bad nodes", so that "good nodes" win the race to promote the
DRBD device.

On drbd-reactor service reload (something linstor-gateway does when it
adds new resources), we have to provide the current resource state to the
newly added promoter plugin handling that new linstor-gateway resource.
On reload drbd-reactor just pauses 'drbdsetup events2' processing, sends
the new plugin the current resource state in a similar way how it would
have looked like when events2 resources would have occurred and then
continues with normal events2 processing. In this case we first told the
plugin that the resource exists and that it may be promoted. Both
information is in the same message. The plugin got that information (may
promote) and started its usual cycle. It did try to check the disk
states, but so far we did not even send any disk states. Therefor it did
not wait and promoted immediately. As drbd-reactor is the instance to
serialize DRBD state, the fix was easy: first tell the plugin the
resource exists without setting may-promote, then send the rest
(including disk states) and then an "update" that has may-promote set
according to the current/actual state.

Funny enough this is also how plain events2 looks like if the resource
is already up. Then the first "resource exists" message also already
sets may-promote before it sent the rest of the information (disk,
peer-disk, connection states). That is how events2 works, it is a simple
protocol without transactions, but there is now code in drbd-reactor to
handle such situations.

Regards, rck

Changes:
[ Roland Kammerer ]
* build: rename build Dockerfiles
* promoter: handle sleep for "cold boot" if res exists

[ Moritz "WanzenBug" Wanzenböck ]
* ensure reload updates don't trigger promoter early

GIT: https://github.com/LINBIT/drbd-reactor/releases/tag/v0.4.4
TGZ: https://pkg.linbit.com//downloads/drbd/utils/drbd-reactor-0.4.4.tar.gz
PPA: https://launchpad.net/~linbit/+archive/ubuntu/linbit-drbd9-stack
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.linbit.com/pipermail/drbd-announce/attachments/20210810/e4ddc7f6/attachment.pgp>


More information about the drbd-announce mailing list