004.Windows Server 故障轉移群集 (WSFC)簡介


一 WSFC 簡介

1.1 WSFC 概述

“Windows Server 故障轉移群集”(WSFC) 群集是一組獨立的服務器,它們共同協作以提高應用程序和服務的可用性。SQL Server 2012 利用 WSFC 服務和功能支持 AlwaysOn 可用性組和 SQL Server 故障轉移群集實例。
Windows Server 故障轉移群集提供了各種基礎結構功能來支持所承載的服務器應用程序(如 Microsoft SQL Server 和 Microsoft Exchange)的高可用性和災難恢復方案。 如果一個群集節點或服務失敗,則該節點上承載的服務可通過“故障轉移”的過程自動或手動轉移到另一個可用節點。
WSFC 群集中的節點協同工作,共同提供如下所示功能:
  • 分布式元數據和通知
群集中的每個節點上維護着 WSFC 服務和承載的應用程序元數據。除了承載的應用程序設置之外,此元數據還包括 WSFC 配置和狀態。對一個節點的元數據或狀態進行的更改會自動傳播到群集中的其他節點。
  • 資源管理
群集中的各節點可能提供物理資源,如直接連接存儲、網絡接口和對共享磁盤存儲的訪問。承載的應用程序將其本身注冊為群集資源,並可配置啟動和運行狀況對於其他資源的依賴關系。
  • 運行狀況監視
節點間和主節點運行狀況檢測是通過結合使用信號樣式的網絡通信和資源監視來實現的。群集的總體運行狀況是由群集中節點仲裁的投票決定。
  • 故障轉移協調
每個資源都配置為由主節點承載,並且每個資源均可自動或手動轉移到一個或多個輔助節點。基於運行狀況的故障轉移策略控制節點之間資源所有權的自動轉移。在發生故障轉移時通知節點和承載的應用程序,以便其做出適當的響應。

1.2 WSFC 術語和定義

  • WSFC 群集 (WSFC cluster)
“Windows Server 故障轉移群集”(WSFC) 群集是一組獨立的服務器,它們共同協作以提高應用程序和服務的可用性。
  • 故障轉移群集實例 (Failover cluster instance)
一個 Windows 服務實例,用於管理 IP 地址資源、網絡名稱資源和運行一個或多個應用程序或服務所需的其他資源。客戶端可以使用網絡名稱訪問組中的資源,類似於使用計算機名稱訪問物理服務器上的服務。但是,因為故障轉移群集實例是一個組,所以該實例可以故障轉移到另一個節點,而不會影響基礎名稱或地址。
  • 節點 (Node)
作為服務器群集的活動或非活動成員的 Microsoft Windows Server 系統。
  • 群集資源 (Cluster resource)
節點可以擁有的物理實體或邏輯實體,可聯機和脫機、在節點間移動和作為群集對象進行管理。在任何時間點,群集資源只能為單個節點所擁有。
  • 資源組 (Resource group)
作為單個群集對象管理的群集資源集合。通常,資源組包含運行特定應用程序或服務所需的所有群集資源。故障轉移和故障回復始終作用於資源組。
  • 資源依賴項 (Resource dependency)
一個資源所依賴的另一個資源。如果資源 A 依賴於資源 B,則 B 是 A 的依賴項。
  • 網絡名稱資源 (Network name resource)
作為群集資源進行管理的邏輯服務器名稱。網絡名稱資源必須與一個 IP 地址資源結合使用。
  • 首選所有者 (Preferred owner)
資源組優先運行的節點。每個資源組都按優先順序與首選的所有者列表關聯。在自動故障轉移過程中,資源組將移動到首選所有者列表中的下一個首選節點。
  • 可能的所有者 (Possible owner)
可在其上運行資源的輔助節點。每個資源組都與一系列可能的所有者關聯。資源組僅可故障轉移到作為可能的所有者列出的節點。
  • 仲裁模式 (Quorum mode)
故障轉移群集中的仲裁配置,用於確定群集可以承受的節點故障數。
  • 強制仲裁 (Forced quorum)
即使僅有仲裁所需的少數元素進行通信,該過程也會啟動群集。

二 SQL Server AlwaysOn 和 WSFC

2.1 結合概述

SQL Server 2012 AlwaysOn 是一個充分利用 WSFC 的新的高可用性和災難恢復解決方案。AlwaysOn 提供一個集成、靈活的解決方案,用於提高應用程序可用性,並提供更好的硬件投資回報,還簡化高可用性部署和管理。
AlwaysOn 可用性組和 AlwaysOn 故障轉移群集實例將 WSFC 用作一種平台技術,將組件注冊為 WSFC 群集資源。相關的資源將合並為一個“資源組”,這些資源可能依賴於其他 WSFC 群集資源。這樣,WSFC 群集服務就可以感測並標明是否需要重新啟動 SQL Server 實例,或自動將其故障轉移到 WSFC 群集中的不同服務器節點上。

2.2 實例級高可用性以及 AlwaysOn 故障轉移群集實例

一個 AlwaysOn“故障轉移群集實例”(FCI) 是一個安裝在 WSFC 群集中的節點上的 SQL Server 實例。這種類型的實例的資源依賴於共享磁盤存儲(通過 Fibre 通道或 iSCSI SAN)和虛擬網絡名稱。虛擬網絡名稱的資源依賴於一個或多個虛擬 IP 地址(每個地址位於不同子網中)。SQL Server 服務和 SQL Server 代理服務均注冊為資源,且都依賴於虛擬網絡名稱資源。
發生故障轉移時,WSFC 服務將實例的資源所有權轉移到指定的故障轉移節點。然后,SQL Server 實例在故障轉移節點上重新啟動,數據庫恢復如常。在任何給定時刻,群集中只有一個節點可以承載 FCI 和基礎資源。
注意:AlwaysOn 故障轉移群集實例要求使用對稱共享磁盤存儲,如存儲區域網絡 (SAN) 或 SMB 文件共享。 共享磁盤存儲卷必須可用於 WSFC 群集中所有可能的故障轉移節點。

2.3 數據庫級高可用性與 AlwaysOn 可用性組

“可用性組”是一組共同實現故障轉移的用戶數據庫。一個可用性組包含一個主“可用性副本”和一至四個輔助副本,這些副本通過基於 SQL Server 日志的數據移動來實現數據保護以進行維護,無需共享存儲。每個副本均由 WSFC 群集的不同節點上的 SQL Server 實例承載。可用性組和相應的虛擬網絡名稱注冊為 WSFC 群集中的資源。
主副本節點上的“可用性組偵聽器”響應要求連接到虛擬網絡名稱的傳入客戶端請求,偵聽器基於連接字符串中的屬性將每個請求重定向到相應的 SQL Server 實例。
當發生故障轉移時,不是將共享物理資源的所有權轉移到另一個節點,而是利用 WSFC 重新配置另一個 SQL Server 實例上的輔助副本,使其成為可用性組的主副本。然后,將可用性組的虛擬網絡名稱資源轉移到該實例。
在任何給定時刻,只有單個 SQL Server 實例可承載可用性組數據庫的主副本,而所有關聯的輔助副本都必須分別駐留在單獨的實例上,並且每個實例必須駐留在單獨的物理節點上。
注意:AlwaysOn 可用性組不要求部署故障轉移群集實例或使用異步共享存儲(SAN 或 SMB)。
故障轉移群集實例 (FCI) 可與可用性組結合使用,以提高可用性副本的可用性。但是,為了防止 WSFC 群集中出現潛在的爭用情況,不支持可用性組自動故障轉移到駐留在 FCI 上的副本,也不支持從駐留在 FCI 上的副本自動故障轉移到可用性組。

三 WSFC 運行狀況監視和故障轉移

3.1 概述

AlwaysOn 解決方案的高可用性是通過積極主動地監視物理和邏輯 WSFC 群集資源的運行狀況,以及自動故障轉移到冗余硬件和重新配置冗余硬件來實現的。系統管理員還可以對可用性組或 SQL Server 實例啟動從一個節點到另一個節點的“手動故障轉移”。

3.2 節點、故障轉移群集實例和可用性組的故障轉移策略

“故障轉移策略”是在 WSFC 群集節點、SQL Server 故障群集實例 (FCI) 以及可用性組級別配置的。這些策略基於非正常運行的群集資源狀態和節點響應的嚴重性、持續時間和頻率,它們可以觸發服務重新啟動或將群集資源從一個節點“自動故障轉移”到另一個節點,或者可以觸發將可用性組主副本從一個 SQL Server 實例移到另一個此類實例。
可用性組副本的故障轉移不影響基礎 SQL Server 實例。FCI 的故障轉移將隨實例一起移動所承載的可用性組副本。

3.3 WSFC 資源運行狀況檢測

WSFC 群集節點中的每個資源都可以定期或按需報告其狀態和運行狀況。很多情況可以指示資源故障;例如,電源故障、磁盤或內存錯誤、網絡通信錯誤或服務不響應。
WSFC 群集資源(如網絡、存儲或服務)可能彼此依賴。資源的累計運行狀況由持續匯總其運行狀況和其每個資源依賴項的運行狀況來確定。

3.4 WSFC 節點間運行狀況檢測和仲裁投票

WSFC 群集中的每個節點都參與周期性信號通信,以便與其他節點共享該節點的運行狀況。未響應的節點被認為是處於故障狀態。
“仲裁”節點集是 WSFC 群集中的大多數投票節點和見證服務器。WSFC 群集的總體運行狀況和狀態是由定期“仲裁投票”確定的。仲裁的存在意味着群集運行狀況正常,且能提供節點級別的容錯能力。
“仲裁模式”在 WSFC 群集級別配置,用於指示用於仲裁投票的方法以及執行自動故障轉移或使群集脫機的時間。
提示:WSFC 群集中最好始終有奇數數目的仲裁投票。為進行仲裁投票,不必在群集的所有節點上安裝 SQL Server。其他服務器可以充當仲裁成員,或者可以將 WSFC 仲裁模式配置為將遠程文件共享用作補救措施。
3.5 通過強制仲裁進行災難恢復
根據操作實踐和 WSFC 群集配置,您可以引發自動故障轉移和手動故障轉移,同時仍保持可靠、容錯的 SQL Server AlwaysOn 解決方案。但是,如果 WSFC 群集中合格投票節點的仲裁彼此之間無法通信,或者 WSFC 群集無法執行運行狀況驗證,則 WSFC 群集可能會脫機。
如果 WSFC 群集由於計划外災難或由於持續的硬件或通信故障而導致脫機,則需要管理員手動干預才能“強制仲裁”,並在非容錯配置中將仍有效的群集節點變為聯機狀態。
之后,還必須執行一系列步驟來重新配置 WSFC 群集,恢復受影響的數據庫副本,並重新建立一個新仲裁。

四 SQL Server AlwaysOn 組件與 WSFC 的關系

SQL Server AlwaysOn 和 WSFC 功能和組件之間存在多層關系。
  • AlwaysOn 可用性組承載於 SQL Server 實例上。
指定將連接到主數據庫或輔助數據庫的邏輯可用性組偵聽器名稱的客戶端請求將重定向至基礎 SQL Server 實例或 SQL Server 故障轉移群集實例 (FCI) 的相應實例網絡名稱。
  • “SQL Server 實例”當前承載於單個節點上。
如果存在,則獨立的 SQL Server 實例始終駐留在具有靜態實例網絡名稱的單個“節點”上。如果存在,則 SQL Server FCI 在兩個或多個具有單個虛擬“實例網絡名稱”的可能的故障轉移節點之一上處於活動狀態。
  • “節點”為 WSFC 群集的成員。
每個節點上存儲了所有節點的WSFC 配置元數據和狀態。每個服務器都為用戶或系統數據庫提供非對稱存儲或共享存儲 (SAN) 卷。在一個或多個 IP 子網上,每個服務器都至少具有一個物理網絡接口。
  • WSFC 服務監視一組服務器的運行狀況和管理它們的配置。
“Windows Server 故障轉移群集 (WSFC)”服務將對“WSFC 配置”元數據和狀態的更改傳播到群集中的所有節點。部分元數據和狀態可能存儲在 WSFC 仲裁見證服務器遠程文件共享上。兩個或更多活動的節點或見證服務器構成一個仲裁,以便對 WSFC 群集的運行狀況進行投票。
  • AlwaysOn 可用性組注冊表項是 WSFC 群集的子項。
如果您刪除后重新創建了 WSFC 群集,則必須在原始 WSFC 群集上啟用了 AlwaysOn 可用性組的每個服務器實例上都禁用然后重新啟用 AlwaysOn 可用性組功能。
SQL Server AlwaysOn 組件上下文關系圖
127
參考官方:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2012/hh270278(v%3dsql.110)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM