Qual é a diferença entre keepalive e heartbeat?

18

Eu quero estruturar um cluster de servidores de alta disponibilidade. Agora eu quero saber detalhes sobre keepalive e heartbeat, qual é a diferença entre ambos, e como escolher um.

    
por aboutstudy 17.02.2012 / 03:39

2 respostas

21

Acredite que a pergunta foi respondida com muita precisão por Willy Tarreau, autor de HAProxy, no link .

Citação do link acima

Heartbeat is not the best tool to get a redundant haproxy setup, it was designed to build clusters, which is a lot different from having two redundant stateless network equipments. Network oriented tools such as keepalived or ucarp are the best suited for that task

The difference between those two families is simple

  1. a cluster-oriented product such as heartbeat will ensure that a shared resource will be present at at most one place. This is very important for shared filesystems, disks, etc... It is designed to take a service down on one node and up on another one during a switchover. That way, the shared resource may never be concurrently accessed. This is a very hard task to accomplish and it does it well.
  2. a network-oriented product such as keepalived will ensure that a shared IP address will be present at at least one place. Please note that I'm not talking about a service or resource anymore, it just plays with IP addresses. It will not try to down or up any service, it will just consider a certain number of criteria to decide which node is the most suited to offer the service. But the service must already be up on both nodes. As such, it is very well suited for redundant routers, firewalls and proxies, but not at all for disk arrays nor filesystems.

(Sim, eu sei que é uma questão antiga, mas para referência futura)

    
por 14.03.2014 / 15:18
4

Não há diferenciação clara e consistente. Essas palavras são algumas vezes usadas de forma mais ou menos intercambiável.

Existe um deamon userland comum para configurações de alta disponibilidade chamado Keepalived , e o projeto Linux HA costumava ter um deamon chamado Heartbeat, que agora mudou para Pacemaker . (Eu confio que você não pediu uma visão geral completa desses dois sistemas, e quais são todas as diferenças, que a IMHO estaria fora do assunto.)

No uso diário dos termos , eu diria que o uso mais comum é o seguinte:

  • "Keepalive" refere-se geralmente a um sistema que mantém um serviço altamente disponível.

  • "Heartbeat" refere-se mais especificamente a um protocolo de comunicação, em que um ou mais membros de uma configuração de alta disponibilidade enviam periodicamente "Sim, ainda estou vivo!" mensagens. Seus colegas então agem se não virem uma mensagem "Sim, estou vivo" antes de um tempo definido (ou seja, o outro host caiu). Isto é um pouco como sentir por um pulso, daí o nome.

por 17.02.2012 / 07:10