Each cluster uses the concept of a "quorum node set" to determine which nodes control the cluster.
In simple terms this means that we need an odd number of participants in any "quorum vote" to ensure that one quorum node set can win that vote.
In a cluster with an even number of nodes we can use a "witness" (a shared disk or a file share) to meet that requirement.
We can avoid this by using an odd number of voting nodes. Â
Note that we can control whether a node has a vote.
A four node cluster with only three voting nodes is possible, as is a three node cluster with two voting nodes and a witness.
Server Manager - Manage - Add Roles and Features
You can install WSFC using...
Install-WindowsFeature -Name Failover-Clustering –IncludeManagementTools - restart
The server will reboot automatically after installation is completeThe errors below are fine for our test scenario. But, you may want to consider addressing this for a production environment...
The errors below are due to my test domain consisting of VirtualBox virtual servers...
In this example we are going to use a File Share from our Domain Controller (DC01).Â
Think long and hard before you use a production Domain Controller for anything other than being a Domain Controller. In this case there are only three machines in MYDOMAIN (SQL01, SQL02 and DC01). Alternatives are: to use a share from my VirtualBox host, or add another server to the domain.On DC01 I did this...mkdir C:\Quorumnet share quorum /GRANT:MYDOMAIN\Administrator,fullThe witness file share must not be on a node that already participates in the WSFC configuration
The witness file share can be a share from a node that participates in another WSFC configuration
The witness file share must exist in the same Active Directory Domain as the WSFC
The WSFC cluster service account must have read and write permissions to the witness file share
Quorum configuration can also be handled using PowerShell...
Get-ClusterQuorum
Set-ClusterQuorum -NodeMajority
Set-ClusterQuorum -NodeAndFileShareMajority \\myserver\myshare
To check vote settings...
Get-ClusterNode | fl NodeName, NodeWeight
To change vote settings...
Get-ClusterNode "MYNODE3").NodeWeight=0
The above sets MYNODE3 to not have a vote. Use 1 to set it so it does have a vote.