跳至內容跳至頁面導覽:上一頁 [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 SP5

Geo 叢集快速入門

出版日期:2023 年 12 月 11 日

Geo 叢集可保護整個全域分散式資料中心的工作負載。本文件會協助您使用 crm 外圍程序提供的 Geo 開機程序檔完成 Geo 叢集的基本設定。

版權所有 © 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 及其關係企業、作者或譯者都不需對任何錯誤或造成的結果負責。

1 概念綜覽

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

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

  • Server Applications Module 15 SP5

  • SUSE Linux Enterprise High Availability Extension15 SP5

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

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

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

  • 其他設定決定可能需要開啟更多連接埠 (例如,為 DRBD 或進行執行資料庫複製)。

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

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

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

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

    相應的 /etc/corosync/corosync.conf 檔案中定義了每個站點的叢集名稱:

    totem {
        [...]
        cluster_name: amsterdam
        }

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

    # crm cluster rename NEW_NAME

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

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

4 Geo 開機程序檔綜覽

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

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

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

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

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

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

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

5 安裝高可用性和 Geo 叢集套件

High AvailabilityGeo Clustering for High Availability 安裝模式中包含用於設定和管理 Geo 叢集的套件。只有在安裝 SUSE Linux Enterprise High Availability Extension 後,才能使用這些模式。

在安裝 SUSE Linux Enterprise Server 期間或之後,您可以註冊到 SUSE Customer Center 中並安裝 High Availability Extension。如需詳細資訊,請參閱 SUSE Linux Enterprise Server 的 Deployment Guide

程序 1︰ 安裝高可用性和 Geo 叢集模式
  1. 從指令列安裝高可用性和 Geo 叢集模式:

    # zypper install -t pattern ha_sles ha_geo
  2. 請在要加入叢集的所有機器上安裝高可用性和 Geo 叢集模式。

    注意
    注意:在所有節點上安裝軟體套件

    如果要自動安裝 SUSE Linux Enterprise Server 15 SP5 和 High Availability Extension,請使用 AutoYaST 複製現有節點。如需詳細資訊,請參閱第 3.2 節 「使用 AutoYaST 進行大量安裝和部署」

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

使用 crm cluster geo_init 指令可將一個現有叢集變為 Geo 叢集的第一個站點。

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

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

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

  4. 執行 crm cluster geo_init.例如,使用以下選項:

    # crm cluster geo_init \
      --clusters "amsterdam=192.168.201.100 berlin=192.168.202.100" \1
      --tickets ticket-nfs \2
      --arbitrator 192.168.203.1003

    1

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

    2

    一或多個票證的名稱。

    3

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

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

範例 1︰ crm 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︰ crm 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 叢集的第一個站點後,請依crm cluster geo_join 所述使用 程序 3 新增第二個叢集。該程序檔需要透過 SSH 存取已設定的叢集站點,並且會將目前的叢集新增至 Geo 叢集。

程序 3︰ 使用 crm cluster geo_join 新增第二個站點 (berlin)
  1. 登入要新增的叢集站點的某個節點 (例如,叢集 charlie 的節點 berlin)。

  2. 執行 crm cluster geo_join 指令。例如:

    # crm cluster geo_join \
      --cluster-node 192.168.201.100\1
      --clusters "amsterdam=192.168.201.100 berlin=192.168.202.100"2

    1

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

    2

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

crm cluster geo_join 指令會從 1 複製投票間組態,請參閱範例 1。此外,它還會建立投票間所需的叢集資源 (請參閱範例 2)。

8 新增仲裁方

使用 crm cluster geo_initcrm cluster geo_join 設定 Geo 叢集的所有站點後,請使用 crm cluster geo_init_arbitrator 設定仲裁方。

程序 4︰ 使用 crm cluster geo_init_arbitrator 設定仲裁方
  1. 登入要當成仲裁方使用的機器。

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

    # crm cluster geo_init_arbitrator --cluster-node 192.168.201.1001

    1

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

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

9 監控叢集站點

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

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

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

程序 5︰ 使用 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 叢集設定所需的步驟
在叢集站點上啟動投票間服務

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

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

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

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

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

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

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

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

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

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

11 相關資訊