Quorum

From AN!Wiki
Jump to: navigation, search

 AN!Wiki :: Quorum

In clustering terms, quorum is synonymous with "majority". All nodes and quorum disks, when used, are assigned a number of votes. The cluster is then told how many votes to expect (the sum of all nodes plus the quorum disk). When a problem occurs that caused the cluster to split into two or more partitions, each partition will add up the votes of itself plus the devices it can talk to. If the resulting count is greater than half, that partition is determined to have "quorum" and is allow to continue providing cluster services. However, if the total is less than half, the partition will not form the cluster and will, usually, self-fence.

The math behind calculating quorum is:

v=votes
q=quorum
q=floor((v/2)+1)

To use a simple example; A three-node cluster where each node has one vote with no quorum disk has an "expected votes" of 3. If you pulled the network cable(s) from the node, it would lose communication with the other two nodes. The one node would take it's vote plus the votes of the machines it can talk to (none) and get the total vote count of 1. Meanwhile, the other two nodes would reach each other and so they would add their two votes and get the vote count of 2.

In this three-node cluster, quorum is: floor((3/2)+1) = floor(1.5+1) = floor(2.5) = 2. So the single node would not have quorum and would not try to start cluster services. The other two would, as their node count of 2 is equal to the minimum value needed for quorum. So the surviving two nodes would reform the cluster and then would try to fence the missing node.

More complex configurations work the same way, just with larger numbers and individual devices possible having more than 1 vote.

 

Any questions, feedback, advice, complaints or meanderings are welcome.
Us: Alteeve's Niche! Support: Mailing List IRC: #clusterlabs on Freenode   © Alteeve's Niche! Inc. 1997-2017
legal stuff: All info is provided "As-Is". Do not use anything here unless you are willing and able to take responsibility for your own actions.
Personal tools
Namespaces

Variants
Actions
Navigation
projects
Toolbox