What is a private heartbeat connection and how do I configure one for a Microsoft Windows 2008 SQL Cluster?

The following article will describe what a private heartbeat connection is and how to configure one between two nodes in a MS SQL 2008 SQL Cluster.

Q:What is a private heartbeat connection for a cluster?

A: In high availability services such as Microsoft SQL a private heartbeat connection is local network connection between two nodes in a active/ passive setup that sends vital information about the health of each node to ensure everything is working properly.  If one of the nodes does not have a “heartbeat” then Microsoft clustering services will automatically attempt failover to the passive node.  A private heartbeat connection usually consists of a network cable directly connected between each node.

Q:  Should a private heartbeat connection be used in a SQL 2008 cluster all the time?

A:  In some cases yes and in some cases no.  In previous versions of Microsoft Clustering Services a private heartbeat connection was considered “best practice” to ensure node health.  When Microsoft released the updated version of Clustering Services in Windows 2008 this was no longer a direct requirement.  Clustering Services is now smart enough to properly route external traffic and heartbeat traffic over the same network path unlike previous setups.  The major difference is in the way the heartbeat traffic is now sent.  Even with this being the case there are times that a private heartbeat should be used.  A common scenario to NOT need a private heartbeat connection is if you are using high availability networking per node.  Network Teaming/Bonding is such a case.  A common scenario where you SHOULD consider using a private heartbeat connection is if you are only using a single external network connection per node.

Q:  How do I determine if my heartbeat configuration is working?

A:  There are a number of tests that Microsoft Clustering services offer such as a Cluster Validation report.  There are also many articles from Microsoft’s own Knowledge Base which describe this subject in great detail.  While all of this information is useful it does not substitute for real world testing.  A controlled failover test of each node in a cluster is the one sure way to determine that Clustering Services will work properly in production.

In order to configure a private heartbeat traffic in Clustering services simply right click the private network in Microsoft Failover Cluster Manager and select properties.  Under the properties you then uncheck “Allow Clients To Connect Through This Network.”

clusternetwork

Selecting this option will then only allow network traffic created by the cluster to traverse the private network and keeping all client connections bound to the external connection.