我的配置有 5 個節點,其中 4 個節點能夠託管資源,1 個節點為資源。我想做的是讓資源在從一個節點遷移到另一個節點N次之後完全停止。
因此,範例場景是:資源 VIP1 在節點 上運作one
;它的監視器失敗,migration-threshold
到達後,它移動到節點two
;然後它再次失敗,並移動到節點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,但如果攻擊成功,我們希望將損害降到最低)。
答案1
這絕對是一個有趣的用例,感謝分享...
當您的 VIP 受到 DDoS 攻擊時,他們可能無法可靠地 ping 通。也許您可以看一下 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
希望有幫助。