SQL Cluster On Windows Failover Cluster
SQL Cluster On Windows Failover Cluster
AO
WSFC
Windows Server Failover Cluster, a feature of the Windows 2008 operating system
NIC
SAN
LUN
For many years now Windows Server Failover Clusters and Failover Cluster Instances have been a popular configuration for
highly available SQL Servers. Later, with SQL Server 2005 came database mirroring. Although mirroring was limited, it offered
an extra level of redundancy. Now with SQL Server 2012, we take a huge leap forward in highly available SQL Servers.
AlwaysOn is the new high availability feature in SQL Server 2012 and provides the ability to create multiple copies of a highly
available database. In order for AlwaysOn to provide this level of availability it utilizes the functionality
within Windows Server Failover Clusters. It doesn't by any means replace Failover Cluster Instances of SQL Server, rather, it
shares the use of the core technology presented by the Windows operating system. Just as you could with database
mirroring, you have the option to combine an AlwaysOn availability group with a SQL Server Failover Cluster Instance, but it
adds a great deal of complexity due to the strict AO implementation rules and the sharing of the Windows operating system
failover cluster feature.
In this article we're going to look at 2 different scenarios, the first provides a basic AlwaysOn configuration, the second will
show how an FCI can combine with AlwaysOn groups to provide an extremely resilient high availability option for your SQL
Server system.
Before we start, and to help us on our way, let's look briefly and individually at each of these technologies to understand a little
more about them.
AlwaysOn relies on the WSFC core functionality to achieve the high availability that AO offers, but does not require any of
the following shared resources associated with an FCI.
Shared disks
Shared IP address
Shared network name
Shared SQL Server and SQL Server agent resources
There is one exception to this rule, when creating an AlwaysOn group listener this will create a set of resources shared by
the AO group replicas, but note that this application\cluster group has no relation to a Failover Cluster Instance.
If you are using a listener for your AO group you are able to provide a central client access point for entry into the availability
group, this provides a great deal of resilience when used in your application connection strings.
AlwaysOn is a feature configured at the individual service level by using SQL Server Configuration Manager. A computer
node MUST first be a member of a valid WSFC before you may enable the AlwaysOn service feature. Availability
replicas MUST be situated on separate physical nodes. Given this, in an example, INST1 must reside on Node1 and INST2
must reside on Node2. You cannot install INST1 and INST2 on to Node1 and configure an AOgroup.
For a basic AlwaysOn configuration, each node has local disk storage and non-clustered instances of SQL Server
installed. Ultimately, AO removes the storage single point of failure that is common place with shared disks. The nodes are
completely standalone apart from their membership of a valid Windows Server Failover Cluster.
Now that we have a little background we may start to look at how these technologies interact.
Computer Nodes
AONode1.UKTrading.co.uk
AONode2.UKTrading.co.uk
192.168.1.41
192.168.1.42
WSFC Joined
SQLCluster01.UKTrading.co.uk
192.168.1.45
192.168.1.46
For this scenario, each cluster node listed above has the following local drive storage and a single non clustered instance of
SQL Server installed.
Computer Nodes
AONode1.UKTrading.co.uk
AONode2.UKTrading.co.uk
AONode3.UKTrading.co.uk
AONode4.UKTrading.co.uk
192.168.1.41
192.168.1.42
192.168.1.43
192.168.1.44
WSFC Joined
SQLCluster01.UKTrading.co.uk
192.168.1.50
192.168.1.51
192.168.1.46
"SQL-CL-INST\SiteLive" as detailed above. The FCI is using the following shared drives
G:
H:
L:
2 non clustered instances of SQL Server have been deployed as follows:
AONode1 has an instance named "DRRepl"
AONode2 has an instance named "CLMaint"
We have created an availability group titled SQLAOGrp1 on the clustered SQL Server instance called SQL-CL-INST\SiteLive
and we include the following instances as replicas
AONode1\DRRepl
AONode2\CLMaint