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.
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:
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
- 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.
- 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)
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.