Failover Cluster Concepts

This post is primarily an online note for myself, which I'll make public in case someone else might find it helpful, but here's one issue I've seen cause more confusion among my customers than any other regarding SQL Server clustering. The SQL Server installation process does not create a cluster -- a cluster must already exist, and you can install SQL Server into it.

 

Windows Failover Cluster Concepts

Node: A server (physical or virtual)
Cluster: A set of one or more nodes
Group: a set of resources in a cluster
Resource: a clusterable item (e.g. a cluster-aware service such as SQL Server; a virtual cluster attribute such as a virtual server name or IP address)

An active node is any node that currently hosts one or more cluster resources. A passive node is any node that currently does not host even one cluster resource, but it is available to host one or more resources if needed.

Update: I previously said "...one node can also be part of multiple clusters..." and that was wrong. One node can support any number of failover resource groups, but only one instance of the cluster service runs on a single computer no matter how many resource groups it has running on it.

Links
Upgrading clustered SQL Server 2008: KB 958734

Other Notes

  • Failover clusters increase availability, they do not provide load-balancing.
  • The Microsoft Distrubuted Transaction Coordiator (MSDTC) is part of Windows, it is not part of SQL Server.
  • The SQL Server Database Engine has been cluster-aware since version 2000. By 'cluster-aware' I mean that it can be installed into a Windows failover cluster and can take full advantage of the cluster service for high-availability.
  • When you're installing SQL Server on a cluster, you have a choice early in the install process to choose to install a stand-alone instance or a cluster-aware instance. If you accidently install a stand-alone instance of SQL Server on a cluster node it will not be cluster-aware. There is no way to upgrade a stand-alone instance to a cluster-aware instance, even if it's on a cluster node -- you have to reinstall.
  • When using a clustered instance of SQL Server, use the SQL Server Configuration Manager to start and stop the SQL Server service because it's cluster-aware. The Services tool in the Control Panel/Administrative Tools is not cluster-aware, so if you use it to try to shut down an instance of SQL Server, the cluster will see SQL Server shutting down, not know why, and automatically start it up on another node.
  • SQL Server Analysis Services has been cluster-aware since version 2005. It can be installed together with the database engine, or it can be installed independently.
  • As of version 2008 R2, Reporting Services and Integration Services are not cluster-aware.
  • Is SQL Server Agent cluster-aware? Depends on what you mean: Agent is always installed with an instance of the database engine and is completely dependent on that database engine. You could argue that Agent isn't cluster-aware, it's just dependent on the database engine, or you could argue that Agent inherits cluster-awareness via the database engine that it was installed with.