Esistono un paio di modi per ottenere l'HA (elevata disponibilità) di un servizio di bilanciamento del carico - o per quanto riguarda qualsiasi servizio. Supponiamo che tu abbia due macchine, con indirizzi IP:
- 192.168.100.101
- 192.168.100.102
Gli utenti si connettono a un IP, quindi quello che vuoi fare è separare l'IP dalla casella specifica, ad esempio creare un IP virtuale. Tale IP sarà 192.168.100.100.
Ora puoi scegliere il servizio HA che si occuperà del failover / failback automatico dell'indirizzo IP. Alcuni dei servizi più semplici per unix sono (u) carpe e keepalived, alcuni dei più complessi sono ad esempio RedHat Cluster Suite o Pacemaker.
Prendiamo come esempio keepalived - due servizi keepalived - ciascuno in esecuzione sulla propria casella - e comunicano insieme. Quella comunicazione è spesso chiamata battito cardiaco.
| VIP | | |
| Box A | ------v^-----------v^---- | Box B |
| IP1 | | IP2 |
Se un keepalived smette di rispondere (uno dei servizi si interrompe per qualsiasi motivo o la casella rimbalza o si spegne) - keepalived su un'altra casella noterà battiti cardiaci persi e presumerà che l'altro nodo sia morto e intraprenderà azioni di failover. Quell'azione nel nostro caso farà apparire l'IP mobile.
| VIP |
------------------ -------------- | Box B |
| IP2 |
Il caso peggiore che può accadere in questo caso è la perdita di sessioni per i client, ma saranno in grado di riconnettersi. Se si desidera evitare ciò, due bilanciatori del carico devono essere in grado di sincronizzare i dati della sessione tra loro e, se possono farlo, gli utenti non noteranno nulla, tranne forse un breve ritardo.
Un altro inconveniente di questa configurazione è split brain: quando entrambe le caselle sono online ma il collegamento è interrotto ed entrambe le caselle visualizzano lo stesso IP. Questo problema viene spesso risolto tramite un qualche tipo di meccanismo di recinzione (prenotazione SCSI, riavvio IPMI, interruzione dell'alimentazione della PDU intelligente, ...) o un numero dispari di nodi che richiedono la maggior parte dei membri del cluster per essere attivi per l'avvio del servizio.
| VIP | | VIP |
| Box A | | Box B |
| IP1 | | IP2 |
Software di gestione dei cluster più complessi (come Pacemaker) possono spostare l'intero servizio (ad es .: fermarlo su un nodo e avviarlo su un altro) - e questo è il modo in cui è possibile ottenere HA per servizi come database.
Un altro modo possibile - se si controllano i router vicino ai sistemi di bilanciamento del carico, è utilizzare ECMP. Questo approccio consente inoltre di ridimensionare in modo orizzontale i bilanciatori di carico. Funziona con ciascuna delle due caselle che parlano BGP con il / i router / i. Ogni casella deve pubblicizzare l'IP virtuale (192.168.100.100) e il router caricherà il traffico di bilanciamento tramite ECMP. Se una macchina muore, interromperà la pubblicità di VIP, che a sua volta impedirà ai router di inviare traffico ad essa. L'unica cosa di cui devi occuparti in questa configurazione è interrompere la pubblicità IP se il bilanciamento del carico stesso muore.