Windows伺服器故障轉移集群(Windows Server Failover Cluster,簡稱WSFC)使用仲裁投票(Quorum Voting)決定集群的健康狀況,或使故障自動轉移,或使集群離線。當集群中的結點發生故障時,會由其他結點接手繼續提供服務,不過,當結點之間通信出現問題,或大多數 ...
Windows伺服器故障轉移集群(Windows Server Failover Cluster,簡稱WSFC)使用仲裁投票(Quorum Voting)決定集群的健康狀況,或使故障自動轉移,或使集群離線。當集群中的結點發生故障時,會由其他結點接手繼續提供服務,不過,當結點之間通信出現問題,或大多數結點發生故障時,集群就會停止服務,可是集群可以容忍多少個結點發生故障呢?這要由仲裁配置(Quorum Configuration)決定,仲裁配置使用多數(Majority)原則,只要集群中健康運行的結點數量達到仲裁規定的數量(多數結點投贊成票),集群就會繼續提供服務,否則集群就停止提供服務。在停止提供服務期間,正常結點持續監控故障結點是否恢復正常,一旦正常結點的數量恢復到仲裁規定的數量,集群就恢復正常,繼續提供服務。仲裁投票預設是啟用的(Cluster Manged Voting:Enable)。
一,仲裁模式
仲裁模式是在WSFC 集群級別配置的,規定仲裁投票的方法,預設情況下,故障轉移集群管理器會基於集群結點的數量,自動推薦一個仲裁模式。仲裁配置影響集群的可用性,在集群中,重組的集群結點必須線上,否則集群將由於仲裁不足而必須停止服務。
1,術語解釋
仲裁(Quorum):法定數量,預先規定具有投票權的結點或見證(Witness)的數量;
仲裁投票(Quorum Voting)是指:法定數量的結點和見證進行投票,如果多數投贊成票,那麼判斷集群處於健康狀態;
投票節點(Voting Node):在集群中,擁有投票權的結點稱作投票結點,如果投票結點投贊成票,代表該結點認為集群是健康的;但是,單個結點不能決定集群整體的健康狀態。
投票見證(Voting Witness):除了投票結點能夠進行投票之外,共用的 File 和 Disk 也能投票,稱作投票見證,共用的File 投票見證,稱作文件共用見證(File Share Witness);共用的Disk 投票見證,稱作硬碟見證(Disk Witness);
仲裁結點集合(Quorum Node Set):擁有投票的結點和Witness統稱仲裁結點集合;由仲裁結點集合的投票結果決定集群整體的健康狀態。
2,仲裁模式
仲裁模式多數原則是指所有投票結點進行投票,如果贊成票占比在50%以上,那麼WSFC認為集群處於健康狀態,執行故障轉移,繼續提供服務,否則,WSFC認為集群出現嚴重故障,WSFC使集群離線,停止提供服務。根據仲裁結點集合的組成類型,將仲裁模式分為以下四種類型:
- 結點多數(Node Majority):在集群中,投票結點都是集群的結點伺服器,如果一半以上的投票結點(Voting Node)投贊成票,那麼WSFC判定集群是健康的;
- 結點和文件共用多數(Node and File Share Majority):和Node Majority模式相似,除了將遠程文件共用配置為一個投票見證(Voting Witness)之外,該共用文件稱作仲裁文件,或見證文件。使用仲裁文件,遠程文件擁有投票權,如果其他結點能夠連接到該共用文件,那麼認為該文件投一個贊成票。如果投票結點和文件共用投的贊成票占一半以上,那麼WSFC判定集群是健康的。作為一個最佳實踐,文件共用見證(File Share Witness)不要存儲在集群中的任何一個結點伺服器上,並且設置任何一個結點伺服器都有許可權訪問。
- 結點和硬碟多數(Node and Disk Majority):和Node Majority模式相似,除了將共用硬碟配置為一個投票見證(Voting Witness)之外,該共用硬碟稱作仲裁硬碟,或見證硬碟。仲裁硬碟需要共用存儲,集群中各個結點都需要掛載同一個共用硬碟。
- 只硬碟(Disk Only):沒有多數,僅僅把一個共用的硬碟作為唯一見證,集群中的任何一個結點能夠訪問該共用硬碟,這意味著,一旦仲裁硬碟離線,集群就會停止提供服務。
常見的仲裁模式是結點多數(Node Majority) 和 結點和文件共用多數(Node and File Share Majority),如果集群結點數量是奇數,那麼使用結點多數仲裁模式;如果集群結點數量是偶數,那麼使用結點和文件共用多數仲裁模式,該模式需要配置一個共用文件夾,集群中的各個結點都有許可權訪問該共用文件夾,並且該共用文件夾不能創建是集群的結點上。
二,仲裁配置(Quorum Configuration)
打開故障轉移管理器(Failover Cluster Manager),右擊集群結點,在上下文菜單中點擊“More Actions”,在擴展菜單中選擇“Configure Cluster Quorum Settings”,打開仲裁配置嚮導(Wizard),為該集群配置仲裁
Step1,打開仲裁配置嚮導(Wizard),開始配置仲裁
step2,選擇仲裁配置選項
仲裁配置共有三個選項:
- 使用預設的仲裁配置:該選項將仲裁配置選項的選擇權交由集群系統;
- 仲裁見證:該選項將集群中添加仲裁見證,由集群決定其他仲裁管理選項;
- 高級仲裁配置:由用戶控制仲裁配置的所有選項
本例選擇高級仲裁配置(Advanced quorum configuration),自主控制仲裁的所有配置選項
Step3,選擇投票設置(Voting)
預設情況下,集群中的每一個結點都是投票結點,通過顯式的移除結點的投票權,用戶可以調整投票仲裁的設置,本例選擇預設選項:All Nodes,這意味著,集群中的所有結點都擁有投票權。
Step4,選擇仲裁見證(Quorum Witness)
在集群中,能夠添加兩類仲裁見證:文件共用見證(File Share Witness) 和 硬碟見證(Disk Witness),硬碟見證是指增加一個共用的硬碟作為一個仲裁投票結點,文件共用見證是指增加一個文件共用作為一個仲裁投票結點,如果集群中的其他結點能夠訪問該結點,那麼認為該結點
Step5,選擇文件共用路徑
三,投票仲裁
預設情況下,故障轉移集群中的每一個結點都是集群仲裁結點,每一個結點都擁有投票權,如果一個結點投贊成票,那麼代表該結點認為集群是健康的,但是,單個結點不能決定集群整體的健康狀態,而是由集群中的所有仲裁結點的投票結果來決定。
在任何時刻,從每一個的結點的角度來看,其他結點可能處於離線狀態,或正在進行故障轉移,或由於網路連接失敗而處於不響應狀態,仲裁投票的關鍵在於確定所有投票結點的真實狀態。除了“Disk Only”仲裁模式之外,其他仲裁模式都依賴於投票結點之間周期性的心跳信號通信,一旦某個結點因為網路通信故障,系統宕機,硬體損壞,機房停電等異常而無法回應心跳信號,那麼剩餘的結點就認為該結點出現異常,把該結點從當前集群排除。WSFC統計所有投票結點的仲裁結果,決定集群的健康狀態。
如果集群的結點位於不同的子網(Subnet)中,當一個結點在子網1中被認為是故障結點時,實際上,該結點可能是由於網路通信故障而不能被子網1的結點感知,但是該結點在子網2中是線上的,健康的。如果投票結點在不同的子網中能夠建立多個投票仲裁,那麼將產生腦裂場景。在該場景中,位於不同仲裁的結點有不同的表現,使仲裁產生衝突,WSFC不能正確的執行故障轉移,可能產生數據不同步。腦裂場景只可能在系統管理員手動執行強制仲裁(Forced Quorum)操作時發生。
四,健康檢測和仲裁投票
WSFC在集群的結點之間進行健康檢測和仲裁投票,每一個結點通過周期性地發送心跳信號,檢測其他其他結點的健康狀態,並和其他結點共用健康數據,無法響應心跳信號的結點被認為處於異常狀態,集群的所有健康結點都會很快知道該結點出現故障。
仲裁結點集合是投票結點和見證結點(Witness)結合,仲裁結果由多數(Majority)結點決定,集群整體的健康狀態是由周期性的仲裁投票的結果決定的,WSFC根據仲裁投票的結果,執行自動故障轉移或者使集群離線:如果仲裁結點集合(Quorum Node Set)的投票結果表明大多數結點是健康的,那麼集群將進行故障轉移,繼續提供服務;如果投票結果是少數結點,那麼集群將處於離線狀態。
引用MSDN:
Each node in a WSFC cluster participates in periodic heartbeat communication to share the node's health status with the other nodes. Unresponsive nodes are considered to be in a failed state.
A quorum node set is a majority of the voting nodes and witnesses in the WSFC cluster. The overall health and status of a WSFC cluster is determined by a periodic quorum vote. The presence of a quorum means that the cluster is healthy and able to provide node-level fault tolerance.
WSFC uses a quorum-based approach to monitoring overall cluster health and maximize node-level fault tolerance. A fundamental understanding of WSFC quorum modes and node voting configuration is very important to designing, operating, and troubleshooting your AlwaysOn high availability and disaster recovery solution.
參考文檔:
WSFC Quorum Modes and Voting Configuration (SQL Server)
Failover Cluster Step-by-Step Guide: Configuring the Quorum in a Failover Cluster