Alta disponibilidade em vários sites

15

Temos um aplicativo SaaS que precisamos estar altamente disponível. Já temos um cluster de failover Hyper-V caro e bem mantido, mas hoje o datacenter em que hospedamos esse cluster teve uma queda de energia de cinco horas que nos deixou completamente offline. Então agora estamos nos perguntando se uma abordagem melhor pode ser usar servidores em dois datacenters separados. Supondo que tenhamos a replicação de arquivos de back-end e a replicação de dados funcionando entre esses dois sites, estamos pensando em como lidar com o roteamento de front-end - não é de admirar como abordamos o problema, sempre terminamos com o balanceador de carga sendo um único ponto de falha.

Portanto, a questão é ... como podemos configurar o balanceamento de carga entre dois sites de hospedagem, para 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? Deveríamos considerar o DNS round-robin?

Mike
fonte

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 em caso de falha

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

DNS

O DNS Round-Robin não é exatamente o que você deseja, porque é provável que você queira que todas as solicitações sejam direcionadas ao controlador de domínio primário e o segundo controlador de domínio é usado apenas durante o tempo de inatividade do primeiro.

No entanto, o que você pode fazer é definir um TTL muito baixo no seu DNS (por exemplo, 30 segundos ou 5 minutos), o que significa que, se o seu controlador de domínio ficar inoperante, você apenas atualizará o DNS e dentro de 5 minutos mais ou menos seus clientes estarão apontando para seu outro CD.

Isso significa que, como seus dois controladores de domínio terão layouts de IP diferentes, é necessário ajustar isso na configuração do datacenter.

BGP

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

Seus roteadores BGP param de anunciar no seu datacenter primário e começam a anunciar no datacenter secundário. Em seguida, a Internet roteia o datacenter offline e envia tráfego para seu novo controlador de domínio.


Se você é virtualizado com ESXi e vSphere, o VMWare possui um produto muito bom que testamos uma vez chamado VMWare Site Recovery Manager , que basicamente faz tudo por você. Ele mantém as configurações da sua VM sincronizadas e as liga no segundo site quando o primeiro fica offline. É muito dinheiro embora.

Mark Henderson
fonte
Mesmo com o SRM, você ainda precisa organizar o material de replicação, bem como algum tipo de failover de IP.
EEAA
É verdade, embora o esxi5 tenha um novo produto de replicação não-San. Eu não olhei muito para isso.
Mark Henderson
Oh, está certo. Lembro-me de ouvir algo sobre isso.
EEAA
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 em cache as entradas por mais tempo do que gostaria e não pode 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 datacenters da Internet. Em resumo, você configura algum mecanismo para dividir seu tráfego em fatias e usa o DNS para escolher uma fatia. Usamos um hash do resolvedor DNS configurado para fazer pesquisas para o 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, caso algum ponto único de falha desse datacenter ou cluster seja interrompido.

http://www.eukhost.com/web-hosting/kb/global-server-load-balancing/

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

dmourati
fonte
Parece que essa abordagem ainda possui um único ponto de falha, o "Servidor Mestre" descrito no link que você forneceu.
7772 Mike