具有 SQL Server 調整容錯移轉叢集網路閾值的 IaaS

本文介紹調整容錯移轉叢集網路之臨界值的解決方案。

徵狀

使用 SQL Server Always On 可用性群組在 IaaS 中執行 Windows 容錯移轉叢集節點時,建議將叢集設定變更為較寬鬆的監視狀態。 現成的叢集設定有限制,而且可能會造成不必要的中斷。 預設設定是專為高度調整的內部部署網路而設計,因此不會考慮因多租使用者環境(例如 Windows Azure (IaaS) )而造成的延遲。

Windows Server 容錯移轉叢集不斷地監視 Windows 叢集中節點的網路連線和健康情況。 如果無法透過網路連線到節點,則會採取復原動作來復原,並讓叢集中另一個節點上的應用程式和服務恢復連線。 叢集節點之間的通訊延遲可能會導致下列錯誤:

錯誤 1135 (系統事件記錄檔)

叢集節點節點 1 已從使用中的容錯移轉叢集成員資格中移除。 此節點上的叢集服務可能已停止。 這也可能是因為節點與容錯移轉叢集中其他使用中節點的通訊中斷。 執行 [驗證設定] 嚮導以檢查您的網路設定。 如果此狀況持續發生,請檢查此節點上與網路介面卡相關的硬體或軟體錯誤。 也請檢查節點所連接之任何其他網路元件的失敗,例如中樞、交換器或橋接器。

Cluster .log 範例:

0000ab34.00004e64::2014/06/10-07:54:34.099 DBG   [NETFTAPI] Signaled NetftRemoteUnreachable event, local address 10.xx.x.xxx:3343 remote address 10.x.xx.xx:3343
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO  [IM] got event: Remote endpoint 10.xx.xx.xxx:~3343~ unreachable from 10.xx.x.xx:~3343~
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO  [IM] Marking Route from 10.xxx.xxx.xxxx:~3343~ to 10.xxx.xx.xxxx:~3343~ as down
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO  [NDP] Checking to see if all routes for route (virtual) local fexx::xxx:5dxx:xxxx:3xxx:~0~ to remote xxx::cxxx:xxxd:xxx:dxxx:~0~ are down
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO  [NDP] All routes for route (virtual) local fxxx::xxxx:5xxx:xxxx:3xxx:~0~ to remote fexx::xxxx:xxxx:xxxx:xxxx:~0~ are down
0000ab34.00007328::2014/06/10-07:54:34.099 INFO  [CORE] Node 8: executing node 12 failed handlers on a dedicated thread
0000ab34.00007328::2014/06/10-07:54:34.099 INFO  [NODE] Node 8: Cleaning up connections for n12.
0000ab34.00007328::2014/06/10-07:54:34.099 INFO  [Nodename] Clearing 0 unsent and 15 unacknowledged messages.
0000ab34.00007328::2014/06/10-07:54:34.099 INFO  [NODE] Node 8: n12 node object is closing its connections
0000ab34.00008b68::2014/06/10-07:54:34.099 INFO  [DCM] HandleNetftRemoteRouteChange
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO  [IM] Route history 1: Old: 05.936, Message: Response, Route sequence: 150415, Received sequence: 150415, Heartbeats counter/threshold: 5/5, Error: Success, NtStatus: 0 Timestamp: 2014/06/10-07:54:28.000, Ticks since last sending: 4
0000ab34.00007328::2014/06/10-07:54:34.099 INFO  [NODE] Node 8: closing n12 node object channels
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO  [IM] Route history 2: Old: 06.434, Message: Request, Route sequence: 150414, Received sequence: 150402, Heartbeats counter/threshold: 5/5, Error: Success, NtStatus: 0 Timestamp: 2014/06/10-07:54:27.665, Ticks since last sending: 36
0000ab34.0000a8ac::2014/06/10-07:54:34.099 INFO  [DCM] HandleRequest: dcm/netftRouteChange
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO  [IM] Route history 3: Old: 06.934, Message: Response, Route sequence: 150414, Received sequence: 150414, Heartbeats counter/threshold: 5/5, Error: Success, NtStatus: 0 Timestamp: 2014/06/10-07:54:27.165, Ticks since last sending: 4
0000ab34.00004b38::2014/06/10-07:54:34.099 INFO  [IM] Route history 4: Old: 07.434, Message: Request, Route sequence: 150413, Received sequence: 150401, Heartbeats counter/threshold: 5/5, Error: Success, NtStatus: 0 Timestamp: 2014/06/10-07:54:26.664, Ticks since last sending: 36
0000ab34.00007328::2014/06/10-07:54:34.100 INFO    <realLocal>10.xxx.xx.xxx:~3343~</realLocal>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO    <realRemote>10.xxx.xx.xxx:~3343~</realRemote>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO    <virtualLocal>fexx::xxxx:xxxx:xxxx:xxxx:~0~</virtualLocal>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO    <virtualRemote>fexx::xxxx:xxxx:xxxx:xxxx:~0~</virtualRemote>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO    <Delay>1000</Delay>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO    <Threshold>5</Threshold>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO    <Priority>140481</Priority>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO    <Attributes>2147483649</Attributes>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO  </struct mscs::FaultTolerantRoute>
0000ab34.00007328::2014/06/10-07:54:34.100 INFO   removed
0000ab34.0000a7c0::2014/06/10-07:54:38.433 ERR   [QUORUM] Node 8: Lost quorum (3 4 5 6 7 8)
0000ab34.0000a7c0::2014/06/10-07:54:38.433 ERR   [QUORUM] Node 8: goingAway: 0, core.IsServiceShutdown: 0
0000ab34.0000a7c0::2014/06/10-07:54:38.433 ERR   lost quorum (status = 5925)

原因

有兩個設定可用來設定叢集的連線健康情況。

延遲這會定義在節點之間傳送叢集心跳的頻率。 延遲是傳送下一個心跳之前的秒數。 在相同的叢集中,相同子網上的節點與位於不同子網上的節點之間可能會有不同的延遲。

閾 值這會定義在叢集採取修復動作之前,會遺漏的心跳數目。 閾值是一些心跳。 在相同的叢集中,相同子網上的節點與位於不同子網上的節點之間可能會有不同的閾值。

依預設 Windows Server 2016 會將SameSubnetThreshold設定為10,並將SameSubnetDelay設定為1000毫秒。 例如,如果連線監視的10秒失敗,就會到達容錯移轉閾值,導致無法連線到叢集成員資格中的節點。 這會導致資源移至叢集中的另一個可用節點。 系統會報告叢集錯誤,包括回報上述) 的叢集錯誤 1135 (。

解決方案

若要解決此問題,請放寬叢集網路設定。 請參閱 心跳和臨界值

參考資料

如需微調 Windows 叢集網路設定的詳細資訊,請參閱調整容錯移轉叢集網路閾值

如需使用 cluster.exe 來調整 Windows 叢集網路設定的詳細資訊,請參閱如何設定容錯移轉叢集的叢集網路