Estou procurando uma solução para a estratégia de balanceamento de carga e failover, principalmente para grandes aplicativos da web. Temos muitos serviços a serem equilibrados, como web, MySQL e muitos outros serviços baseados em HTTP ou TCP. Mas não sei ao certo quais são seus prós e contras e qual devo escolher.
A coisa mais importante que diferencia as duas soluções (LVS, HAproxy) é que uma está trabalhando na camada 4 (LVS) e a outra na camada 7 (HAproxy). Observe que as referências de camadas são do modelo de rede OSI.
Se você entender isso, poderá usar um no lugar certo. Por exemplo: se você precisar equilibrar com base apenas no número de conexões (digamos), o balanceador de carga da camada 4 deve ser suficiente; por outro lado, se você deseja balancear a carga com base no tempo de resposta HTTP, precisará de um tipo de camada superior de LB.
As desvantagens de usar um LB de nível superior é o recurso necessário (para a mesma quantidade de, digamos, tráfego). Os problemas são óbvios - pense em "inspeção de nível de pacote", "roteamento de protocolo" etc. - coisas muito mais complicadas do que simples "roteamento de pacote".
O último ponto que quero destacar é que o HAproxy é o espaço do usuário (pense "muito mais fácil de personalizar / ajustar", mas mais lento (desempenho)), enquanto o LVS está no espaço do kernel (pense "rápido como o inferno", mas rígido como o kernel) ) Além disso, não se esqueça de "atualizar o LVS pode significar alteração do kernel - ergo, reinicie" ...
Em conclusão, use a ferramenta certa para o trabalho certo.
+1, exceto HAProxy é principalmente para o uso de HTTP, uma vez que de outra forma esconde o IP de origem do pedido, que pode ser um problema (para SMTP RBL por exemplo)
Antoine Benkemoun
3
Estou usando o HAProxy para servidores tcp puros e funciona muito bem. O IP de origem oculto é um problema para todos os balanceadores de carga.
lg.
2
Acredito que o IP de origem oculta é uma das razões pelas quais os balanceadores de carga não são frequentemente usados para serviços SMTP.
Stefan Lasiewski
3
lvs e ha proxy fazem a mesma coisa. Eu prefiro o LVS, muito mais rápido, porque roda no kernel.
Diego Woitasen
1
@AntoineBenkemoun, você pode usar o modo transparente do HAProxy para mostrar o IP do cliente.
Você deve usar os dois: HAProxy é um ótimo balanceador de carga e o LVS é uma solução para failover e evita um ponto único de falha.
fonte