我的配置有 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
希望这有帮助。