Alta disponibilidade em vários sites

15

Temos um aplicativo SaaS que precisamos estar altamente disponíveis. Já temos um caro e bem mantido cluster de failover do Hyper-V, mas hoje o data center onde hospedamos esse cluster teve uma queda de energia de cinco horas que nos derrubou completamente. Então, agora estamos nos perguntando se uma abordagem melhor seria usar servidores em dois datacenters separados. Supondo que obtemos toda a replicação de arquivos de back-end e replicação de dados trabalhando entre esses dois sites, estamos nos perguntando como lidar com o roteamento front-end - não é de admirar como abordamos o problema, sempre acabamos sendo o balanceador de carga um único ponto de falha.

Portanto, a pergunta é ... como podemos configurar o balanceamento de carga entre dois sites de hospedagem, de modo que o balanceador de carga não seja o único ponto de falha? Existe uma maneira de usar dois balanceadores de carga separados, um em cada site? Devemos estar considerando o DNS round-robin?

    
por Mike 07.02.2012 / 04:01

3 respostas

14

Para fazer isso corretamente, você precisa ter:

  • Duas instâncias separadas em dois datacenters (como você já determinou)
  • Sincronização entre os dois datacenters (como você já determinou)
  • Uma maneira de redirecionar os clientes de um para o outro no caso de uma falha

Existem duas maneiras comuns de se fazer isso. Um simples, um ... não.

DNS

O DNS Round-Robin não é exatamente o que você quer, porque é provável que você queira que todos os pedidos entrem no DC primário, e o segundo DC só seja usado durante o tempo de inatividade do primeiro. / p>

O que você pode fazer é definir um TTL muito baixo no seu DNS (digamos, 30 segundos ou 5 minutos), o que significa que, se o seu DC cair, você apenas atualiza o seu DNS e dentro de 5 minutos, todos os seus clientes estarão apontando para o seu outro CD.

Isso significa que, como seus dois controladores de domínio terão layouts de IP diferentes, você precisa se ajustar para isso na configuração do datacenter.

BGP

Basicamente, se você está fazendo essa pergunta, isso está fora do seu alcance. Em suma, seus endereços IP permanecem os mesmos, mas são "movidos" de um datacenter para outro. Isso envolve roteadores caros, faixas de IP caras e assinaturas caras para o seu registro local para números de AS e intervalos de IP.

Seus roteadores BGP param de anunciar seu no datacenter principal e começam a anunciar em seu datacenter secundário. Em seguida, a Internet percorre o datacenter off-line e envia tráfego para seu novo DC.

Se você está virtualizado com o ESXi e o vSphere, o VMWare tem um produto muito bom que testamos uma vez chamado de site do VMWare Recovery Manager , que basicamente faz tudo por você. Ele mantém suas configurações de VM em sincronia e as ativa no segundo site quando o primeiro site fica offline. É muito dinheiro embora.

    
por 07.02.2012 / 04:49
1

Você precisa balancear a carga dos balanceadores de carga.

Você pode fazer isso com round-robin de DNS, mas essa abordagem tem muitos problemas. Você não pode controlar os clientes que armazenam entradas em cache por mais tempo do que você deseja e não é possível forçar o tráfego a ir para um determinado local.

Você também pode fazer isso com o Global Server Load Balancing (GSLB). Essa é uma maneira mais avançada de aproveitar o DNS para dar visibilidade a vários data centers da Internet. Em suma, você configura algum mecanismo para dividir seu tráfego em fatias e usar o DNS para selecionar uma fatia. Usamos um hash do resolvedor de DNS configurado para fazer pesquisas pelo cliente. Outras pessoas usam a geografia para direcionar para o data center "mais próximo". Você precisará adicionar algum mecanismo para remover rapidamente um IP do GSLB se algum ponto único de falha desse data center ou cluster cair.

link

Finalmente, algumas pessoas realmente avançadas enfrentam esse problema com o Anycast DNS. Isso novamente tenta alavancar a abordagem de data center "mais próxima". Anunciar seu serviço significa que você precisará eliminar qualquer "estado de alerta". Isso pode ser difícil.

    
por 07.02.2012 / 04:58
1

Anos depois ... mas para quem ainda procura, estas parecem ser as soluções mais acessíveis / simples para failover de DNS:

por 07.01.2017 / 09:05