LVS vs HAProxy, qual devo escolher?

19

Estou procurando uma solução para balanceamento de carga e estratégia de failover, principalmente para grandes aplicativos da web. Temos muitos serviços a serem balanceados, como web, MySQL e muitos outros serviços baseados em HTTP ou TCP. Mas não tenho certeza de quais são os seus prós e contras e quais devo escolher.

    
por Mickey Shine 23.08.2010 / 05:14

2 respostas

22

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ê precisa equilibrar apenas com base no número de conexões (digamos), o balanceador de carga da camada 4 deve ser suficiente; por outro lado, se você quiser 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, digamos, tráfego). Os pontos positivos são óbvios - pense em "inspeção de nível de pacote", "roteamento de protocolo", etc - coisas muito mais complicadas do que o simples "roteamento de pacotes".

O último ponto que quero fazer é que o HAproxy é userspace (acho "muito mais fácil de personalizar / tweak", mas mais lento (performance)), enquanto o LVS está no kernel (pense "rápido como o inferno", mas rígido como o kernel). Além disso, não se esqueça de que "atualizar o LVS pode significar mudança no kernel - ergo, reboot" ...

Em conclusão, use a ferramenta certa para o trabalho certo.

    
por 28.02.2012 / 17:28
7

Você deve usar os dois: o HAProxy é um ótimo balanceador de carga e o LVS é uma solução para failover e evita um único ponto de falha.

    
por 23.08.2010 / 12:12