跳轉到

ClusterXL 高可用

一台防火牆掛了,服務不能跟著掛。ClusterXL 把兩台(或多台)Gateway 組成叢集,一台故障時另一台接手,達到高可用(HA)。

兩種模式

模式 運作 特點
High Availability(HA) 一台 Active 工作、其他 Standby 待命 最常見,故障時 failover
Load Sharing(LS) 多台同時分擔流量 吞吐更高,設定 / 狀態同步較複雜

大多數環境用 HA(Active/Standby)

關鍵元件

graph TD
    subgraph Cluster
    A[成員 1<br/>Active] ---|Sync 網路| B[成員 2<br/>Standby]
    end
    A -->|持有 VIP| NET[對外 / 對內網路]
    B -.接手 VIP.-> NET
  • Cluster Virtual IP(VIP):對外服務用的虛擬 IP,永遠在 Active 成員上。Failover 時 VIP 轉到新 Active。
  • Sync 網路(State Synchronization):成員間同步連線表的專用網路。有了它,failover 時既有連線不中斷。
  • CCP(Cluster Control Protocol):成員間互相偵測存活與健康,並承載 Delta Sync。使用 UDP port 8116。模式有 Multicast / Broadcast / Unicast,R80.20 起會自動在三者間切換找最佳模式(必要時 cphaconf set_ccp <broadcast|multicast> 手動指定)。

Sync 網路要獨立且穩定

Sync 介面建議用獨立實體網路 / 直連,頻寬足、延遲低。Sync 不穩會造成連線表同步失敗、甚至雙方都搶當 Active(split-brain)。

健康檢查與排錯:cphaprob

cphaprob 是看叢集狀態的核心指令:

# 看叢集整體狀態與各成員角色
cphaprob stat

# 看是哪個「device / pnote」讓成員變 down
cphaprob -l list

# 看 Sync 介面與 CCP 狀態
cphaprob -a if

# 看 failover 歷史
cphaprob show_failover

# State Sync 同步統計(看連線表有沒有同步上)
cphaprob syncstat

成員狀態值(cphaprob state):ACTIVESTANDBYDOWNREADY(等待成為 Active)、INITBACKUPLOST,以及 ACTIVE(!)(如 ACTIVE(!P) 代表有 pnote problem)。

cphaprob stat 範例(重點看 State):

Cluster Mode:   High Availability (Active Up)
ID  Unique Address  State          Name
1   10.0.0.1        ACTIVE         member1
2   10.0.0.2        STANDBY        member2

成員一直 down?看 pnote

cphaprob -l list 會列出各種監控項(pnote),例如介面、程序、策略。哪一項 problem,就是它把成員拉 down 的原因 —— 比盲猜快得多。

Failover 怎麼觸發

任一監控項失敗就可能觸發 failover:

  • 監控介面 link down
  • 關鍵程序(如 fwd)異常
  • 策略未安裝
  • Sync 中斷

維運注意

  • 升級 / 打 JHF 逐台滾動做:先升 Standby → 確認正常 → 手動 failover → 再升另一台,全程不中斷服務。
  • 手動切換
    clusterXL_admin down      # 把本成員主動降為 down(測試 / 維護)
    clusterXL_admin up        # 恢復
    clusterXL_admin down -p   # -p = persistent,跨重開機仍維持(不加 -p 重開後失效)
    

版本提醒

ClusterXL 在 R81.10 ~ R82.10 一致,新版對 failover 速度、Sync 效率、虛擬環境(VMware / 雲)叢集支援持續強化。要注意:Maestro 不是用 ClusterXL —— Maestro 由 Orchestrator 做流量分配與成員管理,是另一套機制(見 Maestro)。

小結

  • ClusterXL 提供高可用:HA(Active/Standby)最常見。
  • VIP 跟著 Active 走、Sync 網路同步連線表讓 failover 不斷線。
  • 排錯主力指令 cphaprob stat / cphaprob -l list(看 pnote)。
  • 升級逐台滾動做;Maestro 是另一套機制,別搞混。