Votequorum library overview
The votequuorum 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 ndes 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 reads its configuration from the objdb. The following keys are read when it starts up:
* quorum.expected_votes
* quorum.votes
* quorum.quorumdev_poll
* quorum.disallowed
* quorum.two_node
Most of those values can be changed while corosync is running with the following exceptions: quorum.disallowed cannot be changed, and two_node cannot be set on-the-fly, though it can be cleared. ie you can start with two nodes in the cluster and add a third without rebooting all the nodes.
This software is not yet production, so there may still be some bugs.