Quando meu servidor A é desconectado, como redireciono automaticamente todos os usuários para o meu servidor B em outra cidade e vice-versa?
Um comutador de balanceamento de carga faz o que eu quero, exceto que eu não consigo descobrir como fazê-lo funcionar, a menos que ambos os servidores da Web estejam no mesmo prédio.
Os sistemas de cluster de alta disponibilidade fazem o que eu quero, exceto que não consigo descobrir como fazê-lo funcionar, a menos que os dois servidores da web estejam no mesmo prédio.
A resposta aceita para " redirecionar para uma página estática em outro servidor da web quando o servidor principal estiver inativo " parece oferecer suporte a servidores da web em duas cidades diferentes. Mas como a instalação de um software em uma caixa me ajuda depois que a caixa é desconectada?
Como o DNS round-robin e as redes de entrega de conteúdo (CDNs) fazem isso?
Suponho que uma abordagem comece algo como:
- Eu recebo o endereço IP de todos e cada um dos meus servidores web físicos.
- Coloquei o endereço IP de todos os servidores físicos no registro DNS para o nome de domínio único do site "the" (vários registros A ou AAAA ou ambos).
- ... então o que eu preciso fazer?
Suponho que outra abordagem comece algo como
- Uso um provedor de DNS dinâmico para o nome de domínio único que espero que os usuários digitem no navegador da web
- Configurei um trabalho cron em cada servidor Web que informa periodicamente ao provedor DNS seu próprio endereço IP (atualize o registro A ou AAAA) ou seu próprio nome de domínio (atualize o registro CNAME ou DNAME).
- ... então o que eu preciso fazer?
(Por enquanto, ficaria feliz se meus usuários tivessem uma página estática da Web com minhas informações de contato e uma nota de rodapé que diz "o servidor A principal da Web parece estar inativo" sempre que o servidor A estiver desconectado. Isso já é muito melhor do que o sistema atual que apenas fornece um erro de "servidor não encontrado". Idealmente, eu gostaria que A e B fossem totalmente sincronizados e aparentemente idênticos - mas isso é algo para outra pergunta: equivalente à CDN, mas para conteúdo dinâmico? ).
fonte
Respostas:
Parece que você pode estar procurando uma solução Global Server Load Balancing (GSLB). O GSLB geralmente usa DNS "inteligente" para direcionar usuários a diferentes servidores com base em vários parâmetros (ou seja, servidor indisponível, alta carga, geolocalização de IP, etc.).
Como exemplo, digamos que você tenha dois servidores da Web, um no oeste (10.10.10.1/24) e um no leste (10.20.20.1/24). Diga que seu nome de host é www.connect.com.
O GSLB pode ser configurado para ser seu DNS ou como um CNAME. De qualquer forma, um usuário digita www.connect.com, a consulta dns é direcionada para a solução GSLB e responde com 10.10.10.1 ou 10.20.20.1, dependendo dos parâmetros. O GSLB geralmente define um TTL baixo para que o host / navegador do cliente armazene em cache a resposta pelo menor tempo possível. Existem diferentes maneiras de lidar com a persistência, mas isso vai além do escopo desse cenário.
Digamos que o servidor da Web leste (10.20.20.1) seja desativado. O GSLB geralmente implementa verificações de integridade para verificar a integridade dos nós de back-end. O GSLB avisa que o leste está inoperante e todos os registros DNS subsequentes para www.connect.com serão resolvidos para 10.10.10.1.
Se você tiver uma solução de balanceamento de carga de servidor local (SLB), poderá configurá-la de forma que www.connect.com seja um VIP / VS (por exemplo, 192.168.1.1/24) com dois nós de back-end (10.10.10.1/24 e 10.20.20.1/24). Tecnicamente, os nós podem estar em diferentes segmentos de rede, desde que o SLB local possa alcançar o outro servidor. A solução SLB pode ser inteligente o suficiente para redirecionar os usuários para um servidor disponível se um nó de back-end ficar inativo. Se você estiver usando o F5 LTM, poderá criar facilmente uma iRule para esse evento. O Citrix NetScaler e outras soluções SLB também devem ter recursos semelhantes.
RR DNS não funciona neste caso. O DNS do RR não possui inteligência incorporada. A única maneira de realizar o caso de uso com o DNS é usar algum tipo de DNS "inteligente" por meio de uma solução GSLB (ou similar).
A CDN geralmente implementa soluções GSLB / SLB para garantir HA para seus clientes.
fonte
Você deseja examinar os balanceadores de carga globais, como o F5 e o Cisco make. Basicamente, eles fazem alguns truques com o DNS se o parceiro estiver inativo e se o parceiro estiver ativo, eles alimentam os dados para o outro lado através do balanceador de carga.
fonte
Outra solução barata, rápida e confiável para avaliar poderia ser usar o failover do Amazon Route 53 http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating.html . Esse recurso foi lançado em 11 de fevereiro de 2013 e fornece alta disponibilidade e / ou balanceamento de carga entre sites primário e secundário.
Asim
fonte
Diga-me se você estiver usando algum tipo de proxy reverso em seu ambiente, se for possível redirecioná-lo para o servidor de backup.
caso contrário, F5 é uma boa ideia para usar.
também, se você tiver registrado o domínio com um registrador de domínio de terceiros, poderá obter a configuração do servidor DNS para redirecionar para o novo servidor ou servidor de backup.
fonte
Você pode fazer isso sem usar um dispositivo de rede usando os dois métodos a seguir, pelo menos, mas eles exigirão controle de alterações:
Proxy reverso, você precisará remover o servidor que você desconectará dos candidatos do proxy
DNS, você precisará planejar com antecedência, alterar o DNS e aguardar a passagem do TTL
Você também pode fazer o balanceamento automático de carga e o failover ativo-ativo, especialmente para um servidor Web que atenda páginas estáticas usando protocolos de roteamento. Caixa EGP e IGRP. Deve haver material de ajuda on-line (principalmente relacionado à Cisco) que detalha como fazer isso com dois ou mais hosts por meio de um roteador.
fonte