
Inspirado pela rede Stack Overflow, agora estou obcecado pelo HAProxy e tentando usá-lo sozinho.
No momento cada caixa HAProxy possui duas placas de rede (bom, duas configuradas, posso ter no máximo 4 e não tinha certeza se precisavam de uma própria para gerenciamento entre as caixas).
Em ambas as máquinas, o backend (eth1) é um IP privado que vai para um switch conectado aos servidores web, e o frontal (eth0) possui um IP público de internet que é roteado diretamente.
Além disso, criei um IP virtual adicional para eth0 chamado eth0:0
que possui um terceiro endereço IP público.
Estou quase aprendendo a usá-lo para balanceamento de carga entre vários servidores da Web que estão por trás dele, mas não estou conseguindo balancear a carga entre as duas caixas HAProxy - elas parecem lutar pelo IP virtual, mas isso não parece para ser uma solução inteligente.
Agora, usando o endereço IP compartilhado virtual, esta solução parece funcionar e parece me dar o máximo de tempo de atividade, mas essa é a maneira correta de fazer isso ou existe uma maneira mais inteligente?
Tenho procurado outros pacotes Linux, como keepalived, mas só uso Linux (servidor) há uma semana e estou no limite do meu entendimento.
Alguém já fez isso antes e pode aconselhar algo para obter o máximo de tempo de atividade?
Responder1
Se você deseja balancear a carga do tráfego entre dois haproxies diferentes, você precisa ter outro balanceador de carga na frente deles e isso não será útil.
Se quiser maior disponibilidade, você já conseguiu usando dois haproxies e VIP atribuído a um deles por keepalived ou heartbeat. Normalmente, esta é a solução para problemas de HA e balanceamento de carga.
Posso pensar em uma maneira de usar dois haproxies ao mesmo tempo. Você pode configurar o keepalived para atribuir um VIP a cada servidor haproxy. O balanceamento de carga pode ser feito por DNS. O nome DNS deve ser resolvido para os dois VIPs. Quando um haproxy falha, o outro nó manterá os dois VIPs e receberá todo o tráfego.