Vários servidores de balanceamento de carga ouvindo em um único IP / porta?

1

Digamos que eu tenha um ambiente de servidor de aplicativos totalmente funcional e com carga balanceada.

Todos os servidores têm que fazer failover graciosamente. É relativamente fácil de fazer com os servidores de aplicativos, mas como posso obter o failover com o balanceador de carga frontal?

Posso ter vários balanceadores de carga ouvindo o mesmo IP e porta? Preciso executar um novo assim que detectar que o antigo morreu?

    
por thwd 21.02.2012 / 20:06

2 respostas

5

Em termos básicos:

  • Você tem dois ou mais balanceadores de carga em execução ao mesmo tempo
  • Ambos são configurados com a mesma configuração, endereço IP, etc.
  • Eles executam uma pulsação
  • Apenas um está ativo a qualquer momento
  • Quando a pulsação do nó ativo desaparece (falha), o restante negocia entre eles que ficarão on-line próximos

Basicamente, a alta disponibilidade em um cluster ativo / passivo funciona da mesma maneira que as tecnologias que você está usando, portanto, o que foi dito acima se aplica a balanceadores de carga, servidores de banco de dados, hipervisores, etc.

No Linux, isso é feito com uma combinação de ferramentas, uma delas chamada heartbeat (e a sincronização de suas configurações é feita com drdb ).

No Windows, você geralmente usa o Cluster de Failover ou o Balanceamento de Carga de Rede, os quais oferecem um endereço IP virtual compartilhado por vários servidores. A sincronização de suas configurações pode ser feita com DFS-R para o balanceamento de carga de rede ou o agrupamento realmente tem a capacidade de compartilhar uma seção do Registro e reconfigurá-la no caso de um failover.

    
por 21.02.2012 / 20:27
1

Provavelmente testarei em poucos dias o seguinte como um balanceador de carga de alta disponibilidade para alguns servidores da Web "reais":

  • dois servidores Archlinux (instalação muito "básica")
  • cada um executa Pound como proxy reverso e balanceador de carga
  • Keepalived cuida do failover de IP

Eu executarei uma configuração ativa / passiva, ou seja, cada IP (tenho cerca de 20) está ativo em apenas um desses servidores. Se um desses servidores falhar, o outro cuidará de todos os IPs. O Pound pode detectar se um dos servidores da Web falha e se comporta de acordo: O Pound não redireciona nenhum pedido para ele até que ele seja recuperado novamente.

Não tenho certeza se uma solução semelhante pode ser aplicada aos seus servidores de aplicativos, mas cito completamente Mark Henderson

Although the concept is much the same, "hardware" load balancers tend to just use proprietary implementations of the above concepts

    
por 21.02.2012 / 22:19