不同子网上的IP故障转移

我有两个真正的服务器,在不同的子网上,每个服务器都有一个永久的IP地址,并且有一个故障切换IP,可以被任何一台服务器使用。 主机提供了一个API,可以将故障转移IP分配给任何服务器。 所以我需要在每台服务器上运行一个守护进程,这将监视本地服务器的运行状况,同时与另一台服务器上的对应端进行通信,这样两台服务器(或者只有一台其他失败)决定谁将获得故障转移IP(并运行一个脚本来告诉主机的API来适当地路由它)。

keepalived不能这样做,除非(据称)与威利Tarreau的单播补丁, 我已经尝试失败 。 另外,守护进程最好不要试图从networking接口取得或释放IP; 首选设置是两台机器的接口始终具有故障转移IP地址。

heartbeat可以做吗? 还有其他类似的程序可以吗? 我已经写了自己的守护进程,它确实工作正常,但是如果现有的程序可以做到,我认为没有理由维护它。

Heartbeat可以做到这一点,因为它可以运行任意脚本来pipe理资源,所以你可以写一个脚本来调用托pipe服务提供商的API来移动IP地址。