I don't mean this as an opinion-based question.
I want to know if my assumption is correct to use a network-oriented tool (
keepalived) as opposed to a cluster-oriented tool (
heartbeat) in a scenario where I want to have several linux FTP servers writing on the same shared NFS disk, with a highly-available public IP address that moves between the nodes.
this post that is mentioned in other stackexchange answers explains that
heartbeat is great for ensuring that a shared service is available at at most one place at all times, and
keepalived is for ensuring that it is available at at least one place at all times.
The difference is in the failover situation:
heartbeatmakes sure the IP address (which is the service I plan on making highly available) is down on the failing node before bringing it up on the new master, while
keepaliveddoes what it can to make sure the service is always up on at least 1 node
I interpret this as that the failovers are much quicker for keepalived, but there is no guarantee that the service will not be "up" on more than one node simultaneously while switching over?
Am I correct about this, and is
keepalived the right tool for the job? (do I install it on the nodes themselves?)
I'm going to have at least three nodes. This is for replacing a 5-node RedHat cluster with a GFS filesystem on SAN. I want to replace it with virtual servers with NAS (NFS) storage instead. There are simple shell script based applications running on all nodes that use lock files to prevent them from stealing work from eachother, but I want to make sure that the cluster is always reachable on the same IP address. It doesn't matter which host answers.