ti-enxame.com

Como posso alterar automaticamente o DNS um registro para apontar meu site para um servidor secundário em caso de falha?

Minha hospedagem está me cobrando uma taxa de US $ 50/mês para colocar meus servidores no mesmo VLAN para que eu crie um cluster usando o recurso de balanceamento de carga de rede.

Eu realmente não estou precisando dividir a carga entre os servidores, eu estava procurando uma maneira fácil de criar um cenário de failover para proteger contra falhas de servidores. No entanto, considero esta taxa é pouco caro.

Existe alguma maneira que eu possa criar um cluster sem usar o NLB? Talvez algo que monitora meu servidor principal e mude o DNS para o domínio quando desce?

6
holiveira

DNS é uma má escolha para simular failover. As razões são

  • DNS registra um válido por um período de tempo, para atingir o failover em tempo real você precisaria abaixar o TTL em uma entrada DNS para ser tão baixa que cada solicitação para o seu site resultaria em um DNS Pesquisa. O que vai diminuir seriamente a experiência para seus visitantes
  • Existem algumas suspeitas que hoje a DNS atingem muito baixo TTL Os valores não são respeitados pelo ISP e pelos mais antigos servidores de nome quebrados.
  • Usar o Round Robin DNS não fornecerá failover porque, em média, 50% das solicitações irão para cada IP listado. Isso realmente funcionaria se os protocolos de nível superior de HTTP tivessem repetindo.

Minhas sugestões seriam

  • Se o seu segundo servidor estiver na mesma empresa de hospedagem, olhe para alugar um balanceador de carga real, seja para o seu próprio uso, ou a maioria das empresas de hospedagem pode alugar parte de sua infraestrutura de balanceamento de carga compartilhada
  • Use algo como servidores Spread ou Linux HA para atribuir o serviço a um IP virtual flutuante que é passado entre seus servidores físicos. Os servidores no cluster monitoram e decidem quem é o atual proprietário do IP virtual.

Eu recomendo ler ( Arquiteturas de Internet escaláveis ​​ por Theo Schlossnagle Como ele cobre isso em grande detalhe

9
Dave Cheney

Você poderia configurar uma caixa de balanceamento de carga separada com LDirEtord, que monitora seus servidores da Web e os balanços de carga entre quaisquer que sejam atualmente vividos (e por extensão, mantém o site quando um servidor cair) . Usamos esta solução para nos permitir novamente inicializar qualquer um dos nossos dois servidores sem afetar o tempo de atividade do site.

Na verdade, se seus webserers forem caixas Linux, você pode executar ldirectod no próprio servidor do site, e use Heartbeat para manter ldirectod em execução no live caixa.

Esta solução permite que você compartilhe um endereço IP comum (ou mais de um) entre duas ou mais caixas e evite completamente o problema do DNS.

2
Brent

Uma maneira seria ter seu site em dois servidores diferentes, então ter um monitor de site em um terceiro local que monitora a conexão com o servidor principal (onde seu DNS geralmente aponta). Se detectar que o site está inativo, faça o monitor execute um script ou pressione o URL de atualização de um provedor DNS dinâmico (como DTDNS [que eu opero] ou dyndns.com ) Com o endereço IP do seu servidor de backup especificado para o seu domínio/hostname. Isso atualizará o registro DNS e o tráfego direto para o seu servidor da Web de backup. Quando o site principal estiver de volta on-line, o monitoramento pode executar outro script ou URL que colocará a volta "real".

Uma chave aqui é ter DNS hospedado em um provedor que tenha uma API em seu sistema para que seu domínio possa ser atualizado rapidamente e que mantém o TTL baixo o suficiente para que os visitantes sejam redirecionados relativamente rapidamente.

Outro é que o site deve ser monitorado de um local externo, objetivo. Você não pode executar o monitoramento no mesmo servidor da Web que o site está ligado. Se o servidor inteiro cair, o método de monitoramento/atualização irá para baixo com ele.

1
Justin Scott

SimpleFailOver faz mais ou menos o que você quer. Lembre-se de DNS fica em cache, então não é uma solução perfeita.

Com relação a vários registros, eu vi discussão recentemente em relação ao Vista e Win Server 2008 Implementando RFC3484 , o que significa que você não pode confiar no round-robin e provavelmente obterá um carregamento de servidor desnecessário desses clientes .

1
John McC

DNS facilitado permite que você configure seu DNS para que, se o servidor estiver inativo, ele aponta para outro lugar. No nosso caso, temos uma página estática que diz o site está inativo, tente novamente mais tarde.

Se você usar o DNS dessa maneira, precisará configurar um relativamente curto TTL para contornar o problema de cacheamento.

1
Brent