WINDOWS羣集之間經過心跳檢測(HeartBeat)各個節點是否正常在線,微軟稱此檢測爲lookalive,檢測經過UDP數據包中封裝的RPC信息進行傳送。默認狀況下爲每秒檢測一次,若是連續5次檢測失敗,則可能發生故障轉移。網絡
然而平常運維過程當中,存在網絡延遲和網絡擁擠的個別現象,尤爲是不一樣子網之間的通訊更是如此;公司AlwaysOn節點與SQLCluster羣集的通訊爲跨子網,所以在網絡繁忙時段,將可能出現網絡延遲致使檢測失敗。本文描述經過調整心跳檢測閾值,以最大程度的避免此狀況的發生。運維
經過cmd命令Cluster.exe /prop查看當前羣集的屬性信息,其中心跳閥值相關屬性:spa
SameSubnetDelay 默認表明每1秒執行一次Windows羣集心跳檢測,SameSubnetThreshold 表明Windows羣集容許最大心跳檢測失敗數5,超過這個數量就可能會引發羣集故障轉移。.net
心跳調整容許的範圍以下:最大容許每2秒檢測一次,連續10次失敗則爲失敗。3d
屬性blog |
默認值文檔 |
容許範圍值get |
SameSubnetDelaycmd |
1000mstable |
250ms~2000ms |
SameSubnetThreshold |
5 |
3~10 |
CrossSubnetDelay |
1000ms |
250ms~2000ms |
CrossSubnetThreshold |
5 |
3~10 |
經過cmd命令修改:
Cluster.exe /Prop SameSubnetDelay=2000
Cluster.exe /Prop SameSubnetThreshold=10
Cluster.exe /Prop CrossSubnetDelay=2000
Cluster.exe /Prop CrossSubnetThreshold =10
查看結果cluster.exe /prop
心跳檢測的簡單理解爲,Node1會發送一個鏈接序列號到Node2,Node2響應相同的序列號,Node1再次發送一個相同的序列號到Node2,且Node2再次迴應相同序列號。Node1將肯定此心跳序列完成並開始另外的序列檢測,若是在這某次檢測過程當中,心跳序列被刪除或未及時接收到,將表示missed這次心跳,默認過程連續五次心跳序列均missed,此節點被認爲非活動。
經過修改閥值,能夠解決必定程度上的網絡延遲,但並不能根本的解決問題,因此請記住對延遲或閾值設置的更改不會被視爲一種故障排除技術。對於心跳檢測默認使用IPv6,由於它是比IPv4更快的協議,若是已禁用 IPv6,它將使用 IPv4。故障轉移羣集不會混合和匹配 IPv6 和 IPv4。不能同時使用。