Qual'è la differenza tra keepalive e heartbeat?


20

Voglio strutturare un cluster di server ad alta disponibilità. Ora voglio conoscere i dettagli di keepalive e del battito cardiaco, qual è la differenza tra entrambi e come scegliere uno.

Risposte:


26

Credo che alla domanda sia stata data una risposta molto precisa da Willy Tarreau, l'autore di HAProxy, in http://www.formilux.org/archives/haproxy/1003/3259.html .

Citazione dal link sopra

Heartbeat non è lo strumento migliore per ottenere una configurazione haproxy ridondante, è stato progettato per creare cluster, che è molto diverso dall'avere due apparecchiature di rete stateless ridondanti. Strumenti orientati alla rete come keepalived o ucarp sono i più adatti a tale compito

La differenza tra queste due famiglie è semplice

  1. un prodotto orientato al cluster come il battito cardiaco assicurerà che una risorsa condivisa sia presente al massimo in un punto. Questo è molto importante per filesystem condivisi, dischi, ecc ... È progettato per mettere un servizio su un nodo e su un altro durante uno switchover. In questo modo, non è possibile accedere contemporaneamente alla risorsa condivisa. Questo è un compito molto difficile da svolgere e lo fa bene.
  2. un prodotto orientato alla rete come keepalived assicurerà che un indirizzo IP condiviso sia presente in almeno un luogo. Nota che non sto più parlando di un servizio o di una risorsa, ma gioca solo con gli indirizzi IP. Non proverà ad abbassare o aumentare alcun servizio, considererà solo un certo numero di criteri per decidere quale nodo è il più adatto per offrire il servizio. Ma il servizio deve già essere attivo su entrambi i nodi. Come tale, è molto adatto per router, firewall e proxy ridondanti, ma per niente per array di dischi o filesystem.

(Sì, lo so che è una vecchia domanda, ma per riferimento futuro)


Riferimento futuro davvero. Il battito cardiaco è stato una seccatura da configurare e far funzionare, ho scoperto che keepalived era molto più semplice e con la mia configurazione MySQL Master Master Single Write, ha funzionato come previsto.
Mike Purcell,

3

Non esiste una differenziazione chiara e coerente. Quelle parole sono talvolta usate più o meno in modo intercambiabile.

Esiste un comune deamon userland per configurazioni ad alta disponibilità chiamato Keepalived , e il progetto Linux HA aveva un deamon chiamato Heartbeat, che ora è diventato Pacemaker . (Confido che non hai chiesto una panoramica completa di quei due sistemi e quali siano tutte le differenze, che IMHO sarebbe fuori tema.)

Nell'uso quotidiano dei termini , direi che l'uso più comune è che:

  • "Keepalive" si riferisce più in generale a un sistema che mantiene un servizio altamente disponibile.

  • "Heartbeat" si riferisce più specificamente a un protocollo di comunicazione, dove periodicamente uno o più membri di un'installazione ad alta disponibilità inviano "Sì, sono ancora vivo!" messaggi. I loro colleghi, quindi, agiscono se non vedono il messaggio "Sì, sono vivo" prima di un tempo prestabilito (ovvero l'altro host è andato giù). È un po 'come provare un impulso, da cui il nome.


Vedi la risposta di @vange. Mi sembra abbastanza chiaro. Servizi diversi, nomi diversi, obiettivi di progettazione e casi d'uso diversi.
nelaaro il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.