I have two real servers, on different subnets, each one with a permanent IP, and with a failover IP that can be used by either server. The hoster provides an API with which I can assign the failover IP to any of the servers. So I need to run a daemon on each of the servers, which will be monitoring the health of the local server, and at the same time communicate with its counterpart at the other server, so that the two together (or only one, if the other fails) decide who will get the failover IP (and run a script to tell the hoster's API to route it appropriately).
keepalived
can't do it, unless (allegedly) with Willy Tarreau's unicast patch, which I've tried unsuccessfully. In addition, it would be preferable for the daemon to not attempt to take or release the IP from the network interface; the preferred setup is for the interfaces of both machines to always have the failover IP address.
Can heartbeat
do it? Can any other similar program do it? I've ended up writing my own daemon, which does work properly, but I see no reason to maintain it if an existing program can do it.
Heartbeat can do it, because it's capable of running arbitrary scripts to manage resources, so you can write a script to call the hosting provider's API to move the IP address around.