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
signature.asc
Description: PGP signature
_______________________________________________ Star us on GITHUB: https://github.com/LINBIT drbd-user mailing list drbd-user@lists.linbit.com https://lists.linbit.com/mailman/listinfo/drbd-user