Failover Cluster, Availability Group, and Disaster Recovery

availability-groupsdisaster recoveryhigh-availability

We have an active/passive Windows Failover Cluster setup as an HA solution. Here is an example of what that might look like:

Cluster1: [Node1 'active', Node2 'passive']

We're looking to set up a DR solution by making use of Availability Groups in SQL Server 2016. To do this, we plan to have the following setup:

Cluster1: PRIMARY[Node1 'active', Node2 'passive'], SECONDARY[Node3 'standalone']

Node1 and Node2 can have resources failover to each other. They even share a storage. Node3 will be part of the same Windows Failover Cluster because it has to be in order for High Availability to work. However, Node3 will NOT share resources with Node1/Node2. Node3 will host the secondary replica, the primary replica will be on the instance that is shared between Node1 and Node2.

  1. Is our understanding that all nodes need to be on the same Windows Failover Cluster for Availability Groups to work correct? We read it here but aren't fully sure of what's being said.
  2. Is it possible to set up HA in this manner? Where Node1/Node2 share resources but Node3 has a separate instance which cannot ever be a part of Node1/Node2.

Best Answer

Is our understanding that all nodes need to be on the same Windows Failover Cluster for Availability Groups to work correct? We read it here but aren't fully sure of what's being said.

Yes this is correct. Although starting from SQL Server 2016 you have Distributed Availability Groups in which replicas can reside in different WSFC

Is it possible to set up HA in this manner? Where Node1/Node2 share resources but Node3 has a separate instance which cannot ever be a part of Node1/Node2.

Yes this is very much possible and I have this in my environment. Please note that in this case you would not be able to leverage automatic failover of replicas from SQL Server FCI to standalone node 3. You would have to reply on manual failover. This is because the AG replica resides on FCI which has its own failover.