防止 VRRP Master 一旦失败就成为 Master

MrM*_*hgu 13 linux vrrp keepalived

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

如果 A 失败并恢复(无论出于何种原因),我如何防止 A 再次成为 Master?

我这样做是为了让我们有一个单一的故障转移到第二个盒子,恢复正常需要手动干预。

Jam*_*ger 14

根据keepalived开发者列表上这个比较老的线程,是可以做到的。您将两个服务器设置为相同的优先级(或根本没有),并且不要将状态声明为 MASTER 或 BACKUP,而是将两者的状态都设置为 EQUAL。

编辑(2017 年 12 月 7 日):

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

  • 谢谢——另外值得注意的是,如果没有master接管,使用上述配置(同等优先级并使用“EQUAL”),IP最低的VRRP实例将成为MASTER。 (3认同)

dav*_*avr 8

我们解决这个问题的方法是将nopreempt标志添加到我们的 keepalived 配置文件中。不必更改任何其他内容(仍然保留一个 asMASTER一个 asBACKUP等等)。基本上这告诉它不要仅仅因为新服务器上线就切换主服务器,只有在当前主服务器出现故障时才切换。

  • 来自“http://article.gmane.org/gmane.linux.keepalived.devel/1537”如果“state”设置为MASTER,“nopreempt”基本上被忽略,因为当带有“state MASTER”的机器返回时,它只会使用“状态备份”从机器上获取 IP,甚至无需举行选举。我必须将我的两台机器都设置为 BACKUP 状态,其中一台具有更高的优先级,以便“nopreempt”按预期运行。 (4认同)