僅使用一個節點使 Windows 故障轉移群集聯機
我想設置一個策略,以便我的故障轉移群集始終投入使用,即使只有一個(兩個節點中的一個)可用。
背景:我在集群中只有兩個節點,外加 DC 共享中的見證仲裁。對於這個問題,假設 DC 保持執行狀態。(Windows 伺服器 2019)。
如果我關閉 node1,則 node2 將處於活動狀態。如果我隨後關閉 node2,則集群將停止(顯然),但是,如果我隨後僅啟動 node1,則集群將永遠無法恢復。如果沒有 node2,它不僅不會恢復,而且我看不到使用集群管理器使集群投入使用的簡單方法。在這種情況下,我可以恢復集群的唯一方法是**啟動 node2,但是(對我而言)這似乎不是真正的高可用性。IMO 我應該能夠設置策略或有一種相當簡單的方法使集群重新上線(可能在等待一段時間之後),即使 node2永遠不會恢復。
我只是在想這個錯誤的方式還是遺漏了一些明顯的東西?
更新:我確實看到了一個錯誤:
Node 'SOM2' failed to form a cluster. This was because the witness was not accessible. Please ensure that the witness resource is online and available.
但是當時witness是可用的,這讓我懷疑這是權限問題,即witness share對集群可用,但不是每個節點上的集群服務賬戶。那可能嗎?
見證共享上是否有一些特殊的權限設置,以確保每個節點上的本地服務帳戶都可以訪問它?
更新:
要修復權限錯誤(不是中心問題),我需要使用以下 powershell 命令:
https://docs.microsoft.com/en-us/powershell/module/failoverclusters/set-clusterquorum
檢查見證人的權限以允許由正確的域帳戶進行完全控制,例如密碼永不過期且無法更改的服務帳戶。然後,在集群主機上,首先去掉目前的見證配置:
Set-ClusterQuorum -NoWitness Get-ClusterResource
如果需要的話:
Remove-ClusterResource -Name "File Share Witness"
或使用故障轉移群集管理器將其刪除
然後,使用必要的域憑據重新添加文件共享見證以允許訪問:
Set-ClusterQuorum -NodeAndFileShareMajority \\server\path-to-witness -Credential $(Get-Credential)
正如@stuka 所說,這是設計使然。在整個集群關閉之前,該文件已被活動節點鎖定。Node1 無法知道 Node2 實際上並不線上,但無法通過集群網路訪問。它必須依賴鎖定的文件是正確的。在這種情況下,如果節點 1 上線,情況會更糟,就像集群網路出現故障一樣,任何一個節點都無法打破仲裁投票的束縛。
如果您確實遇到這種情況,您必須編輯仲裁設置並手動強制節點重新聯機。
在實踐中,這不應該引起關注,因為集群很少會完全離線。
兩個節點集群在 HA 方面總是會有所妥協。見證文件共享建立仲裁,但它不能涵蓋所有場景。3 節點(或其他奇數節點)集群將提供更好的容錯能力。