故障轉移集群的仲裁

来源: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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...