A maneira mais completa de fazer isso é usar marcapasso + LVS.
O LVS é a abreviatura de Linux Virtual Server. Muita informação pode ser encontrada em linux-ha.org
Basicamente, o kernel do Linux tem um balanceador de carga chamado IPVS. Como tal, é extremamente bem testado e suportado. Também tem sido em torno de um tempo muuuuito, (Kernel 2.0 dias eu acredito).
Existem vários utilitários para gerenciar o balanceador de carga, como ldirector e piranha. Ldirector é provavelmente o mais proeminente. O que esses utilitários são responsáveis por fazer periodicamente é verificar seus servidores de backend e certificar-se de que eles ainda estão lá e operando corretamente. Se achar que o servidor sumiu, ele removerá esse servidor da tabela IPVS do kernel e o removerá efetivamente do pool. Esses utilitários não são necessários, pois você pode interagir diretamente com a tabela IPVS usando ipvsadm
.
O marcapasso é o sucessor do Heartbeat, que é o utilitário padrão para armazenamento em cluster há muito tempo. Heartbeat foi preterido em favor do Pacemaker (batimento cardíaco não está mais sendo mantido), então enquanto você ainda pode usar Heartbeat se quiser (é definitivamente mais simples de configurar), seu fim está chegando.
A razão pela qual eu menciono este utilitário é que sem um par de balanceadores de carga na frente, você está apenas movendo o ponto único de falha para outro lugar. Em vez de um único servidor de back-end poder falhar, agora um único balanceador de carga pode falhar e você está no mesmo barco. O marcapasso garantirá que um balanceador de carga esteja sempre em execução. Se o balanceador de carga ativo falhar, o outro assumirá. Um benefício adicional do marca-passo é que ele permite que você execute ambos os balanceadores de carga em uma configuração ativa / ativa se você tiver vários IPs (a pulsação não pode fazer isso).