防止 VRRP Master 在发生故障后成为 Master

防止 VRRP Master 在发生故障后成为 Master

我有两台机器(A 和 B,A 是主机器)运行 VRPP(来自 keepalived)以获取虚拟 IP。

如果 A 发生故障并重新启动(无论出于何种原因),我该如何防止 A 再次成为 Master?

我这样做是为了我们可以将故障转移到第二个框,并且恢复正常需要人工干预。

答案1

根据keepalived 开发人员列表上相对较旧的主题,可以完成。您将两个服务器设置为同等优先级(或根本没有),并且不要将两者的状态声明为 MASTER 或 BACKUP,而是将两者的状态设置为 EQUAL。

编辑(2017年12月7日):

看来 EQUAL 实际上并不是一个有效状态,尽管在发布此答案时它似乎提供了预期的效果。请注意以下评论,特别是关联到@cristi 提供的 keepalived 当前问题列表。

答案2

我们解决这个问题的方法是将nopreempt标志添加到我们的 keepalived 配置文件中。无需更改任何其他内容(仍然保留一个为,MASTER另一个为,BACKUP依此类推)。基本上,这告诉它不要因为新服务器上线而切换主服务器,只有当前主服务器发生故障时才切换。

答案3

据我了解,当新的 VRRP 服务器启动时,它会强制进行选举,而当前服务器不会获得任何好处,因此旧主服务器将启动并赢得选举。除了相当残酷的 Shoot The Other Node In The Head 之外,我怀疑你能采取多少措施来阻止这种情况。Keepalive 可能有一些配置来控制选举过程。遗憾的是我现在没有时间检查,但我稍后会尝试查看。

相关内容