Eliminar ponto único de falha para servidores web?

2

Eu sei no DNS, que cada um dos servidores DNS será tentado para ver se eles responderão

Eu sei no e-mail que, no caso de uma falha, ele irá para o próximo na lista ou ele manterá o e-mail por um período de tempo

Tanto quanto sei, em servidores web, o navegador irá obter um dos endereços IP do servidor web e experimentá-lo e se falhar, ele desistirá. Isso está correto? Em caso afirmativo, a única maneira de direcionar o tráfego para longe de um endereço IP com falha seria com os servidores DNS e até mesmo isso não seria atualizado imediatamente.

    
por George Bailey 09.01.2011 / 20:46

5 respostas

5

Se você não quiser nenhum ponto único de falha, você precisa fazer um balanceamento de carga global do servidor - obviamente você não pode confiar em um único datacenter, e mesmo com uma configuração BGP redundante, suas tabelas BGP constituem um único ponto de falha que pode ser confusa se alguém enviar uma configuração incorreta.

O que você faz é configurar o DNS para anunciar vários endereços IP para o registro A do seu nome de domínio, apontando para cópias de seu site que estão em datacenters diferentes (preferencialmente em cidades diferentes) e o navegador escolherá um aleatório, mas atente para o Windows Vista, que implementa os bits estúpidos do RFC3484 e, portanto, não é aleatório), e irá armazenar os outros. Dependendo do navegador, ele geralmente usará um dos outros endereços se o que estiver usando ficar indisponível. Seus servidores DNS precisam monitorar continuamente todos os sites e interromper a publicidade de qualquer um deles. Eles também precisam de TTLs muito curtos. Existem soluções de hardware para isso - por exemplo Dispositivos BigIP da F5.

Você também precisará de maneiras de replicar seu banco de dados, seus arquivos e os estados de sessão de seus usuários entre os datacentres em tempo real.

Você obviamente também precisará obter diagramas de rede e listas de fornecedores de todos os seus ISPs para garantir que todas as suas rotas de rede sejam totalmente geograficamente diversas e que os ISPs não dependam do mesmo fornecedor upstream. Provavelmente vale a pena verificar se eles também não estão na mesma rede elétrica.

Consulte aqui para obter mais informações sobre o balanceamento de carga do servidor global (embora seja um pouco antigo e desatualizado): link

Seu failover não será tão rápido quanto o failover do BGP, mas você não poderá reduzir totalmente o seu site com uma única configuração BGP ruim. Você pode bagunçar a configuração de um único servidor DNS ou datacenter, mas isso não o derrubará completamente (a menos que você envie suas atualizações de DNS automaticamente para todos os seus servidores DNS).

    
por 09.01.2011 / 22:02
4

Pelo contrário, isso é exatamente para o que há balanceadores de carga. Usamos um balanceador de carga de hardware no trabalho (de redes F5). Temos um endereço IP e o balanceador de carga encaminha as conexões para qualquer um dos vários servidores da web por trás dele.

As StackOverflow Networks (seu humilde host) usam um balanceador de carga de software e eles blogaram sobre isso .

Eles são muito legais, já que compartilham estados de conexão entre eles. Então, se o principal morre, o outro pode pegar exatamente onde o outro parou e quaisquer conexões existentes permanecem ativas.

O estado da sessão do aplicativo é algo que precisa ser tratado pelo aplicativo da Web, no entanto. Quando uma pessoa se conecta ao serviço, ela permanece conectada ao mesmo servidor real (ou seja, o estado da sessão é específico do servidor) ou se conecta a qualquer número de servidores (isto é, o estado da sessão está disponível para todos os servidores, por meio de um banco de dados ou ). Se o estado não for preservado entre os nós, quando um servidor for devolvido, os usuários conectados a esse servidor terão que restabelecer o estado.

    
por 09.01.2011 / 20:51
3

Em grandes sites, você pode retornar vários endereços IP para cada nome de host e fazer com que eles apontem para os balanceadores de carga que fazem o encaminhamento de MAC para um cluster de servidores da web. Normalmente, os balanceadores de carga também têm uma noção de controle / failover.

    
por 09.01.2011 / 20:49
0

Existe algo chamado Network Load Balancing e VIP = Virtual IP . Você cria um VIP para três servidores da Web e o tráfego vai para o servidor em funcionamento. Isso obviamente depende de muitos fatores, mas no Windows e no IIS é muito fácil habilitar o NLB em vários servidores IIS, portanto, se um deles for desativado, os outros estarão veiculando conteúdo.

    
por 09.01.2011 / 20:49
0

Sim, há apenas uma maneira de fazer o failover instantâneo adequado aqui e que está na camada de rede (não nas solicitações DNS de ala da camada de aplicativo).

Você gostaria de multihome daquele IP (na verdade, você precisa anunciar uma sub-rede inteira que não seja menor do que a / 24 com o BGP

O BGP essencialmente anuncia como acessar sua rede.

    
por 09.01.2011 / 21:42