During my daily work in the field I often have to explain how a Failover cluster in the Microsoft world is working. Currently I mostly discribe three kinds of clusters. First is the Clustertyp which is used for DHCP Failover Cluster, like discribed in a former blogpost. The other is a DAG or Database availability group, how it is used in Exchange and Failover Cluster how it works in Scale out Fileserver and Hyper-V Cluster.
Today I want to focus on the Fileserver and Hyper-V Failover Cluster and try to explain it.
At first, you need to know such a failover cluster must have an uneven number of cluster members.
Why do we need an uneven number of cluster member? The reason for is a thing named split brain.
Split-brain is a term in computer jargon, based on an analogy with the medical Split-brain syndrome. It indicates data or availability inconsistencies originating from the maintenance of two separate data sets with overlap in scope, either because of servers in a network design, or a failure condition based on servers not communicating and synchronizing their data to each other. This last case is also commonly referred to as a network partition.
An uneven number of cluster members? But dies this mean I can only have 1,3,5, … etc. servers in my cluster?
Normally yes but hear comes the Magic. The uneven member do not need to be a Server, it could also be a share or LUN. This share is named Cluster Shared Volume (CSV) or cluster witness. Every Server and the cluster witness have the same wight in the cluster.
Now one server catches the witness and becomes the “clustermaster” and has more votes in the cluster. He will give the direction for the other nodes.
What happens if one cluster when the cluster master files? Very easy, together with the cluster master, the cluster shared volume fails too. That means at the end we will have an uneven number of cluster nodes and there won’t be a split brain.
If a cluster member failes, the witness will be disconnected and deaktivated. That will also bring an uneven number of cluster nodes and we won’t run in split brain.
Now you will ask, I have more than two nodes. What will happen if the connection splits the cluster in two halfes? which means it would force the split brain issue again!
The cluster member will notice their numbers on both sides. Than the cluster will go and run on the uneven cluster half.