Exchange故障轉移羣集網絡閥值調優

概述   

Windows Server故障轉移集羣是一個高可用性平臺,它不斷監視集羣中的網絡連接和節點的健康狀況。如果一個節點無法通過網絡訪問,那麼將採取恢復操作來恢復集羣中的另一個節點上的應用程序和服務,並使其聯機。

    

    缺省情況下,故障轉移集羣被配置爲提供最高級別的可用性,停機時間最小。默認的開箱即用設置是針對服務器完全丟失的故障進行優化的,我們將在本博客中稱之爲硬故障。這些將是不可恢復的故障場景,例如非冗餘硬件或電源的故障。在這些情況下,服務器將丟失,而故障轉移集羣的目標是非常快速地檢測服務器的丟失,並在集羣中的另一臺服務器上快速恢復。要從硬故障中實現這種快速恢復,集羣健康監測的默認設置是相當積極的。但是,它們是完全可配置的,可以爲各種場景提供靈活性。


    這些默認設置爲大多數客戶提供了最佳的行爲,但是,當集羣從幾英寸擴展到可能相隔幾英里時,集羣可能會暴露在節點之間附加的、可能不可靠的網絡組件中。另一個因素是,普通服務器的質量在不斷提高,加上通過冗餘組件(如雙電源、網卡組和多路徑I/O)增強的彈性,非冗餘硬件故障的數量可能相當少。由於硬故障可能不那麼頻繁,一些客戶可能希望針對臨時故障對集羣進行調優,此時集羣對節點之間的短暫網絡故障更有彈性。通過增加缺省故障閾值,可以降低對持續較短時間的簡短網絡問題的敏感性。


權衡

重要的是,大家要理解下面提到的權衡沒有絕對的答案,優化的設置可能因您的特定業務需求和服務水平協議而異。

  • 積極監控 - 提供最快的故障檢測和硬故障恢復,提供最高級別的可用性。集羣對瞬態故障的容忍度較低,在某些情況下,當存在瞬態網絡中斷時,可能會過早地進行故障轉移資源。

  • 放鬆監控 - 提供更寬容的故障檢測,提供更大的容忍度的短暫瞬態網絡問題。這些較長的超時將導致集羣從硬故障中恢復,這將花費更多的時間並增加停機時間。


    把它想象成你的手機,當電話的另一端沒有聲音時,你願意坐在那裏說“你好”多長時間?…你還在聽嗎?…你還在聽嗎??在你掛斷電話給那個人回電話之前。當另一端沉默時,你不知道他們何時甚至是否會回來。
你需要問自己的關鍵問題是:什麼對你更重要?當你拔下電源線時,要快速恢復,還是要對網絡故障保持容忍度?


設置

影響集羣心跳和節點間健康檢測的主要設置有四種。

  • 延遲 這定義了在節點之間發送集羣心跳信號的頻率。延遲是在發送下一個心跳信號之前的秒數。在同一個集羣中,同一子網上的節點之間、不同子網上的節點之間以及不同故障AD站點上的節點之間可能存在不同的延遲。

  • 閾值 - 這定義了在集羣採取恢復操作之前錯過的心跳信號次數。閾值是心跳信號的次數。在同一個集羣中,同一子網上的節點之間、不同子網上的節點之間以及不同故障AD站點上的節點之間可以有不同的閾值。


    重要的是要理解延遲和閾值對總體健康檢測都有累積影響。例如,將cross - subnetdelay設置爲每2秒發送一次心跳,並將cross - subnetthreshold設置爲在進行恢復之前錯過的10次心跳,這意味着在採取恢復操作之前,集羣的總網絡容忍度可以達到20秒。一般來說,繼續發送頻繁的心跳,但有更大的閾值是首選的方法。增加延遲的主要場景是,節點之間發送的數據是否有進入/退出費用。下表列出了用於調優集羣心跳的屬性以及默認值和最大值。


image.png

    爲了更好地容忍瞬態故障,建議在Win2008 / Win2008 R2 / Win2012 / Win2012 R2上將相同的ubnetthreshold和cross - subnetthreshold值增加到比Win2016更高些。注意:如果Hyper-V角色安裝在Windows Server 2012 R2故障轉移集羣上,SameSubnetThreshold默認值將自動增加到10,而cross - subnetthreshold默認值將自動增加到20。安裝以下熱修復程序後,Windows Server 2012 R2上的默認心跳值將增加到和Windows Server 2016上的值一樣。

https://support.microsoft.com/en-us/kb/3153887


配置

    集羣心跳配置設置被認爲是高級設置,僅通過PowerShell公開。可以在集羣啓動並運行時設置這些設置,而不需要停機,並且將立即生效,不需要重新啓動或重新啓動集羣。
要查看當前心跳配置值:

PS C:\> get-cluster | fl *subnet*

image.png

可以使用以下語法修改設置:

PS C:\> (get-cluster).SameSubnetThreshold = 20

image.png


日誌記錄的其他注意事項

    在Windows Server 2012中,在Cluster.log中有額外的日誌記錄,用於記錄心跳停止時的心跳流量。默認情況下,RouteHistoryLength設置爲10,這是默認閾值數量的兩倍。如果您增加了SameSubnetThreshold或CrossSubnetThrehold值,建議將RouteHistoryLength值增加到該值的兩倍,以確保在需要排除正在丟棄的心跳包的故障時,有足夠的日誌記錄。這可以通過以下語法實現:

PS C:\> (get-cluster).RouteHistoryLength = 20

有關因網絡通信問題而從集羣成員中刪除節點的故障排除問題的更多信息,請參見以下博客:

http://blogs.technet.com/b/askcore/archive/2012/02/08/having-a-problem-with-nodes-being-removed-from-active-failover-cluster-membership.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章