Set Windows Failover Cluster Timeout Thresholds

Purpose:

When dealing with a single site the default Windows Failover Cluster timeout settings have always done a good job for me but, once you branch out into multiple geographic sites, maintaining clusters across those sites often requires tweaking these settings.

NOTE: These changes are generic to any cluster but they are most notably used when you have an off-site DAG for Microsoft Exchange.

Setting Cluster Heart Beat Timeout Settings:

By default your WFC connection will fail when 5 pings are lost (1 ping per second for a total of 5 seconds). The below cluster.exe commands are run on only one of the clustered nodes and will apply to all of them. In my example, the thresholds will be changed to a threshold of 10 pings lost with pings being sent every 2 seconds for same site and every 4 seconds for cross site (totals of 20 seconds and 40 seconds) but you can configure them to whatever you feel is appropriate to the latency and stability of your cross data-center connection.

With Command Prompt:

Run command prompt as administrator.

Execute the following to change the same-site heart beat to 2 seconds (replace clustername with the actual WFC name).

cluster /cluster:clustername /prop SameSubnetDelay=2000:DWORD

Execute the following to change the cross-site heart beat to 4 seconds (replace clustername with the actual WFC name).

cluster /cluster:clustername /prop CrossSubnetDelay=4000:DWORD

Execute the following to change the same-site ping loss threshold to 10 lost pings(replace clustername with the actual WFC name).

cluster /cluster:clustername /prop SameSubnetThreshold=10:DWORD

Execute the following to change the cross-site ping loss threshold to 10 lost pings(replace clustername with the actual WFC name).

cluster /cluster:clustername /prop CrossSubnetThreshold=10:DWORD

With Powershell:

Run PowerShell as administrator.

Import the FailoverClusters module.

Import-Module FailoverClusters

Execute the following to change the same-site heart beat to 2 seconds (replace clustername with the actual WFC name).

(get-cluster).SameSubnetDelay = 2000

Execute the following to change the cross-site heart beat to 4 seconds (replace clustername with the actual WFC name).

(get-cluster).CrossSubnetDelay = 4000

Execute the following to change the same-site ping loss threshold to 10 lost pings(replace clustername with the actual WFC name).

(get-cluster).SameSubnetThreshold = 10

Execute the following to change the cross-site ping loss threshold to 10 lost pings(replace clustername with the actual WFC name).