跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Linux Enterprise High Availability Extension 文件 / Quick Start Guides / Geo 叢集快速入門
SUSE Linux Enterprise High Availability Extension 15 SP3

Geo 叢集快速入門

SUSE Linux Enterprise High Availability Extension 15 SP3

出版日期:December 11, 2023

Geo 叢集可保護整個全域分散式資料中心的工作負載。本文件會引導您使用 ha-cluster-bootstrap 套件提供的 Geo 開機程序檔完成 Geo 叢集的基本設定。

原著者: Tanja RothThomas Schraitle

1 概念綜覽

基於 SUSE® Linux Enterprise High Availability Extension 的 Geo 叢集可視為覆蓋叢集,其中每個叢集站點相當於傳統叢集中的一個叢集節點。覆蓋叢集由投票間叢集票證管理員 (以下簡稱「投票間」) 管理。Geo 叢集中的各方都會執行一個服務,即 boothd。它會與其餘站點上執行的投票間精靈連接,並交換连接性詳細資料。投票間依賴稱為「票證」的叢集物件來保持叢集資源在各站點之間的高度可用性。票證可授予在特定叢集站台上執行特定資源的權限。投票間可保證每個票證一次只會授予給一個站點。

如果兩個投票間例項之間的通訊中斷,則可能是因為叢集站點之間的網路發生故障,其中一個叢集站點中斷運作。在此情況下,您需要使用一個額外的例項 (第三個叢集站點或仲裁方) 來就各決策 (例如在站點間進行資源的容錯移轉) 達成一致意見。仲裁方是一部以特殊模式執行投票間例項的機器 (不屬於叢集)。每個 Geo 叢集都可以有一或多個仲裁方。

雙站點叢集 - 2x2 個節點 + 仲裁方 (選擇性)
圖 1︰ 雙站點叢集 - 2x2 個節點 + 仲裁方 (選擇性)

也可以執行仲裁方的雙站點 Geo 叢集。在此情況下,Geo 叢集管理員需要手動管理票證。如果同時將一個票證授予多個站點,投票間會顯示一則警告。

如需用於 Geo 叢集的概念、元件和票證管理的更多詳細資料,請參閱管理指南

2 使用情境

下面,我們將會設定一個包含兩個叢集站點和一個仲裁方的基本 Geo 叢集:

  • 我們假設叢集站點名為 amsterdamberlin

  • 我們假設每個站點分別包含兩個節點。節點 alicebob 屬於叢集 amsterdam。節點 charliedoro 屬於叢集 berlin

  • 站點 amsterdam 將分配到以下虛擬 IP 位址:192.168.201.100

  • 站點 berlin 將分配到以下虛擬 IP 位址:192.168.202.100

  • 我們假設仲裁方的 IP 位址為 192.168.203.100

繼續操作前,請確認已符合以下要求:

要求
兩個現有的叢集

您至少擁有兩個要合併到 Geo 叢集中的現有叢集(如果需要先設定兩個叢集,請依照安裝與設定快速入門中的說明操作。)

有意義的叢集名稱

每個叢集都有一個有意義的名稱,該名稱可反映其位置,定義於 /etc/corosync/corosync.conf 中。

仲裁方

您已安裝不屬於任何現有叢集且將當成仲裁方使用的第三部機器。

有關各項的詳細要求,另請參閱第 3 節 「要求」

3 要求

將加入叢集的所有機器 (叢集節點和仲裁方) 上都至少需安裝以下模組和延伸:

  • Basesystem Module 15 SP3

  • Server Applications Module 15 SP3

  • SUSE Linux Enterprise High Availability Extension 15 SP3

安裝機器時,請選取 HA GEO Node 系統角色。如此將安裝精簡系統,這種情況下,預設會安裝模式 Geo Clustering for High Availability (ha_geo) 中的套件。

網路要求
  • 要用於每個叢集站點的虛擬 IP 在 Geo 叢集中必須可存取。

  • 必須可以透過每個投票間例項上的一個 UDP 和 TCP 埠連接網站。這意味著,必須相應地設定通訊雙方之間的所有防火牆與 IPsec 通道。

  • 可能需要做出其他有關開啟更多連接埠的設定決策 (例如,為 DRBD 或資料庫複製開啟連接埠)。

其他要求與建議
  • 所有網站上的所有叢集節點都應該同步到叢集外部的 NTP 伺服器。如需詳細資訊,請參閱 《SUSE Linux Enterprise Server 15 SP3 管理指南》

    如果節點未同步化,將很難分析記錄檔案和叢集報告。

  • 在 Geo 叢集中使用奇數數量的站點。這樣可確保在網路連接中斷時仍存有大部分站點 (從而避免出現電腦分裂情況)。如果叢集站點的數量為偶數,請使用一個仲裁方來處理票證的自動容錯移轉。如果您不使用仲裁方,則需要手動處理票證容錯移轉。

  • 每個站點上的叢集都有一個有意義的名稱,例如 amsterdamberlin

    已在相應 /etc/corosync/corosync.conf 檔案中定義每個網站的叢集名稱。

    totem {
        [...]
        cluster_name: amsterdam
        }

    使用下面的 crmsh 指令來變更名稱:

    root # crm cluster rename NEW_NAME

    停止 pacemaker 服務然後再將其啟動,以使變更生效:

    root # crm cluster restart
  • 不支援在一個叢集中採用混合架構。但是,對於地理叢集而言,地理叢集的每個成員 (叢集站點或仲裁程式) 可以採用不同的架構。例如,您可以執行一個包含三個成員 (兩個叢集站點和一個最低節點數程式) 的地理叢集,其中的一個叢集站點在 IBM Z 上執行,另一個叢集站點在 x86 上執行,最低節點數程式在 POWER 上執行。

4 Geo 開機程序檔綜覽

  • 使用 ha-cluster-geo-init 可將一個叢集變為 Geo 叢集的第一個站點。該程序檔會獲取某些參數 (例如叢集的名稱、仲裁方,以及一或多個票證) 並依據它們建立 /etc/booth/booth.conf。它會將投票間組態複製到目前叢集站點上的所有節點。它還會為目前叢集站點上的投票間設定所需的叢集資源。

    如需詳細資料,請參閱第 6 節 「設定 Geo 叢集的第一個站點」

  • 使用 ha-cluster-geo-join 可新增目前的叢集至現有的 Geo 叢集中。該程序檔會從現有的叢集站點複製投票間組態,並將其寫入到目前叢集站點上所有節點的 /etc/booth/booth.conf 中。它還會為目前叢集站點上的投票間設定所需的叢集資源。

    如需詳細資料,請參閱第 7 節 「新增另一個站點至 Geo 叢集」

  • 使用 ha-cluster-geo-init-arbitrator 可將目前的機器變為 Geo 叢集的仲裁方。該程序檔會從現有的叢集站點複製投票間組態,並將其寫入 /etc/booth/booth.conf

    如需詳細資料,請參閱第 8 節 「新增仲裁方」

所有開機程序檔都會記錄至 /var/log/ha-cluster-bootstrap.log。如需開機程序的任何詳細資料,請檢查記錄檔案。在開機程序中設定的任何選項都可在稍後加以修改 (透過修改投票間設定、修改資源等)。如需詳細資料,請參閱管理指南

5 安裝

安裝 Geo Clustering for SUSE Linux Enterprise High Availability Extension 後,即可不受距離限制使用高可用性叢集。

若要設定 Geo 叢集,您需要擁有以下安裝模式中包含的套件:

  • High Availability (在指令行上以 sles_ha 指定)

  • Geo Clustering for High Availability (在指令行上以 ha_geo 指定)

僅當您已在 SUSE Customer Center (或本地註冊伺服器) 中註冊了系統,並且已新增相應的模組或安裝媒體做為延伸時,這兩個模式才可用。如需如何安裝延伸的資訊,請參閱 《SUSE Linux Enterprise Server 15 SP2 部署指南》

若要透過指令行從這兩個模式安裝套件,請使用 Zypper:

root # zypper install -t pattern ha_sles ha_geo
重要
重要:在所有參與節點上安裝軟體套件

高可用性和 Geo 叢集所需的軟體套件不會自動複製到叢集節點。

  • 請在要加入地理叢集的所有機器上安裝 SUSE Linux Enterprise Server 15 SP3,以及 ha_slesha_geo 模式。

  • 您不必在將要加入叢集的所有機器上手動安裝這些套件,而應使用 AutoYaST 複製現有節點。若需詳細資訊,請至 第 3.2 節 「使用 AutoYaST 進行大量安裝和部署」

6 設定 Geo 叢集的第一個站點

使用 ha-cluster-geo-init 程序檔可將現有叢集變為 Geo 叢集的第一個站點。

程序 1︰ 使用 ha-cluster-geo-init 設定第一個站點 (amsterdam)
  1. 為每個叢集站點定義一個虛擬 IP,以便存取該站點。在此,我們假設使用 192.168.201.100192.168.202.100。您並不需要將虛擬 IP 設定為叢集資源。此工作將由開機程序檔完成。

  2. 至少定義一個票證的名稱,該票證將用於授予在叢集站點上執行特定資源的權限。使用一個有意義的名稱來反映將依賴於該票證的資源,例如 ticket-nfs。開機程序檔只需要票證名稱,您可以稍後再依第 10 節 「後續步驟」所述定義其餘的詳細資料 (資源的票證相依項)。

  3. 登入現有叢集的節點 (例如,叢集 amsterdam 的節點 alice)。

  4. 執行 ha-cluster-geo-init。例如,使用以下選項:

    root # ha-cluster-geo-init \
      --clusters1 "amsterdam=192.168.201.100 berlin=192.168.202.100" \
      --tickets2 ticket-nfs \
      --arbitrator3 192.168.203.100

    1

    叢集站點的名稱 (定義於 /etc/corosync/corosync.conf 中) 和您想要為每個叢集站點使用的虛擬 IP 位址。在本例中,我們有兩個叢集站點 (amsterdamberlin),每個站點各有一個虛擬 IP 位址。

    2

    一或多個票證的名稱。

    3

    不屬於叢集的機器的主機名稱或 IP 位址。

該開機程序檔會建立投票間組態檔案,並在叢集站點間同步該檔案。它還會建立投票間所需的的基本叢集資源。執行程序 1步驟 4 將建立以下投票間組態和叢集資源:

範例 1︰ ha-cluster-geo-init 建立的投票間組態
# The booth configuration file is "/etc/booth/booth.conf". You need to
# prepare the same booth configuration file on each arbitrator and
# each node in the cluster sites where the booth daemon can be launched.

# "transport" means which transport layer booth daemon will use.
# Currently only "UDP" is supported.
transport="UDP"
port="9929"

arbitrator="192.168.203.100"
site="192.168.201.100"
site="192.168.202.100"
authfile="/etc/booth/authkey"
ticket="ticket-nfs"
expire="600"
範例 2︰ ha-cluster-geo-init 建立的叢集資源
primitive1 booth-ip IPaddr2 \
  params rule #cluster-name eq amsterdam ip=192.168.201.100 \
  params rule #cluster-name eq berlin ip=192.168.202.100 \
primitive2 booth-site ocf:pacemaker:booth-site \
  meta resource-stickiness=INFINITY \
  params config=booth \
  op monitor interval=10s
group3 g-booth booth-ip booth-site \
meta target-role=Stopped4

1

每個叢集站點的虛擬 IP 位址。必須為投票間精靈提供該虛擬 IP 位址,因為其需要每個叢集站點上都有永久的 IP 位址。

2

投票間精靈的基本資源。它會與其餘叢集站點上的投票間精靈通訊。可以在站點的任何節點上啟動該精靈。為了使資源分佈在同一節點上 (如果可能),將 resource-stickiness 設定為 INFINITY

3

兩個基本資源的叢集資源群組。如此設定後,便可透過每個投票間精靈的 IP 位址來使用該精靈,而無需考慮執行精靈的節點為何。

4

該叢集資源群組預設不會啟動。驗證叢集資源的組態 (並新增完成設定所需的資源) 後,您需要啟動該資源群組。如需詳細資料,請參閱完成 Geo 叢集設定所需的步驟

7 新增另一個站點至 Geo 叢集

啟始化 Geo 叢集的第一個站點後,請依程序 2 所述使用 ha-cluster-geo-join 新增第二個叢集。該程序檔需要透過 SSH 存取已設定的叢集站點,並且會將目前的叢集新增至 Geo 叢集。

程序 2︰ 使用 ha-cluster-geo-join 新增第二個站點 (berlin)
  1. 登入要新增的叢集站點的某個節點 (例如,叢集 berlin 的節點 charlie)。

  2. 執行 ha-cluster-geo-join 指令。例如:

    root # ha-cluster-geo-join \
      --cluster-node1 192.168.201.100\
      --clusters2 "amsterdam=192.168.201.100 berlin=192.168.202.100"

    1

    指定要從何處複製投票間組態。請使用已設定的 Geo 叢集站點中某節點的 IP 位址或主機名稱。也可以使用現有叢集站點的虛擬 IP 位址 (如本範例中所示)。或者,使用已為 Geo 叢集設定的仲裁方的 IP 位址或主機名稱。

    2

    叢集站點的名稱 (定義於 /etc/corosync/corosync.conf 中) 和您想要為每個叢集站點使用的虛擬 IP 位址。在本例中,我們有兩個叢集站點 (amsterdamberlin),每個站點各有一個虛擬 IP 位址。

ha-cluster-geo-join 程序檔會從 1 複製投票間組態,請參閱範例 1。此外,它還會建立投票間所需的叢集資源 (請參閱範例 2)。

8 新增仲裁方

使用 ha-cluster-geo-initha-cluster-geo-join 設定 Geo 叢集的所有站點後,請使用 ha-cluster-geo-init-arbitrator 設定仲裁方。

程序 3︰ 使用 ha-cluster-geo-init-arbitrator 設定仲裁方
  1. 登入要當成仲裁方使用的機器。

  2. 執行以下指令。例如:

    root # ha-cluster-geo-init-arbitrator --cluster-node1 192.168.201.100

    1

    指定要從何處複製投票間組態。請使用已設定的 Geo 叢集站點中某節點的 IP 位址或主機名稱。或者,使用現有叢集站點的虛擬 IP 位址 (如本範例中所示)。

ha-cluster-geo-init-arbitrator 程序檔會從 1 複製投票間組態,如範例 1 所示。它還會在仲裁方上啟用並啟動投票間服務。因此,當叢集站點上也在執行投票間服務時,仲裁方便可以與這些叢集站點上的投票間例項通訊。

9 監控叢集站點

若要檢視您已在開機程序中建立的叢集站點及資源與票證,請使用 Hawk2。透過 Hawk2 Web 介面,您可以監控和管理多個 (不相關的) 叢集和 Geo 叢集。

先決條件
  • 要透過 Hawk3 儀表板監控的所有叢集都必須執行 SUSE Linux Enterprise High Availability Extension 15 SP2

  • 如果您之前未在每個叢集節點上以自己的證書 (或官方證書管理中心簽署的證書) 取代 Hawk2 的自行簽署證書,請執行以下操作:在每個叢集的每個節點上至少登入 Hawk2 一次。驗證證書 (或在瀏覽器中新增一個例外以使警告不再顯示)。否則,Hawk2 將無法連接到叢集。

程序 4︰ 使用 Hawk2 儀表板
  1. 啟動網頁瀏覽器,並輸入第一個叢集站點 amsterdam 的虛擬 IP。

    https://192.168.201.100:7630/

    或者,使用 alicebob 的 IP 位址或主機名稱。如果您已使用開機程序檔設定兩個節點,則 hawk 服務在這兩個節點上應當都會執行。

  2. 登入 Hawk2 Web 介面。

  3. 在左側導覽列中選取儀表板

    Hawk2 會顯示目前叢集站點的資源和節點綜覽。此外,它還會顯示已為 Geo 叢集設定的所有票證。如需有關此檢視中所用圖示的資訊,請按一下圖例

    包含一個叢集站點 (amsterdam) 的 Hawk2 儀表板
    圖 2︰ 包含一個叢集站點 (amsterdam) 的 Hawk2 儀表板
  4. 若要新增第二個叢集站點的儀表板,請按一下新增叢集

    1. 輸入用於在儀表板中識別該叢集的叢集名稱。在本例中為 berlin

    2. 輸入其中一個叢集節點 (在本例中為 charliedoro) 的完全合格的主機名稱。

    3. 按一下「新增」。Hawk2 會為新增的叢集站點顯示另一個索引標籤,其中會列出該叢集站點的節點和資源綜覽。

      包含兩個叢集站點的 Hawk2 儀表板
      圖 3︰ 包含兩個叢集站點的 Hawk2 儀表板
  5. 若要檢視叢集站點的更多詳細資料或管理叢集站點,請切換到站點的索引標籤並按一下鎖鏈圖示。

    Hawk2 會在新的瀏覽器視窗或索引標籤中開啟此站點的狀態檢視。在此檢視中,您可以管理 Geo 叢集的這部分內容。

10 後續步驟

使用 Geo 叢集開機程序檔,您可以快速地設定可用於測試用途的基本 Geo 叢集。不過,若要將建立的 Geo 叢集移轉到正常運作的可用於生產環境的 Geo 叢集,則需執行更多步驟 (請參閱完成 Geo 叢集設定所需的步驟)。

完成 Geo 叢集設定所需的步驟
在叢集站點上啟動投票間服務

開機程序完成後,仲裁方投票間服務還不能與叢集站點上的投票間服務通訊,因為這些服務預設不會啟動。

每個叢集站點的投票間服務都由投票間資源群組 g-booth 管理 (請參閱範例 2 「ha-cluster-geo-init 建立的叢集資源」)。若要為每個網站啟動一個投票間服務例項,請在每個叢集網站上啟動相應的投票間資源群組。這樣可讓所有投票間例項互相通訊。

設定票證相依項和順序條件約束

若要使資源依賴於您已在 Geo 叢集開機程序中建立的票證,請設定條件約束。請為每個條件約束設定 loss-policy,它用於定義當從叢集站點撤銷票證時相應資源應發生的情況。

如需詳細資料,請參閱Chapter 6, Configuring cluster resources and constraints

在開始時將票證授予給站點

在投票間可以管理 Geo 叢集中的特定票證前,您首先需要手動將該票證授予給站點。您可以使用投票間用戶端指令行工具或 Hawk2 授予票證。

如需詳細資料,請參閱Chapter 8, Managing Geo clusters

開機程序檔會在兩個叢集站點上建立相同的投票間資源,並在所有站點 (包括仲裁方) 上建立相同的投票間組態檔案。如果您延伸 Geo 叢集設定 (以便移轉到生產環境),可能需要調整投票間組態,並變更與投票間有關的叢集資源的組態。之後,您需要將變更同步到 Geo 叢集的其餘站點才能使其生效。

注意
注意:跨叢集站點同步變更

11 相關資訊

12 法律聲明

版權所有 © 2006–2023 SUSE LLC 和貢獻者。保留所有權利。

根據 GNU 自由文件授權 (GNU Free Documentation License) 1.2 版或 1.3 版 (自由選擇),使用者可以複製、散佈與/或修改本文件;「恆常章節」為此著作權聲明與授權。GNU Free Documentation License一節中包含 1.2 版授權的一份副本。

如需 SUSE 商標,請參閱 http://www.suse.com/company/legal/。所有其他協力廠商的商標所有權分屬其各自的公司。®、™ 等商標符號表示 SUSE 及其關係企業的商標。星號 (*) 表示協力廠商的商標。

本手冊中所有資訊在編輯時,都已全力注意各項細節。但這不保證百分之百的正確性。因此,SUSE LLC 及其附屬公司、作者或譯者都不需對任何錯誤或造成的結果負責。