LVS vs HAProxy, qual devo escolher?


21

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.

Respostas:


24

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.


Adoro como as pessoas ainda usam camadas OSI, apesar de nunca terem sido implementadas na realidade.
Kubanczyk

9

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.


1
+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.
Thomas Decaux
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.