Sql-server – Three Node Cluster that Allows For Two Failures

clusteringhigh-availabilitysql serversql-server-2008-r2

We are creating a three-node three-instance cluster with SQL 2008 R2 (not cutting edge, but that is what the application supports) and think it should be able to maintain quorum with two physical nodes down. What is the best way to configure this?

My manager has been pushing for a witness server that acts like an additional quorum vote on top of a node and disk majority. That gives us a vote per node, a vote for the quorum disk, but is it possible to setup a witness server that receives a vote?

I thought a witness was for mirroring, which we have no plans to implement on this cluster. I have been told that adding a fourth node is not a possbility, even if it is only a passive node.

Best Answer

If you want to be able to sustain a failover of two nodes within the failover cluster, then you'll need to ensure that you have five voters for quorum.

You currently have three nodes, and even if you were to add a disk witness, you'd still be at the same point: whether you have three or four possible quorum votes, you'd still need to have three votes for quorum (you need to have more than half of the votes for quorum).

I've never heard the terminology of a "witness server" before, and I think that person is just trying to give a logical name to simply adding another node to your cluster.

In other words, if you now have a four node cluster with a disk witness, that'll be a total of five voters. Five voters will allow you to sustain two nodes to fail (provided your disk witness continues to be functioning properly).

With that being said, you also need to answer a few questions for yourself:

  • Does you really need three separate instances in this cluster? What is the driving force behind that?

  • Can one of your possible owning nodes for the FCI be able to sustain all three instances of SQL Server? (think about it, there could be a lot of serious contention there)

  • Do all of these instances need to be in the same cluster?

And I do want to echo what @AaronBertrand has said above in his comment on your question. There is no such thing as an active / active [ / n [ / n ... ] ] cluster for SQL Server. It's extremely misleading to think of it like that, and that terminology has traditionally caused a lot of confusion (not to mention, the basic problem of a wrong title for something).