Aqui está a regra geral que eu usei quando decidi entre keepalived e heartbeat.
A pulsação é geralmente usada quando você quer uma configuração de cluster ativa / em espera verdadeira (em que apenas um nó é realmente "para cima".) Pense no NFS. Normalmente w / Heartbeat as ações de pré e pós script são usadas para iniciar e parar serviços.
O uso de manutenção de manutenção é muito mais simples e geralmente é usado para uso em espera ativa (ou seja, para manter um serviço de forma redundante).
Um bom exemplo de uso com keepalive com o qual obtive sucesso é para balanceadores de carga Nginx redundantes. Nessa situação, se um nó falhar, o "ip flutuante" será transferido para o nó de backup.
O Keepalived é simples, mas permite que você crie seus próprios scripts de verificação (que acionam um failover, etc.). Algumas informações: link
O que é melhor para você depende da sua situação: keepalived é uma boa opção para o failover de roteador.