Linux中似乎有很多选项可以为多个主机之间的故障转移提供虚拟IP.我发现的一些是心跳,vrrpd,鲤鱼和keepalived.
在Linux中我只有心跳经验(并且在思科使用过HSRP).当提供将成为LAN上主机的网关的虚拟IP时,这些各种选项是否具有任何特定优势.我想要的一个功能是跟踪另一个界面的能力.因此,例如,如果虚拟IP在服务器A上的eth0和服务器B上的eth0之间共享,我希望能够在检测到eth1已关闭时将其故障转移到另一台服务器.我还希望能够设置一个首选主机.
解决方法
我在heartbeat中发现的主要优点之一是能够自定义它以具有多个监控点.根据默认的推荐配置,它在串行上行链路和网络监控之间有多个监控点.
例如,可以创建心跳资源脚本来监视守护程序,并且在守护程序失败的情况下,启动故障转移.
CARP基于HSRP,正如您所识别的那样监视接口.这肯定有一个地方,我喜欢这项技术,但根据服务器角色,你可能会发现心跳是有利的.
我想可以说,即使那些不支持这种协议的协议也可以编写一个脚本来模仿某些行为,这基本上就是我用heartbeat所描述的.
虽然我从未使用过keepalived,但它似乎与ldirectord类似,它监视LVS主机并在发生故障时将其从VIP中删除.我不认为这与心跳或CARP属于完全相同的类别.