LVS + HA Proxy para balanceamento de carga L4 a L7

1

Atualmente, estamos usando o proxy HA para nossas necessidades de balanceamento de carga. Estamos planejando integrar o LVS com o HA Pro para criar uma solução de balanceamento de carga que possa cuidar do balanceamento de carga L4 e L7 e do HA.

As razões por trás do LVS são

  1. Melhor suporte a L4 para sessões TCP de longa data
  2. Retorno direto do servidor (não é possível no proxy HA)
  3. Failover para conexões existentes quando um balanceador de carga ativo fica inativo.

Neste momento, com o HA Proxy, o balanceador de carga de backup somente cuida do balanceamento de carga das novas sessões para os servidores de back-end e as conexões existentes que foram atendidas pelo balanceador de carga ativo são perdidas. Esperamos que, como o LVS opera no espaço do kernel, ele pode fazer failover até mesmo para as sessões existentes.

Alguém aqui usou LVS e HA Proxy em combinação?

Em caso afirmativo, você poderia fornecer algumas dicas sobre a integração de ambos - todos os pacotes devem ser escolhidos pelo LVS e, em seguida, as solicitações L7 devem ser enviadas para o HA Proxy?

    
por Andy 16.07.2014 / 00:00

1 resposta

0

Eu implementei uma configuração híbrida de IPVS / HAProxy. O HAProxy foi usado para tomar decisões relativamente pesadas no L7, o que tornou necessário reduzi-lo a volumes de tráfego relativamente baixos. Colocar o IPVS na frente deu a capacidade de fazer scale-out dos nós HAProxy, bem como remover a necessidade de gerenciar o failover nessa camada. Funcionou bem, para o caso de uso específico que eu precisava.

Eu não recomendaria essa configuração para sua situação declarada. Por ter ambos na mistura, você removerá as razões para usar o IPVS em primeiro lugar, porque enquanto o HAProxy estiver na pilha em algum lugar, ele se comportará da mesma forma que agora. Quaisquer problemas que o HAProxy está tendo com conexões TCP de longa duração ainda existirão (porque as conexões TCP ainda estão passando por uma instância HAProxy), você só será capaz de fazer DSR da caixa HAProxy para a Internet, e quando um HAProxy caixa vai para baixo, você ainda vai perder todas as conexões que estavam passando por essa instância.

Se você não precisar dos recursos específicos que o HAProxy oferece (inteligência L7), basta usar o IPVS (para os benefícios que você declarou que deseja). Se você fizer precisar dos recursos específicos que o HAProxy oferece, use-o em vez do IPVS. Sim, é um trade-off. Você precisará decidir o que é mais importante e quais conjuntos de recursos ausentes podem ser mais facilmente projetados (por exemplo, movendo algumas informações para o back-end, ou fazendo um trabalho melhor de lidar com conexões descartadas e restabelecendo-as sem impacto visível ao usuário).

Somente se você precisar dos recursos de HAProxy, e você precisa escalar o HAProxy porque você tem uma situação na qual uma única caixa HAProxy não funcionará mas um Uma única caixa DSR IPVS irá, se você então usar ambos em combinação.

    
por 16.08.2015 / 06:58