Cluster

Pacemaker:由於故障轉移,在遷移 N 次後停止資源

  • September 29, 2016

我有 5 個節點的配置,4 個能夠託管資源和 1 個資源。我想要做的是在從一個節點遷移到另一個節點後使資源完全停止。

所以一個範例場景是:資源 VIP1 在節點上執行one;它的監視器失敗,migration-threshold到達,它移動到節點two;然後它再次失敗,並移動到 node three;然後它再次失敗,但某種規則(我正在尋找)阻止它遷移到 node four。我想我需要某種遷移計數器。

這是一個測試配置,實際上我會有更多的節點和更多的資源。所以我希望配置盡可能簡單。我認為我可以使用每個資源的選擇加入或選擇退出位置偏好策略來實現這一點,但它既不簡單也不易於維護。有沒有更好的辦法?

PS 在目前配置下,如果我用 淹沒我的 VIP hping,它將在完全停止之前循環遍歷所有節點(因為它沒有更多節點可以執行,直到我清理它或引入一個failure-timeout選項)

版本:

[~] corosync -v
Corosync Cluster Engine, version '2.3.6'
Copyright (c) 2006-2009 Red Hat, Inc.
[~] crm --version
crm 2.2.0
[~] cat /etc/debian_version
8.5

起搏器配置:

[~] crm configure show
node 1: one
node 2: two
node 3: three
node 4: arbitr \
       attributes standby=on
node 5: four
primitive VIP1 IPaddr2 \
       params ip=10.10.11.230 cidr_netmask=22 \
       op monitor interval=1s timeout=40ms \
       meta migration-threshold=1 target-role=Started
location preferOne VIP1 50: one
property cib-bootstrap-options: \
       dc-version=1.1.14-70404b0 \
       cluster-infrastructure=corosync \
       cluster-name=debian \
       stonith-enabled=false \
       last-lrm-refresh=1474984960 \
       have-watchdog=false

編輯:整個配置的背景和故事是這樣的:我們有兩個負載均衡器,帶有 LVS,代理流量到我們的前端。高可用過去是通過一個簡單的keepalived配置和2個VIP(一個雙活配置;在正常情況下,每個LVS有1個VIP)來實現的。但是最近有些人開始定期對我們進行 DDoS,keepalived 設置不再像預期的那樣工作:即使他們只對 1 個 VIP 即 1 個主機進行 DDoS,它的 keepalived 會失去來自另一個主機的入站流量,搶到第二個 VIP 並癱瘓整個系統。

所以我們認為我們 a) 找到一些東西來管理具有法定人數的 VIP,以避免腦裂;b) 至少兩倍的 LVS 主機。

所以我測試了pacemaker+corosync,當我們有兩個主節點和一個備用節點時,它的配置真的很簡單。正如預期的那樣,當其中一個 VIP 被 DDoSed 時,該 VIP 首先遷移到另一個節點,然後完全關閉。隨著我們添加節點,“資源漫遊”變得更長,這並不是我們想要的:我們希望 VIP 盡快關閉,但我們當然也希望有機會自動從內部恢復硬體問題(如果節點突然宕機,FE)。所以我想……也許有一種方法可以只遷移一次資源,如果仍然失敗,那麼就完成它。使我們免於硬體故障;當我們受到部分 DDoS 攻擊時,可以節省我們的時間。

差不多就這些了,如果寫得太詳細了見諒。如果我們從一開始就選擇了錯誤的工具來處理這個問題,請告訴我。(當然,我們確實使用其他方法防禦 DDoS,但如果攻擊設法通過,我們希望將損失降到最低)。

這絕對是一個有趣的案例,感謝分享…

當您是 VIP 時,他們可能無法可靠地進行 DDoS 攻擊。也許您可以看一下 Pacemaker 的“ping”資源代理。

clusterlabs 文件在這裡簡要提及:http: //clusterlabs.org/doc/en-US/Pacemaker/1.0/html/Pacemaker_Explained/ch09s03s03.html

通過您首選的集群配置管理工具查看資源代理的資訊,可以找到更多資訊:

# crm ra info ping
--or--
# pcs resource describe ping

希望這會有所幫助。

引用自:https://unix.stackexchange.com/questions/312711