DNS Load Balancing mais de 20 servidores com sessão e segurança

2

Eu tenho 20 servidores em um local e gostaria de fazer o balanceamento de carga. Isso pode ir até 100 em qualquer caso. Existe algum método conhecido para fazer isso? Eu gostaria também de ter algum tipo de mecanismo que, quando as consultas dos clientes, por exemplo, service.example.com, ele continuará usando o mesmo servidor até que a máquina seja retirada do cluster devido à falha. O cliente faz uma consulta DNS a cada minuto e vamos supor que o TTL de registro DNS de cima para baixo seja de 30 a 60 segundos, enquanto outros podem estar bem 24h, então cada sessão pode ser válida por até 24h após a consulta inicial e ser mudado para outro servidor.

Acho que os balanceadores de carga L4-L7 são inúteis, pois acho que eu poderia usar apenas o DNS.

Os protocolos são apenas conexões TCP baseadas em binários, bem como HTTP.

Eu estava pensando que para conexão binária (como sem nenhum protocolo), eu poderia usar o round-robin no DNS, então toda vez que eu consultava o DNS, obtinha uma resposta diferente.

Para HTTP, isso é algo que eu não sei. Eu poderia colocar talvez HAProxy e é isso, mas para o DNS não tenho certeza.

Eu estava pensando uma vez sobre o método a seguir. Envie o cliente para algum "master.example.com", que é o servidor HTTP fazendo apenas redirecionamentos, o que gerará o FQDN com uniqueid, o que significa que é como um id de sessão. Desta forma, este FQDN irá sempre resolver para o mesmo número ip e pode ser usado apenas para o ip que o solicitou, pelas próximas 24h ou para sempre, até que o servidor seja desligado.

Então, parece o seguinte:

http://redirect.example.com/resource => http://67hkkdbvh.example.com/resource

Agora a sessão é assim:

1st minute: http://67hkkdbvh.example.com/resource/1 TTL 60s
2nd minute: http://67hkkdbvh.example.com/resource/2 TTL 60s

Se o 67hkkdbvh morrer, o cliente solicita redirecionamento novamente.

Agora não sei como usar o HAProxy para ajudar com isso

    
por Andrew Smith 13.07.2012 / 17:19

3 respostas

3

Certamente você poderia usar DNS, mas eu prefiro usar balanceadores de carga adequados (eu uso o Zeus Traffic Managers - agora chamado Riverbed Stingrays - e ACEs da Cisco), não apenas eles são excelentes, mas também configurá-los para investigar as respostas reais do servidor, em vez de apenas pings ou nada, para que você possa tirá-los de serviço sem fazer alterações. Não é livre embora.

    
por 13.07.2012 / 17:24
2

Parece que você quer replicar a maneira exata como um balanceador de carga funciona, então a verdadeira questão é: o que um balanceador de carga faz / não faz o que você quer / não quer?

    
por 13.07.2012 / 17:40
1

você tentou dar uma olhada em haproxy ? parece que o stackexchange o está usando . isso no cluster de alta disponibilidade pode ser uma solução muito mais elegante que fornecerá a capacidade de failover.

    
por 13.07.2012 / 17:27