Date: 26 4 月, 2022
部署仲裁/見證的最佳方式
在最近的一次會議上,一位客戶提出了一個關於高可用性 (HA) 和仲裁/見證可行性需求的問題。 他們的問題是,“部署法定人數/見證人的最佳方式是什麼?”他們的問題的答案很簡單,沒有單一的最佳方式來部署仲裁。為了理解為什麼,讓我們從定義三個關鍵的東西開始:什麼是見證資源、仲裁資源和裂腦場景。
什麼是裂腦?
在正常的集群環境中,受保護的應用程序在集群的主節點上運行。如果該主節點的應用程序發生故障,集群軟件會將應用程序操作移動到輔助節點或遠程節點,該節點承擔主節點的角色。 在任何給定時間,只有一個主節點。
裂腦是指集群成員之間無法相互通信,但處於運行和可操作狀態,隨後同時擁有公共資源的情況。 實際上,您有兩個公交車司機在爭奪方向盤。裂腦,由於其破壞性,可能導致數據丟失或數據損壞,最好通過使用圍欄、仲裁、見證或集群仲裁的仲裁/見證功能來避免。
在大多數集群管理器中,在以下情況下會維持仲裁:
- 所有服務器都能夠看到所有集群對等方和見證服務器的相同狀態
- 所有服務器都能夠看到所有集群對等方的相同狀態,但不是見證服務器
- 所有服務器都可以看到見證資源,儘管彼此看不到,並避免出現腦裂情況
在大多數集群管理器中,仲裁會在以下情況下丟失:
- 服務器無法看到所有集群對等點和見證服務器
- 服務器無法看到大多數集群對等方,即使它們可以看到見證服務器
- 服務器無法訪問或維持對仲裁資源的訪問以成功仲裁仲裁成員資格和資源訪問
什麼是見證資源(或服務器)?
見證資源是服務器、網絡端點或設備,用於在集群具有偶數個成員時實現和維護仲裁。具有奇數成員的集群,使用集群多數,不需要使用見證資源作為集群服務器的所有成員來仲裁多數成員資格。
什麼是仲裁和仲裁資源?
仲裁資源是一種資源(設備、系統、塊存儲、文件存儲、文件共享等),用作仲裁集群狀態和成員資格的手段。在某些集群管理器中,仲裁是集群內的一種資源,它幫助或需要任何集群狀態和集群成員資格決策。在其他集群管理器中,quorum 起到了決勝局的作用,以避免腦裂。
部署仲裁的不止一種方法
鑑於仲裁的關鍵性質,HA 架構必須正確部署仲裁/見證資源,並且幸運(或不幸)沒有單一的,部署仲裁的最佳方式。有幾個因素可能會影響您的見證和仲裁資源的行為方式。這些因素包括:
1. 您的部署是本地、雲還是混合
在存在額外存儲設備(例如光纖通道存儲、電源控制設備或連接或傳統 stonith 設備)的本地數據中心中部署將為客戶提供可能不駐留在雲中的仲裁和見證功能的額外選項。同樣,雲和混合環境在可以部署的內容以及正在部署哪些用例仲裁以防止這些方面存在差異。 此外,延遲要求和差異可能會限制可用於仲裁/見證配置的設備和資源類型。
2. 你的恢復目標
在設計和構建仲裁和見證資源時,恢復目標也很重要。在示例兩節點集群(節點 A 和節點 B)中,當節點 A 失去與節點 B 的連接時,恢復的最高優先級是什麼。 如果見證/仲裁資源與節點 A 在同一網絡中,這可能導致節點 A 保持在線,但與客戶端斷開,而節點 B 無法評估仲裁和接管。同樣,如果仲裁設備僅存在於具有節點 B 的區域、數據中心或網絡中,則丟失可能導致資源故障轉移到已失效的網絡或中心或遠離功能和操作的主節點。
3. 基礎架構中可用數據中心(或區域)的冗餘
數據中心或區域的冗餘也是具有仲裁/見證的 HA 拓撲中的一個重要因素。 如果您的數據中心只有兩個級別的冗餘,您必須了解將仲裁/見證節點放置在與主集群節點或備用集群節點相同的數據中心之間的權衡。 如果數據中心有兩個以上的冗餘層,例如第三個可用區或訪問第二個區域,此選項將為集群提供更高級別的冗餘。
4. 容災要求
了解您真正的災難恢復需求也是您設計中的一個主要因素。 如果您的集群管理器軟件需要訪問仲裁/見證以便從整個數據中心中斷(或區域故障)中恢復,那麼您需要了解這對您的設計的影響。許多高可用性軟件包都有適用於這種情況的工具或方法,但如果您的軟件沒有,您的仲裁/見證人的設計和放置可能需要適應這一現實。
5. 集群內的成員數量及其位置
當集群包含奇數個節點時,通常不需要額外的仲裁/見證服務器。但是,如果在一個集群中只使用兩個節點或部署一個並不總是可用的 DR 節點可能會改變您的架構。作為客戶體驗副總裁,我曾與部署了三個節點架構的客戶合作,但為了節省成本,他們會自動定期關閉第三台服務器。
6.操作系統和集群管理器
關於仲裁/見證的最後一個因素是集群管理器和操作系統。在仲裁/見證的部署或仲裁狀態的仲裁方面,並非所有的 HA 軟件和集群管理器都是平等的。一些集群軟件需要共享磁盤進行仲裁,其他更靈活地允許共享(NFS、SMB、EFS、Azure 文件和 S3)。了解您的集群管理器需要什麼,以及它在仲裁方面支持的模式(簡單多數、見證、文件共享等)不僅會影響您部署的內容,還會影響您的部署方式。
部署仲裁/見證服務器的唯一最佳方法是了解供應商對仲裁/見證的定義及其可用選項,了解您的要求,考慮數據中心(或云環境)提供的限製或機會並構建解決方案為您的關鍵系統提供最高級別的保護,防止出現裂腦、錯誤故障轉移和停機。
-Cassius Rhue,客戶體驗副總裁