跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Linux Enterprise High Availability Extension 文件 / Quick Start Guides / 安裝與設定快速入門
SUSE Linux Enterprise High Availability Extension 15 SP5

安裝與設定快速入門

出版日期:2023 年 12 月 11 日

本文件會協助您使用 crm 外圍程序提供的開機程序檔完成最基本的雙節點叢集的設定。其中包括將虛擬 IP 位址設定為叢集資源,以及在共用儲存上使用 SBD 做為節點圍籬區隔機制。

版權所有 © 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 使用情境

透過本文件中介紹的程序,可完成對具有以下內容的雙節點叢集的最基本設定:

  • 兩個節點:alice (IP:192.168.1.1) 和 bob (IP:192.168.1.2),兩者之間透過網路彼此連接。

  • 一個浮動虛擬 IP 位址 (192.168.1.10),無論服務在哪個節點上執行,用戶端都可透過該位址連接至服務。此 IP 位址用於連接至圖形管理工具 Hawk2。

  • 一個共用儲存裝置,用做 SBD 圍籬區隔機制。這樣可避免出現電腦分裂情況。

  • 若主動主機發生故障 (主動/被動設定),資源會從一個節點容錯移轉到另一個節點。

該雙節點叢集可用於測試的目的,也可以用做基本叢集組態,稍後再進行擴充。將該叢集用於生產環境之前,請參閱管理指南以根據自己的要求修改叢集。

2 系統要求

本章介紹第 1 節中所述案例的關鍵系統要求。若要將叢集調整為可用於生產環境,請參閱第 2 章 「系統要求和建議中的完整清單。

2.1 硬體需求

伺服器

兩部已安裝第 2.2 節 「軟體要求」中指定的軟體的伺服器。

伺服器可以是裸機,也可以是虛擬機器。兩部伺服器不需要使用相同的硬體 (記憶體、磁碟空間等),但它們的架構必須相同。系統不支援跨平台叢集。

通訊通道

每個叢集節點至少有兩個 TCP/IP 通訊媒體。網路設備必須支援您希望用於叢集通訊的通信方式:多點傳播或單路廣播。通訊媒體應支援 100 Mbit/s 或更高的資料速率。對於受支援的叢集設定,需要兩個或以上的備援通訊路徑。可以透過以下方式來實現:

  • 網路裝置結合 (優先)。

  • Corosync 中的另一個通訊通道。

節點圍籬區隔/STONITH

用於防止出現電腦分裂情況的節點圍籬區隔 (STONITH) 裝置。可以是實體裝置 (電源開關),也可以是 SBD (依磁碟 STONITH) 這樣的機制與監視程式的組合。SBD 可以與共用儲存裝置配合使用,也可以在無磁碟模式下使用。本文件介紹如何將 SBD 與共用儲存裝置配合使用。必須符合以下要求:

  • 一部共用儲存裝置。如需設定共用儲存裝置的資訊,請參閱 《SUSE Linux Enterprise Server 儲存管理指南》。如果您只需要基本的共用儲存裝置來進行測試,請參閱附錄 A 「SBD 的基本 iSCSI 儲存

  • 針對叢集中的所有節點,共用儲存裝置的路徑必須永久且一致。使用穩定的裝置名稱,如 /dev/disk/by-id/dm-uuid-part1-mpath-abcedf12345

  • SBD 裝置不得使用基於主機的 RAID、LVM2,也不能位於 DRBD* 例項上。

如需 STONITH 的詳細資訊,請參閱第 12 章 「圍籬區隔與 STONITH。如需 SBD 的詳細資訊,請參閱第 13 章 「儲存保護和 SBD

2.2 軟體要求

將加入叢集的所有節點上都至少需安裝以下模組和延伸:

  • Basesystem Module 15 SP5

  • Server Applications Module 15 SP5

  • SUSE Linux Enterprise High Availability Extension 15 SP5

2.3 其他要求與建議

時間同步

叢集節點必須與叢集外的 NTP 伺服器同步。自 SUSE Linux Enterprise High Availability Extension 15 起,採用 chrony 做為 NTP 的預設實作。如需詳細資訊,請參閱《SUSE Linux Enterprise Server 15 SP5 管理指南》

若節點未同步,叢集可能無法正常運作。此外,記錄檔案和叢集報告在未同步的情況下很難進行分析。使用開機程序檔時,若尚未設定 NTP,系統會向您發出警告。

主機名稱與 IP 位址
  • 使用靜態 IP 位址。

  • 只支援主要 IP 位址。

  • /etc/hosts 檔案中列出所有叢集節點,包括各自的完全合格主機名稱和簡短主機名稱。叢集的成員必須能夠籍由名稱找到彼此,這是一項基本要求。如果名稱不可用,內部叢集通訊將會失敗。

SSH

所有叢集節點必須能透過 SSH 互相存取。諸如 crm report (用於疑難排解) 等工具以及 Hawk2 的歷程總管,要求節點之間透過無密碼的 SSH 方式來存取,否則它們只能從目前節點收集資料。

若使用開機程序檔設定叢集,系統會自動建立並複製 SSH 金鑰。

3 開機程序檔綜覽

以下指令可執行只需要極少時間和手動操作的開機程序檔。

  • 使用 crm cluster init 可定義叢集通訊所需的基本參數。如此可讓您擁有一個正常運作的單節點叢集。

  • 使用 crm cluster join 可將更多節點新增到叢集中。

  • 使用 crm cluster remove 可從叢集中移除節點。

所有開機程序檔都會記錄到 /var/log/crmsh/crmsh.log 中。查看此檔案即可瞭解開機程序的詳細資料。開機過程中設定的任何選項都可在之後使用 YaST 叢集模組加以修改。如需詳細資料,請參閱第 4 章 「使用 YaST 叢集模組

開機程序檔 crm cluster init 會檢查並設定以下元件:

NTP

檢查 NTP 是否設定為在系統開機時啟動。如果未設定成這樣,一則訊息會顯示。

SSH

建立 SSH 金鑰,以用於在叢集節點之間進行無密碼登入。

Csync2

設定 Csync2,讓其在叢集中的所有節點上複製組態檔案。

Corosync

設定叢集通訊系統。

SBD/監視程式

檢查是否存在監視程式,並詢問您是否要將 SBD 設定為節點圍籬區隔機制。

虛擬浮動 IP

詢問您是否要設定虛擬 IP 位址,以便使用 Hawk2 進行叢集管理。

防火牆

在防火牆中開啟叢集通訊所需的連接埠。

叢集名稱

為叢集定義名稱,預設為 hacluster。叢集名稱是選擇性元件,對 Geo 叢集最有用。叢集名稱通常會反映位置,以便您更容易區分 Geo 叢集內部的站點。

QDevice/QNetd

詢問您是否要設定 QDevice/QNetd,以參與仲裁決定。我們建議您對節點數為偶數的叢集 (特別是雙節點叢集) 使用 QDevice 和 QNetd。

本文不會介紹此組態,但您可以稍後依照第 14 章 「QDevice 和 QNetd所述進行此設定。

4 安裝 High Availability 套件

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

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

程序 1︰ 安裝 High Availability 模式
  1. 從指令列安裝 High Availability 模式:

    # zypper install -t pattern ha_sles
  2. 所有將成為叢集成員的機器上安裝 High Availability 模式。

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

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

5 使用 SBD 進行節點圍籬區隔

必須在每個節點上都啟用監視程式,才能使用開機程序檔設定 SBD。SUSE Linux Enterprise Server 隨附了數個核心模組,用於提供針對特定硬體的監視程式驅動程式。High Availability Extension 使用 SBD 精靈做為饋送監視程式的軟體元件。

以下程序使用 softdog 監視程式。

重要
重要:Softdog 限制

Softdog 驅動程式假設至少有一個 CPU 仍然在執行。如果所有 CPU 均已堵塞,則 softdog 驅動程式中應該將系統重新開機的代碼永遠都不會執行。相反地,即使所有 CPU 均已堵塞,硬體監視程式也仍然會繼續運作。

強烈建議您先以最適合硬體的硬體模組取代 softdog 模組,再在生產環境中使用叢集。

不過,如果沒有與您的硬體相符的監視程式,則可以將 softdog 當成核心監視程式模組使用。

程序 2︰ 對 SBD 啟用 Softdog 監視程式
  1. 在每個節點上啟用 softdog 監視程式:

    # echo softdog > /etc/modules-load.d/watchdog.conf
    # systemctl restart systemd-modules-load
  2. 測試 softdog 模組是否已正確載入:

    # lsmod | grep dog
    softdog           16384  1

6 設定第一個節點

使用 crm cluster init 程序檔設定第一個節點。此操作所需的時間和手動介入都極少。

程序 3︰ 使用 crm cluster init 設定第一個節點 (alice)
  1. root 身分或擁有 sudo 權限的使用者身分登入第一個叢集節點。

    重要
    重要:sudo 使用者 SSH 金鑰存取

    叢集透過無密碼 SSH 存取在節點間進行通訊。crm cluster init 指令碼會檢查 SSH 金鑰是否存在,如果尚不存在,則會產生這些金鑰。

    如果您打算以擁有 sudo 權限的使用者身分設定第一個節點,則必須確定該使用者的 SSH 金鑰存在 (或將會產生) 於該節點本地而不是遠端系統上。

  2. 啟動開機程序檔:

    # crm cluster init --name CLUSTERNAME

    以一個有意義的名稱 (例如叢集的地理位置 CLUSTERNAME) 取代 amsterdam 預留位置。若要在稍後建立 Geo 叢集,這樣做特別有用,因為它使站點的識別變得簡單。

    如果您需要使用多點傳送而不是單點傳播 (預設設定) 來進行叢集通訊,請使用選項 --multicast (或 -U)。

    該程序檔會檢查是否存在 NTP 組態和硬體監視程式服務。如果需要,它會產生 SSH 存取與 Csync2 同步所需的公用和私密 SSH 金鑰,並啟動相應的服務。

  3. 設定叢集通訊層 (Corosync):

    1. 輸入要繫結到的網路位址。依預設,程序檔會建議使用網路位址 eth0。您也可以輸入不同的網路位址,如 bond0 位址。

    2. 接受建議的連接埠 (5405) 或輸入其他連接埠。

  4. 將 SBD 設定為節點圍籬區隔機制:

    1. 輸入 y 確認您要使用 SBD。

    2. 輸入要為 SBD 使用的區塊裝置分割區的永久路徑。該路徑必須在叢集的所有節點間保持一致。

      程序檔會在裝置上建立用於 SBD 的小分割區。

  5. 設定使用 Hawk2 進行叢集管理所需的虛擬 IP 位址:

    1. 輸入 y 確認您要設定虛擬 IP 位址。

    2. 為 Hawk2 的管理 IP 輸入想要的且未使用的 IP 位址:192.168.1.10

      您可以連接到此虛擬 IP 位址,而無需使用 Hawk2 登入個別叢集節點。

  6. 選擇是否設定 QDevice 和 QNetd。對於本文所述的精簡環境,暫時按 n 拒絕。您可以稍後再依照第 14 章 「QDevice 和 QNetd所述設定 QDevice 和 QNetd。

最後,該程序檔將啟動叢集服務以使叢集上線,並啟用 Hawk2。Hawk2 要使用的 URL 會顯示在螢幕上。

您現在便擁有了一個正常運作的單節點叢集。若要檢視其狀態,請執行以下步驟:

程序 4︰ 登入 Hawk2 Web 介面
  1. 在任一機器上,啟動網頁瀏覽器並確定已啟用 JavaScript 和 Cookie。

  2. 對於 URL,請輸入使用開機程序檔設定的虛擬 IP 位址:

    https://192.168.1.10:7630/
    注意
    注意:證書警告

    當您首次嘗試存取該 URL 時,如果系統顯示證書警告,則表示使用了自行簽署的證書。依預設,自行簽署的證書不被視為可信證書。

    請咨詢您的叢集操作人員取得證書詳細資料,以驗證該證書。

    若仍要繼續,您可以在瀏覽器中新增一個例外以略過此警告。

  3. 在 Hawk2 登入畫面上,輸入開機程序檔所建立使用者的使用者名稱密碼 (使用者 hacluster,密碼 linux)。

    重要
    重要:安全密碼

    請立即以安全的密碼取代預設密碼:

    # passwd hacluster
  4. 按一下登入。Hawk2 Web 介面預設會顯示「狀態」螢幕:

    Hawk2 中單節點叢集的狀態
    圖 1︰ Hawk2 中單節點叢集的狀態

7 新增第二個節點

使用 crm cluster join 開機程序檔將第二個節點新增至叢集。程序檔只需存取一個現有叢集節點,即可自動在目前的機器上完成基本設定。

如需詳細資訊,請參閱 crm cluster join 的手冊頁。

程序 5︰ 使用 crm cluster join 新增第二個節點 (bob)
  1. root 身分或擁有 sudo 權限的使用者身分登入第二個節點。

  2. 啟動開機程序檔:

    如果您以 root 身分設定第一個節點,則可以不指定其他任何參數來執行以下指令:

    # crm cluster join

    如果您以 sudo 使用者身分設定第一個節點,則必須使用 -c 選項指定該使用者:

    > sudo crm cluster join -c USER@alice

    如果 NTP 未設定為在開機時啟動,則會出現一則訊息。程序檔還會檢查是否存在硬體監視程式裝置。如果不存在此類裝置,將會向您發出警告。

  3. 如果之前未使用 -c 選項指定 alice,系統將提示您輸入第一個節點的 IP 位址。

  4. 如果尚未在這兩部機器之間設定無密碼 SSH 存取,系統將提示您輸入第一個節點的密碼。

    登入指定節點後,程序檔會複製 Corosync 組態、設定 SSH 和 Csync2,使目前機器做為新叢集節點上線,並啟動 Hawk2 所需的服務。

在 Hawk2 中檢查叢集狀態。在狀態 › 節點下,您應該會看到狀態為綠色的兩個節點:

雙節點叢集的狀態
圖 2︰ 雙節點叢集的狀態

8 測試叢集

雖然以下測試有助於您識別叢集設定存在的問題,但實際的測試涉及特別的使用場景和情境。請先根據您的使用案例對叢集進行全面測試,然後再將其用於線上環境。

8.1 測試資源容錯移轉

請使用以下快速測試程序檢查資源容錯移轉:

程序 6︰ 測試資源容錯移轉
  1. 開啟終端機並 ping 192.168.1.10 (即您的虛擬 IP 位址)。

    # ping 192.168.1.10
  2. 登入 Hawk2:

  3. 狀態 › 資源下,檢視執行該虛擬 IP 位址 (資源 admin_addr) 的節點。此程序假定該資源在 alice 上執行。

  4. alice 置於待命模式:

    處於待命模式的節點 alice
    圖 3︰ 處於待命模式的節點 alice
  5. 按一下 狀態 ›  資源。資源 admin_addr 已移轉至 bob

移轉時,您應該會看見不斷向虛擬 IP 位址進行 ping 的流程。這表示叢集設定與浮動 IP 正常運作。按 CtrlC 鍵可取消 ping 指令。

8.2 使用 crm cluster crash_test 指令進行測試

crm cluster crash_test 指令會觸發叢集故障,以便找出問題。在生產環境中使用叢集之前,建議先使用此指令來確定一切符合預期。

該指令支援以下檢查:

--split-brain-iptables

透過封鎖 Corosync 連接埠來模擬電腦分裂情況。檢查是否可如預期般圍籬區隔一個節點。

--kill-sbd/--kill-corosync/--kill-pacemakerd

停止 SBD、Corosync 和 Pacemaker 的精靈。執行其中一項測試後,便可以在 /var/lib/crmsh/crash_test/ 目錄下找到一份報告。該報告中包含測試案例描述、動作記錄以及對可能的結果的說明。

--fence-node NODE

圍籬區隔從指令列傳遞的特定節點。

如需詳細資訊,請參閱crm cluster crash_test --help

範例 1︰ 測試叢集:節點圍籬區隔
# crm_mon -1
Stack: corosync
Current DC: alice (version ...) - partition with quorum
Last updated: Fri Mar 03 14:40:21 2020
Last change: Fri Mar 03 14:35:07 2020 by root via cibadmin on alice

2 nodes configured
1 resource configured

Online: [ alice bob ]
Active resources:

 stonith-sbd    (stonith:external/sbd): Started alice

# crm cluster crash_test --fence-node bob

==============================================
Testcase:          Fence node bob
Fence action:      reboot
Fence timeout:     60

!!! WARNING WARNING WARNING !!!
THIS CASE MAY LEAD TO NODE BE FENCED.
TYPE Yes TO CONTINUE, OTHER INPUTS WILL CANCEL THIS CASE [Yes/No](No): Yes
INFO: Trying to fence node "bob"
INFO: Waiting 60s for node "bob" reboot...
INFO: Node "bob" will be fenced by "alice"!
INFO: Node "bob" was successfully fenced by "alice"

若要在測試過程中監看 bob 變更狀態,請登入 Hawk2 並導覽至狀態 › 節點

9 後續步驟

使用開機程序檔可以快速地設定可用於測試用途的基本高可用性叢集。不過,若要將此叢集擴充為正常運作且可用於生產環境的高可用性叢集,建議您執行更多步驟。

為完成高可用性叢集設定建議執行的步驟
新增更多節點

使用以下其中一種方法新增更多節點至叢集:

一個一般叢集最多只能包含 32 個節點。憑藉 pacemaker_remote 服務,可以將高可用性叢集進行延伸,使其包含超出此限制的額外節點。請參閱 Pacemaker Remote Quick Start,以取得詳細資料。

設定 QDevice

如果叢集的節點數是偶數,請設定 QDevice 和 QNetd 以參與仲裁決定。QDevice 會提供一個可設定的投票數,以使叢集可以承受大於標準仲裁規則所允許的節點故障數量。如需詳細資料,請參閱第 14 章 「QDevice 和 QNetd

啟用硬體監視程式

請先以最適合硬體的硬體模組取代 softdog 模組,再在生產環境中使用叢集。如需詳細資料,請參閱第 13.6 節 「設定監視程式」

10 相關資訊

https://documentation.suse.com/sle-ha/ 上提供了更多有關此產品的文件。如需其他組態和管理任務的資訊,請參閱內容全面的 《管理指南》