[DRBD-announce] drbd-reactor v0.4.4
Roland Kammerer <[email protected]>
| Newsgroups | dev.linux.lists.drbd-announce |
|---|---|
| Message-ID | <[email protected]> |
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
(application/pgp-signature, 488 B)
-----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEdesqw/S/2vE9wNKDRgmezyI6myIFAmESKcgACgkQRgmezyI6 myIsXggAhCQ9o65YlMgRHcCaCMMCjko2PepDmQD31tOW9CiQSgl+jTjkFogCpaE7 U61e/nKUO8Xj0cYhX58zd78J1RAQYvy5BtFszY7EzaHZHMU5D+VgbCI1gUfANFfq jzRRGo0aAPEBp1c6+HhrIeAtSePncBKOi7wsjdX0TdNEJUdGy0SzS0Itu4F+D0IW 01XlcqhW91yIVeDd+zSx4XaXuuFF6D9sDV7Gtb2PakTi5wswlCK6DgLJiLY/sGfy 19emb46EtvKi0nPY13ivyUSZm8DiC9Wrpg3OfT1+gQtlKNjTtkkMn/pjCJZt8DBW 8fODfe3YHf0Cv0NOI0Nb9F2imj+FDw== =2a+D -----END PGP SIGNATURE-----