Windows Failover Cluster Terminology
I must admit that one of the most confusing and frustrating sets of terminology that I encounter on a day to day basis relates to Microsoft Windows Clustering technology.
So lets start by saying that a Microsoft Windows failover cluster is a collection of servers that by working together increase the availability of applications and services that run on the cluster. The The servers that form part of the cluster are correctly referred to as nodes and are connected together by means of network communications. The behavior of the cluster is controlled through a set of software that is installed onto the underlying Windows operating system. If any one of the nodes fails one of the remaining node assumes responsibility for the services that were running on the failed node and restarts them on this alternative node, this processes is called failover. Because services often have dependencies on other resources such as disk, IP address and network names these resources are grouped together with the service in what is called a cluster group. Failover happens at the cluster group level so the service and all dependent resources are are moved together to the alternative node on failover.
Whilst there may be some new terminology introduced so far there is nothing here that, in my mind anyway, can lead to too much confusion.
Lets for illustration purposes assume that we are talking about a 2 node cluster, so two servers (Node A and Node B) form a single cluster.
When you install as the service described above SQL Server, and as would be normal on a standalone (non-clustered) this becomes known as an instance of SQL (SQL Server Instance 1).
This is correctly known as a single instance failover cluster, relatively self explanatory. However you will also notice that the first node (Node A) is running SQL and the second node (Node B) is not running anything (except for the basic OS requirements to support a cluster).
… and this is where some really old terminology comes back to haunt us, this configuration becomes know as an Active/Passive configuration; one server is doing “stuff” and the other isn't.
The next bit of confusion starts when you install a second instance of SQL (SQL Server Instance 2) on the cluster. I am intentionally showing both of them running on the same node in diagram bellow; remember that they are separate SQL Server instances and can failover to the other node if the node fails.
This is correctly known as multi instance failover cluster, again for the most part self explanatory, one cluster two instances of SQL.
However the instances (and their related resources) could just as easily be configured to run on separate nodes but is still correctly know multi instance failover cluster as it is exactly the same configuration.
But it is from this configuration the next piece of old terminology shows it ugly head, this configuration becomes know as an Active/Active configuration; both servers are doing “stuff”. The fact that they are doing different stuff (Node A is running SQL Server Instance 1 and Node B is running SQL Serer Instance 2) is lost in this terminology and leads to endless confusion which inevitably leads me to explaining all of the above.
So please use the correct terminology:
- single instance failover cluster and NOT Active/Pasive cluster
- multi instance failover cluster and NOT Active/Active cluster
Let me know if you think this post helps clarify or just adds to the confusion.
At least I don't have to do all the explaining and I can just point the victim of this bad terminology at this blog post.