Servidor Linux com carga balanceada na Internet?

6

Estou investigando a configuração de uma solução de servidor de carga balanceada que consiste em três caixas CentOS 5.4. Duas dessas caixas residirão em uma instalação, enquanto uma terceira residirá em uma instalação diferente.

Atualmente, estou trabalhando para configurar o heartbeat, ldirectord, ipvsadm para balancear a carga das máquinas, mas não tenho certeza se isso funcionará com

Não estou muito familiarizado com os detalhes por trás de como tudo isso funciona, mas o balanceamento de carga funcionará corretamente quando esses servidores não estiverem todos na mesma LAN? Não tenho certeza se o heartbeat está usando o SNMP para enviar sinais ou não, o que funcionaria apenas em uma LAN. Alguém já tentou isso ou encontrou uma solução diferente?

    
por LinuxGnut 16.06.2010 / 16:02

3 respostas

8

Este é um tópico grande que é complicado rapidamente. O teorema CAP é um bom ponto de partida, pois identifica as escolhas de nível superior que devem ser feitas.

Quando você está lidando com um aplicativo da Web de gravação pesada, fica mais difícil distribuir a carga pela Internet, mantendo a integridade dos dados. Os aplicativos de leitura centralizada (pesquisa!) São mais fáceis de distribuir, já que você não precisa se preocupar com a logística de gravação dos dados.

O

ipvs permite que o Linux se torne essencialmente um switch da camada 4. Eu tive o maior sucesso em usá-lo na camada 2 (ARP / ethernet-- camada de link) e essa seria minha primeira escolha, mas pode ser viável usar algo como LVS-Tun para servidores geograficamente separados que não têm uma conexão na camada de transmissão. Note que ipvsadm é a ferramenta userland para ipvs e ldirectord é um daemon para gerenciar recursos de ipvs.

O batimento cardíaco foi efetivamente sucedido por marca-passo . Para monitorar o outro servidor, é essencial ter vários links. O risco de não ter uma conexão física serial ou redundante entre os servidores é substancialmente maior. Mesmo várias conexões da Internet fisicamente distintas que os monitores de pulsação entre os dois sites estão fadadas a cair. É aí que entra em jogo o risco dos dados, pois o failover automático arrisca a corrupção de dados pelo cérebro dividido. Não existe um método ideal para mitigar esse risco.

Você pode injetar mais lógica no processo de failover. Por exemplo:

Se o caminho1 estiver inoperante, o caminho2 estiver inoperante, esse processo não está sendo executado e não posso fazer isso-- então, o failover.

Isso reduz o risco, mas mesmo assim não é necessariamente capaz de conectar fisicamente os servidores a uma curta distância.

Com o conteúdo estático, é fácil empregar o uso de uma Rede de distribuição de conteúdo .

Balanceamento de carga e failover simples podem ser feitos usando Round Robin DNS , que é mais falível.

O Border Gateway Protocol é um protocolo de rede que permite a alta disponibilidade na camada de rede.

Em última análise, com dinheiro suficiente (tempo / recursos), um SLA adequado pode ser desenvolvido para permitir um alto grau de disponibilidade. Seu orçamento será sua última restrição. Defina seus requisitos e veja o que você pode realizar dentro do seu orçamento, pois haverá compromissos.

Descobri com frequência que faz mais sentido, pelo menos no caso de escrever aplicativos pesados, habilitar alta disponibilidade e failover automático dentro da mesma premissa física. Como parte do plano de recuperação de desastre e do SLA para ter um processo de failover manual em um site separado fisicamente, o que permite que a integridade dos dados seja mantida e ainda assim mantenha um nível de serviço de qualidade.

    
por 16.06.2010 / 16:39
3

Ter servidores diferentes em locais diferentes não deve ser um problema, até que eles possam alcançar um ao outro.
O problema seria a largura de banda entre eles e o que você faz fluir sobre ele. Heartbeat não usa snmp e pode ser multicast, unicast ou broadcast. É um protocolo específico (de qualquer forma, snmp funciona entre lans sicne, é um protocolo udp).
Que tipo de serviço está tentando balancear a carga?

    
por 16.06.2010 / 16:23
0

Outra ideia seria alguma implementação do DRBD com alta disponibilidade. Verifique este site link

    
por 02.11.2010 / 00:01