章 2. 叢集作業

本章提供了各項叢集功能與特性的相關摘要。從建立叢集仲裁至節點隔離,這些不同的特性構成了 High Availability Add-On 的核心功能。

2.1. 仲裁總覽

為了維持叢集完整性和可用性,叢集系統使用了一項名為 quorum(仲裁)的概念,以避免資料損毀和遺失。當超過一半的叢集節點上線時,叢集便擁有仲裁。為了降低因為節點失效而造成資料損毀的機率,若叢集無仲裁的話,Pacemaker 就預設值會停下所有資源。
仲裁乃透過一項投票系統來建立的。當叢集節點未以正確的方式運作,或失去與整個叢集的通訊,多數的有效節點可進行投票並視需求將節點隔離以提供服務。
比方說,在一個包含了 6 個節點的叢集中,只有在至少 4 個叢集節點可運作的情況下,仲裁方可成立。若多數的節點離線或變得無法使用,叢集便無仲裁,而 Pacemaker 將會停下叢集服務。
Pacemaker 中的仲裁功能可避免 split-brain(裂腦)情況發生,此情況代表當叢集失去通訊,但各部分卻依然作為獨立叢集繼續運作,這可能會使相同的資料被寫入並造成損毀或遺失。
High Availability Add-On 中的仲裁支援乃透過名為 votequorum 的 Corosync 外掛程式所提供的,它允許管理員為叢集中的各個系統配置指定給其的投票數,以確保只有在多數投票存在時,叢集作業才允許進行。
在無多數投票的情況下(比方說有個雙節點的叢集,當內部通訊網路失效時造成 50% 的叢集分裂),votequorum 能被配置為擁有一項 tiebreaker 政策,管理員可透過配置這項政策來藉由使用剩餘的叢集節點(此節點依然與擁有最低節點 ID 的叢集節點保持通訊)來繼續保有仲裁。