This blog sets about doing a shallow dive – to simply understand how a File Share Witness is used and required in an Always On Availability Group cluster.
An Always On Availability Group cluster requires no shared storage – Windows 2012 supports up to 16 nodes, SQL Server 2012 supports up to 5 nodes in an Availability Group, and SQL Server 2014 supports up to 9 nodes. A cluster can sustain itself as it loses nodes and Quorum is described as the state of the cluster.
The basic rule for determining how many nodes your cluster can sustain losing is a “majority” …. I love a good analogy… here is one … Your cluster is like a bar stool … quorum is its ability to remain standing… or rather, how many legs it can lose before it falls over.
So… File Share Witness, Yes or No ? … Mathematically speaking the short answer is …
…Even number of legs = Yes
…Odd number of legs = No
A bar stool with an odd number of legs isn’t an issue, an odd number of legs means a majority can always be determined, but for an even number of legs, losing half of the legs creates an issue – a majority can’t be determined, unless you have a witness (a backup leg).
Lets take a really simple example – a bar stool with 2 legs – this is your 2 node cluster. Each leg is considered a vote, until it is removed, in which case its vote doesn’t count.
The state of the bar stool (quorum) is determined by how many legs are still standing (votes). It would be pretty pointless setting up 2 node Always On cluster if you had no redundancy. The mathematical formula which explains how many legs a bar stool can afford to lose is… (legs/2)-1 … that’s (2/2)-1 … which equals zero legs. Without a backup leg (file share witness), the bar stool could not sustain losing any legs… so it has no redundancy.
File Share Witness -> With a backup leg however (file share witness), the bar stool can lose half its legs (1), form a majority and meet the number of Votes required to keep the bar stool standing.
Let take a 4 leg bar stool example…because lets face it, they usually do … how many legs can a bar stool afford to lose to keep standing ? …The formula is (legs/2)-1 … that’s (4/2)-1 … which is equal to 1 leg. If a 4 leg bar stool loses 1 leg … this still forms a majority and the stool maintains its quorum…
But if it loses two legs, (half of its legs), we are in trouble… a count of standing legs won’t reach a majority and the quorum can’t be sustained… unless…
File Share Witness -> For a bar stool with an even number of legs, a bar stool CAN lose up to half its legs, as long as a backup leg (file share witness) is used. You can see when half of the nodes are missing, a majority can still be determined and satisfied, when a file share witness is used.
In advanced Always On architecture, a node can be configured so that it as no vote. It still participates in the cluster and the availability group, but for the purposes of counting a majority, the vote doesn’t count. So a 4 node cluster, with 1 node set to no vote, gives a 3 node vote. A majority can be determined with an odd number of votes so a file share witness is not needed. Locating your file share witness in a third datacentre can also provide another level of resilience.