1. 程式人生 > >部署AlwaysOn第一步:搭建Windows服務器故障轉移集群

部署AlwaysOn第一步:搭建Windows服務器故障轉移集群

了解 用戶 文件 所有結點 msdn settings nes 查看 sta

在Windows Server 2012 R2 DataCenter 環境中搭建集群之前,首先要對Windows服務器故障轉移集群(Windows Server Failover Cluster,簡稱WSFC)有基本的了解。WSFC必須部署在域管理環境中,由多臺服務器組成,每臺服務器稱作一個“結點”(Node),每個結點上都運行了Windows服務器故障轉移集群服務,整個集群系統允許部分結點掉線、故障或損壞而不影響整個系統的正常運作。集群自動檢測結點的健康狀態,一旦活躍結點發生異常,變為不可用,則另一臺結點服務器自動接管發生故障的服務器,升級為活躍服務器,並繼續處理任務,一臺服務器接管發生故障的服務器的過程稱為"故障轉移"。

一,Windows故障轉移集群的基本組成要素

結點和活躍結點(Active Node):組成集群的每臺Server叫做一個結點,在同一時刻,只能有一個結點處理用戶的請求,提供服務,該結點叫做活躍結點;活躍結點是由集群決定的,對用戶完全透明;

虛擬服務器(Virtual Server):集群中的所有結點組成一個虛擬服務器,也就是說,從集群的外部看,只能看到一個服務器,而看不到背後的一堆結點服務器,虛擬服務器擁有自己的機器名和IP地址,也稱作“虛擬網絡名”和“虛擬IP”,用戶通過虛擬網絡名和虛擬IP地址來訪問集群,實際上,虛擬網絡名和虛擬IP都在DNS服務器上登記在冊,和物理服務器的網絡名和IP地址沒有任何區別;

共享磁盤(Shared Array):所有需要在結點之間共享的資源,例如,SQL Server數據文件,錯誤日誌等,都被存儲在Shared Array上,不需要共享的文件則被存儲在每個結點的本地磁盤(Local Disk)上;

私有網絡和公共網絡:組成集群的多個結點之間,通過私有網絡(Private Network)和公共網絡(Public Network)連接起來,結點之間通過私有網絡發送“心跳信號”來感知彼此是否工作正常;公共網絡用來被集群外部的客戶端使用的網絡,外部客戶端通過公共網絡訪問集群節點;

技術分享

二,Windows 集群提供的功能

Windows集群無法提供負載均衡的能力,在任意時刻,集群中只有一個結點能夠處理用戶的請求,而其他結點都處於空閑狀態,處理用戶請求的結點叫做活躍(Active Node),活躍結點是由集群決定的,對用戶完全透明。

1,健康檢測和自動故障轉移

AlwaysOn高可用技術利用Windows服務器故障轉移集群的健康檢測和自動故障轉移特性,因此,AlwaysOn必須建立在WSFC之上:

健康檢測:結點之間,通過私有網絡互相發送心跳信號來感知彼此是否工作正常,這類信號稱作“心跳線”,一旦某臺服務器因為異常而無法回應信號,那麽剩余的結點就認為該結點“Dead”,把該結點從當前集群排除;集群的整體健康狀況,是由集群中結點的仲裁投票決定的。

自動故障轉移:以“心跳信號”監視各個結點服務器的健康狀況,如果主結點(Primary Node)不能響應心跳信號,那麽另一臺服務器自動升級為Primary Node,繼續處理任務,故障轉移的過程不會對應用程序造成影響,用戶甚至察覺不到虛擬服務器內部的故障轉移;

WSFC提供的功能很多,但是,部署AlwaysOn只需要了解這兩個機制,對於WSFC的其他應用,可以暫時不用了解,下面的第三,四,五章節,分步驟搭建WSFC。

2,集群的仲裁配置

仲裁投票(Quorum Voting):Quorum是仲裁,法定數量的意思,在仲裁模式下,仲裁配置決定集群在正常提供服務時,能夠容忍多少個結點發生故障。在集群中的故障結點達到仲裁(Quorum)規定的數量之前,集群能夠繼續提供服務。

WSFC在集群的結點之間進行健康檢測和仲裁投票,每一個結點通過周期性地發送心跳信號,檢測其他其他結點的健康狀態,並和其他結點共享健康數據,無法響應心跳信號的結點被認為處於異常狀態,集群的所有健康結點都會很快知道該結點出現故障。

仲裁結點集合是投票結點和見證結點(Witness)結合,仲裁結果由多數(Majority)結點決定,集群整體的健康狀態是由周期性的仲裁投票的結果決定的,WSFC根據仲裁投票的結果,執行自動故障轉移或者使集群離線:如果仲裁結點集合(Quorum Node Set)的投票結果表明大多數結點是健康的,那麽集群將進行故障轉移,繼續提供服務;如果投票結果是少數結點,那麽集群將處於離線狀態。關於集群的仲裁配置,請參考我的隨筆:《故障轉移集群的仲裁》。

3,集群的資源組

資源組:資源組是由一個或多個資源組成的組,故障轉移是以資源組為單位發生的,在任何時候,每個資源組都僅屬於集群中的一個結點,該結點是活躍結點。在配置資源組時,一個資源所依賴的其他資源必須和該資源配置在同一個資源組中,跨資源組的依賴關系是不存在的。

活躍結點擁有集群的資源組,能夠處理客戶端的請求,也就是說,擁有資源的結點為用戶提供服務。活躍結點也稱作主結點(Primary Node),集群中的其他結點稱作輔助結點(Secondary Nodes),在Primary Node出現故障時,集群自動將資源轉移到其他輔助結點。基於健康檢測的策略控制自動故障轉移的過程,故障轉移實際上是資源擁有關系(Resource Ownership)的轉移。

三,安裝Windows Server Failover Clustering(WSFC)服務

集群的每個結點服務器都必須在同一域中,並且都安裝了Windows Server Failover Clustering(WSFC)服務,安裝的過程十分簡單,按照該章節的步驟,只需幾步就安裝成功。

1,打開服務器管理器(Server Manager),選擇“Add roles and features”

技術分享

2,在添加功能向導中,勾選“Failover Clustering”,點擊“Next”,開始安裝

技術分享

3,在“Confirmation” Tab中,進行確認,點擊“Instanll”按鈕,進行安裝操作

技術分享

四,配置故障轉移集群

1,打開故障轉移機器管理器

安裝Failover Clustering 功能完成之後,打開Server Manager,在菜單Tools中選擇“FailOver Cluster Manager”,打開故障轉移機器管理器

技術分享

2,在故障轉移管理器中,創建集群

用戶在故障轉移管理器(Failover Cluster Manager)中,能夠對已經創建成功的Failover Cluster進行管理,查看集群的信息,監控集群的狀態和驗證(Validate)集群的配置等。在截圖的標記處,點擊Create Cluster,開始創建新的集群。

技術分享

3,添加集群的結點服務器

輸入集群的結點服務器名稱,節點服務器必須位於相同網段中,能夠相互訪問;

技術分享

4,驗證警告

如果需要對集群的基本環境,包括硬件,進行WSFC需求驗證,可以選擇“Yes”,本例選擇“No”,不驗證

技術分享

5,定義“用於管理群集的訪問點”

為集群命名,Cluster Name實際上是虛擬服務器的網絡名;集群的IP地址由系統自動配置,該IP地址實際上是虛擬服務器的IP地址;

技術分享

6,確認配置信息,點擊“Next”,創建新的集群

技術分享

五,配置集仲裁設置

當集群中的結點發生故障時,會由其他結點接手繼續提供服務,不過,當結點之間通信出現問題,或大多數結點發生故障時,集群就會停止服務,可是集群可以容忍多少個結點發生故障呢?這要由仲裁配置(Quorum Configuration)決定,仲裁配置使用多數原則,只要集群中健康運行的結點數量達到仲裁規定的數量(多數結點投贊成票),集群就會繼續提供服務,否則集群就停止提供服務。在停止提供服務期間,正常結點持續監控故障結點是否恢復正常,一旦正常結點的數量恢復到仲裁規定的數量,集群就恢復正常,繼續提供服務。

1,返回到故障轉移集群管理器,在“Failover Cluster Manage”下拉列表中展示創建成功的集群

技術分享

2, 右擊群集節點,在上下文菜單中點擊“More Actions”,在擴展菜單中選擇“Configure Cluster Quorum Settings”為該集配置仲裁

技術分享

3,打開配置集群仲裁的向導

技術分享

4,選擇仲裁配置選項,使用默認的仲裁配置,由集群決定仲裁管理選項

微軟推薦配置一個Quorum Witness,幫助實現集群的最高可用性,如果對仲裁配置不是很了解的話,可以使用默認選項,由集群決定仲裁配置。

技術分享

5,確認仲裁配置選項,點擊“Next”,開始配置集群的仲裁設置

技術分享

至此,Windows 服務器故障轉移集群搭建完成,用戶可以在WSFC的基礎之上,部署AlwaysOn高可用技術,創建可用性組(Availability Group)。

參考文檔:

Failover Cluster Step-by-Step Guide: Configuring the Quorum in a Failover Cluster

從0開始搭建SQL Server AlwaysOn 第二篇(配置故障轉移集群)

Windows Server Failover Clustering (WSFC) with SQL Server

AlwaysOn Failover Cluster Instances (SQL Server)

部署AlwaysOn第一步:搭建Windows服務器故障轉移集群