Wednesday, June 19, 2013

Windows Server 2012 Failover Clustering Dynamic Quorum for Exchange 2013 DAG

Introduction to Quorum

Quorum in Windows 2008 R2 referred to a consensus , that is, a majority of votes is required in order to reach quorum and maintain stability of the cluster. A new option created in Windows Server 2012 which was also back ported to Windows Server 2008 R2 SP1 was the ability to stop a node being able to participate in the voting process. This meant that you could configure a node not to have a vote. This is a property of the node called NodeWeight and is configurable via PowerShell.

This is a very useful feature as you have the ability to remove the cluster nodes in a secondary site from voting and thus have the controlling votes in the primary site. This makes managing the quorum simpler and also prevents the cluster database from being updated by the nodes in the secondary site if the nodes in the primary site are down.

Another new feature introduced in Windows Server 2012 is the concept of dynamic quorum.

What is Dynamic Quorum

Dynamic quorum is the ability of the cluster to recalculate quorum on the fly and still maintain a working cluster. This is a huge improvement as we are now able to continue to run a cluster even if the number of nodes remaining in the cluster is less than 50%. This was not possible before but the dynamic quorum concept now allows us to do this. In fact we can reduce the cluster down to the last node (known as last man standing) and still maintain quorum.

Dynamic quorum is enabled by default and recalculates quorum when a node(s) in the cluster is down. Dynamic quorum will only work when these two conditions are met.

  1. The cluster has already achieved quorum.
  2. Sequential failures of nodes have occurred.

If multiple nodes in a cluster go down at the same time dynamic quorum will not recalculate the number of votes required to maintain the cluster. Instead a re-group will occur and once the cluster has determined quorum can be maintained dynamic quorum will kick in when a subsequent node failure occurs. As long as the two conditions above have been met.

How Dynamic Quorum Works

Below is an explanation of the behaviour of the dynamic quorum as tested in the lab. Below is a three node cluster with no failures. The quorum is set to node majority and dynamic quorum is enabled. This is the default.


As you can see all nodes are up and running in the cluster.


Using PowerShell we see the following properties for the node weights and dynamic quorum.


To demonstrate dynamic quorum and the last man standing scenario we turn off the cluster service on Contoso-N3


This is what the node weight and dynamic weight looks like. Notice that the DynamicWeight property of Contoso-N2 is set to 0. This is the dynamic quorum kicking in.

From this we can see that the dynamic quorum realised that there were two nodes left and removed the vote from one of them. From testing we have determined that the node with the lowest ID from the surviving two nodes has it's vote removed. The node with the highest ID has a vote and is used to maintain quorum.

When you have two nodes remaining in a cluster you cannot have a majority as the majority of two is two. In order to avoid the cluster from shutting down one of the votes is removed therefore we only require one vote to maintain the cluster.



Contoso-N1 is the node with the vote. Contoso-N2 had its DynamicWeight property changed to 0. We now stop the cluster service on Contoso-N1.


This is what the dynamic weights now look like. The vote was transferred from Contoso-N1 to Contoso-N2 and this the cluster remains up and running and is Contoso-N2 is truly the last man standing.


Dynamic quorum will only work if the cluster has a failure of a node or several nodes in a sequential order. Each time dynamic quorum is calculated the cluster must already have quorum in order for the new dynamic value to be implemented. These are the two rules mentioned above.

1 comment: