I also use 3 hosts for the 2 hosts with a floating IP plus a bit of DSL magic on the floating host to make sure that only one host has exclusive services running.
There’s also a version of the same code, that requires the service is running on both hosts.