故障轉移集群的仲裁

来源:http://www.cnblogs.com/ljhdo/archive/2017/01/20/5652643.html
-Advertisement-
Play Games

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.

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


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這是一本書的名字,叫做【Hadoop大數據分析與挖掘實戰】,我從2017.1開始學習 軟體版本為Centos6.4 64bit,VMware,Hadoop2.6.0,JDK1.7. 但是這本書的出版時間為2016.1,待到我2017.1使用時,一部分內容已經發生了翻天覆地的變化。 於是我開始寫這麼一... ...
  • pyspark 包介紹 子包 pyspark.sql module pyspark.streaming module pyspark.ml package pyspark.mllib package 子包 pyspark.sql module pyspark.streaming module pys ...
  • Redis簡介 Redis是用C語言開發的一個開源的高性能鍵值對(key-value)資料庫。它通過提供多種鍵值數據類型來適應不同場景下的存儲需求,目前為止Redis支持的鍵值數據類型如 下: 字元串類型(String) 哈希類型(hash) 列表類型(list) 集合類型(set) 有序集合類型( ...
  • 前言 本篇文章寫在新春佳節前夕,也是給IT運維朋友一個警醒,在春節長假前請妥善體檢自己的系統安心過個年。 千里之堤毀於蟻穴,一條看似簡單的語句就能拖垮整個系統,您的SQL Server很久沒體檢了吧? 就像一塊藏著刀片的蛋糕!怎能安度春節? 日誌暴增的問題處理過很多,這隻是很常規的一次,但是對於不是 ...
  • Case具有兩種格式。簡單Case函數和Case搜索函數。 這兩種方式,可以實現相同的功能。簡單Case函數的寫法相對比較簡潔,但是和Case搜索函數相比,功能方面會有些限制,比如寫判斷式。 還有一個需要註意的問題,Case函數只返回第一個符合條件的值,剩下的Case部分將會被自動忽略。 下麵我們來 ...
  • 一、概述 網上找了好多,發現好多不是linux系統的就是與現在新版本有出入,自己做小項目親手實踐了一下,供大家借鑒。 MySQL版本:mysql-5.7.17 下載方法: 1、MySQL官方網址https://www.mysql.com/downloads/ 2、下載方法: a、選擇對應模塊: b、 ...
  • 今天用VMware虛擬機安裝了Ubuntu 16.04,過程用點繁瑣,順便又安裝了VMware tools,這樣就可以全屏顯示Ubuntu系統了,下麵是具體的安裝過程! 第一步:準備工作 1.下載Ubuntu,網址是http://cn.ubuntu.com/download/ 我選擇下麵這個版本的6 ...
  • 警告1909。無法創建快捷方式VMware Workstation Pro.Ink。的解決方法! ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...