在Windows Server 2012 R2 DataCenter 環境中搭建集群之前,首先要對Windows伺服器故障轉移集群(Windows Server Failover Cluster,簡稱WSFC)有基本的瞭解。WSFC必須部署在域管理環境中,由多台伺服器組成,每台伺服器稱作一個“結點” ...
在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)