首先建構一個受支援的、帶有隔離功能的 SLES 15 HA 集群

對於 SLES 15,請註冊 SUSE Linux Enterprise 高可用性擴展,然後使用crm cluster init該crm cluster join擴展引導節點。在叢集上部署服務之前,請先驗證冗餘網路、節點隔離 (STONITH) 和仲裁。

此流程遵循截至 2026 年 10 月的 SLE HA 15 SP7 文件。請確認您已安裝的服務包和 CPU 架構;註冊識別碼和支援詳細資訊可能有所不同。

1. 準備節點和網絡

用於節點名稱、主機查找、Chrony 時間同步和網路介面的終端預檢指令
在組成叢集之前,檢查每個節點上的主機命名、名稱解析、時間同步和介面狀態。

使用至少兩個採用相同支援處理器架構的節點,每個節點使用靜態主 IP 位址,每個節點使用可解析的唯一名稱,並使用外部時間來源同步時脈。 SUSE 要求每個節點兩條冗餘的 TCP/IP 通訊路徑;所有節點的介面名稱必須一致。

hostname -f
getent hosts node1 node2
chronyc tracking
ip -br addr

在啟動之前,請對兩個節點執行檢查,並確認所選介面和名稱是否正確。

2. 註冊並安裝高可用性擴展

使用終端機指令註冊 SUSE Linux Enterprise High Availability 15.7 並安裝 ha_sles 模式
在每個節點上註冊 SLE HA 擴充功能並安裝其叢集管理模式。

SLE HA 是一個單獨註冊的擴充;SLES 本身不包含叢集模式。對於已註冊的 SLES 15 SP7 x86_64 節點,請啟用該擴充功能並在每個節點上安裝該模式:

SUSEConnect -p sle-ha/15.7/x86_64 -r ADDITIONAL_REGCODE
zypper install -t pattern ha_sles

請替換ADDITIONAL_REGCODE為您的訂閱代碼。產品識別碼適用於 x86_64 架構;其他架構請使用 SUSE 提供的符合識別碼。請確保所有節點運行在相同的 SLES SP 和 SLE HA 版本上。請參閱SUSE SLE HA 15 SP7 安裝指南。

3. 在初始化之前確定圍籬和法定人數

終端檢查清單指出,需要 STONITH 和冗餘 Corosync 路徑,並且應評估兩個節點的 QDevice 或 QNetd。
隔離是必要的支援;設計雙節點叢集時也應考慮仲裁行為。

支援的叢集需要啟用節點隔離(STONITH),並啟用 `with`stonith-enabled和startup-fencing`left` 參數。隔離功能可隔離不確定節點,防止分區兩側運行相同的服務。請為您的硬體或虛擬機器管理程式選擇支援的電源控制設備或具有經過測試的看門狗的 SBD。

對於雙節點叢集: SUSE 建議在偶數節點叢集中使用 QDevice/QNetd。它增加了一個獨立的仲裁投票機制,而不是隔離機制;如果在引導過程中包含 QDevice,請先設定單獨的 QNetd 伺服器。請參閱QDevice 和 QNetd 指南。

儲存迷思:共用儲存並非每個叢集的必需品,但應用程式資料需要其自身的共用、複製或可復原設計。 Pacemaker 負責遷移資源,而非複製應用程式資料。

4. 初始化第一個節點

終端機顯示 crm 叢集初始化訊息,並顯示叢集名稱和選擇 Corosync 網路位址的提示。
引導腳本在節點 1 上啟動,並請求 Corosync 應該使用的網路位址。

在節點 1 上,以 root 使用者身分或透過您已核准的 sudo 使用者設定啟動 CRM Shell 引導程式:

crm cluster init --name prod-ha

依照指示選擇所需的 Corosync 位址。此腳本會配置 Corosync、SSH、Csync2、叢集防火牆連接埠和 Hawk2;它會檢查時間同步,並提供可選的 SBD 和 Hawk2 管理 IP 位址。請查看/var/log/crmsh/crmsh.log引導設定。

在選擇 SBD 之前,請在每個節點上設定看門狗。如果使用外部隔離,請在工作負載啟動之前設定其支援的 STONITH 資源。切勿為了繞過缺少的設備而停用 STONITH。引導程式創建的是基本集群,而非高可用性 (HA) 應用。

5. 連接到第二個節點

在節點2上執行終端指令crm cluster join,連接到節點1上的根節點。
在節點 2 上執行 join 指令;使用初始化期間做出的相同網路介面選擇。

在節點 2 上安裝並註冊 SLE HA。如果使用 SBD,請在加入 HA 之前配置好其看門狗。然後,以 root 使用者身分執行以下操作:

crm cluster join -c root@node1

對於 sudo 使用者配置,請使用 SUSE 的USER@NODE1步驟。如果初始化時已配置,請指定相同的兩個介面。腳本會複製 Corosync 設置,設置 SSH 和 Csync2,並使節點 2 上線。對更多節點重複此動作;請勿混用引導程式和 YaST 設定方法。

6. 確認會員資格並確保管理安全

使用終端機執行 crm status 和 passwd hacluster 命令來檢查叢集並更改初始帳戶密碼
使用 Hawk2 之前,請檢查 CRM 狀態的成員資格並取代引導 HACluster 密碼。

從叢集節點檢查成員資格:

crm status

確認兩個節點均在線且達到法定人數。引導程式會hacluster使用初始密碼建立​​實例linux;請在每個已初始化的節點上變更密碼:

passwd hacluster

Hawk2 使用 HTTPS 協議,連接埠為7630。在信任自簽名憑證之前,請務必先與您的管理員確認其有效性。 Hawk2 管理 IP 位址並非應用程式的用戶端位址。

7. 為實際需要保護的服務增加資源

CRM Shell 範例定義了 IPaddr2 服務虛擬 IP 資源,並說明要使用本機子網路中的空閒位址。
此範例僅定義了一個浮動 IP 資源;請將其文件位址替換為您子網路中未使用的位址。

Pacemaker 透過資源代理人管理服務。在符合條件的節點上正確安裝和配置工作負載。此範例僅建立一個浮動 IP 原語:

crm configure primitive service-vip IPaddr2   params ip=192.0.2.50 cidr_netmask=24   op monitor interval=10s timeout=20s

192.0.2.50此位址保留用於文件記錄。請替換為子網路中的可用位址和正確的前綴。 IP 原語不會啟動應用程式或複製資料。請新增應用程式支援的代理,以及特定於工作負載的排序、託管和儲存行為;並遵循該產品的復原和隔離指南。

8. 在宣布叢集準備就緒之前,先測試故障轉移狀況。

終端命令將節點1置於備用狀態,檢查叢集狀態和範例虛擬IP,然後將節點1恢復在線。
規劃備用測試會檢查資源是否已遷移,然後將節點還原到服務狀態。

配置實際資源和隔離機制後,安排一次受控故障轉移測試。將節點 1 置於備用狀態,並從節點 2 檢查服務:

crm node standby node1
crm status
ping -c 4 SERVICE_VIP
crm node online node1

替換SERVICE_VIP為真實的客戶端位址。確認應用程式回應正常,資源按預期遷移,並且 node1 重新加入網路。 Ping 僅檢查網路可達性。 SUSE 會crm cluster crash_test故意中斷元件,因此請在已規劃的測試環境中使用。請閱讀SLE HA 安裝快速入門和隔離指南。

驗證服務可用性

測試後,確認兩個節點均處於預期狀態,隔離功能保持啟用狀態,且節點 1 恢復在線後,工作負載能夠透過其客戶端端點回應。僅憑成員視圖顯示綠色或 ping 通並不能證明應用程式已恢復。

留下評論

在 SLES 15 上設定 DM-Multipath 以實現可靠的 SAN 路徑

在 SLES 15 上設定 DM-Multipath 以實現可靠的 SAN 路徑

準備 SCSI SAN 路徑,啟用 multipathd,檢查 SUSE 的硬體預設設置,並在不猜測陣列設定的情況下驗證穩定的設備映射。

在 SUSE Linux Enterprise 上安全清除 Zypper 鎖

在 SUSE Linux Enterprise 上安全清除 Zypper 鎖

找到持有 Zypper 包鎖的進程,區分進程衝突和包鎖,並在不盲目刪除鎖定檔案的情況下重試更新。

首先建構一個受支援的、帶有隔離功能的 SLES 15 HA 集群

首先建構一個受支援的、帶有隔離功能的 SLES 15 HA 集群

註冊 SLE HA,引導 SLES 15 個節點,然後在依賴故障轉移之前新增隔離、仲裁和測試服務資源。

SLES Zypper HTTP 500:尋找故障儲存庫

SLES Zypper HTTP 500:尋找故障儲存庫

將 Zypper 刷新錯誤追溯到 SUSE、RMT 或第三方端點,然後應用正確的伺服器端或快取修復程序,同時不停用必要的更新。

SLES 精簡池空間不足:安全擴充 LVM 並恢復寫入

SLES 精簡池空間不足:安全擴充 LVM 並恢復寫入

透過檢查資料和元資料使用情況、安全地擴展池以及防止重複中斷來解決 SUSE LVM 精簡池空間錯誤。

當 SLES Btrfs 檔案系統變成唯讀時:重新掛載前請先診斷

當 SLES Btrfs 檔案系統變成唯讀時:重新掛載前請先診斷

確定 Btrfs 是否故意設定為唯讀、空間不足或在發生錯誤後保護數據,然後選擇適合該原因的恢復路徑。

在離線網路中使用 SUSE Manager 註冊 SLES 15

在離線網路中使用 SUSE Manager 註冊 SLES 15

準備鏡像通道,建立啟動金鑰,並在沒有直接網路存取的情況下引導 SLES 15 用戶端,同時保持管理員簽到所需的連線。

讓 YaST 的 X11 轉送透過 SSH 正常運作

讓 YaST 的 X11 轉送透過 SSH 正常運作

修復 YaST 透過 SSH 啟動 XIO 時出現的錯誤,驗證 X11 轉送和 xauth,並在不需要遠端視窗時切換到 ncurses 介面。

使用 Snapper 安全地回滾失敗的 SLES 更新

使用 Snapper 安全地回滾失敗的 SLES 更新

找到更新前的 Btrfs 快照,以唯讀方式測試它,並使用 Snapper 實現永久恢復,同時了解哪些資料保留在根回滾之外。

Secure SLES Syslog Forwarding with rsyslog and Mutual TLS

Secure SLES Syslog Forwarding with rsyslog and Mutual TLS

Send SLES system logs to a remote rsyslog collector over authenticated TLS, with certificate checks, outage buffering, and delivery tests.