0

我使用起搏器和 corosync 来管理两个节点处于主动/被动模式的故障转移。我已经这样配置了一个虚拟 IP 资源:

 # pcs resource create VirtualIP ocf:heartbeat:IPaddr2 \
        ip=192.9.50.54 cidr_netmask=32 op monitor interval=1s timeout=5s \
        start interval=0s timeout=30s

# pcs resource create PingIP ocf:pacemaker:ping dampen=5s multiplier=1000 host_list=@IP --clone

# pcs constraint location VirtualIP rule score=-INFINITY pingd lt 1 or not_defined pingd

其中@IP 是要ping 的IP 地址。

一切正常,VIP 根据 ping 在节点上移动。但是,当两个节点都无法 ping @IP 时,我的资源 VirtualIP 被禁用。在这种情况下,我希望在启用它的最后一个节点上保持启用 VirtualIP 资源。

我认为我必须根据ping结果修改我的资源VirtualIP的分数,但我没有找到如何去做。

谢谢你的帮助

4

1 回答 1

1

我找到了这个解决方案,正如我想的那样,我用以下约束修改了我的资源 VirtualIP 的分数。

# pcs constraint location VirtualIP rule score=50 pingd gte 1 and defined pingd

因此,当一个节点成功 ping @IP 时,它的 VirtualIP 资源增加了 50。当两个节点都 ping 失败时,资源不会停止并停留在它所在的最后一个节点上。

也许它对某人有用。

于 2015-02-18T14:37:30.053 回答