votequorum_overview - Votequorum Library Overview
The votequorum library is delivered with the corosync project. It is the
external interface to the vote-based quorum service. This service is
optionally loaded into all nodes in a corosync cluster to avoid split-brain
situations. It does this by having a number of votes assigned to each system
in the cluster and ensuring that only when a majority of the votes are
present, cluster operations are allowed to proceed.
The library provides a mechanism to:
* Query the quorum status
* Get a list of nodes known to the quorum service
* Receive notifications of quorum state changes
* Change the number of votes assigned to a node
* Change the number of expected votes for a cluster to be quorate
* Connect an additional quorum device to allow small clusters to remain quorate
during node outages.
Votequorum is the only one service where communication with library is allowed
during synchronization phase. This makes it possible for quorum device to
react to membership change and decide to vote or not without timing hazard,
because corosync stands in synchronization phase until qdevice on all nodes
votes or timeout expires.
As a side effect, extended virtual synchrony is broken for the votequorum
service. This means, that messages sent during synchronization phase can be
delivered sooner then messages sent right before sync phase began. This
applies also for local messages.
No known bugs at the time of writing. The authors are from outerspace. Deal with
it.
corosync-quorumtool(8),
votequorum(5),
votequorum_initialize(3),
votequorum_finalize(3),
votequorum_getinfo(3),
votequorum_trackstart(3),
votequorum_trackstop(3),
votequorum_fd_get(3),
votequorum_dispatch(3),
votequorum_context_set(3),
votequorum_context_get(3),
votequorum_setexpected(3),
votequorum_setvotes(3)