Qual é a maneira mais eficaz de configurar um servidor web linux para failover manual?

7

Eu atualmente administro um pequeno servidor web rodando o Ubuntu Linux com o Apache, MySQL e SSH. Estou fazendo o backup usando o rsync para outro servidor, mas estou fazendo o backup em um diretório / backup.

Eu gostaria de configurá-lo onde, se o primeiro servidor cair, eu posso mudar o ip do segundo servidor e ter todos os usuários, arquivos, bancos de dados, etc. prontos para serem usados.

Alguém tem alguma sugestão sobre a maneira mais fácil / melhor de fazer isso?

Considerações

  • Usuários
  • Bancos de dados
  • Configuração do Apache
  • Arquivos
  • Certificando-se de que o mesmo software esteja instalado nas duas caixas. (provavelmente precisa fazer isso na frente)
por ScArcher2 16.09.2009 / 15:33

4 respostas

1

Para serviços baseados em arquivos (um servidor web, etc.) o rsync pode efetivamente manter o segundo servidor atualizado - (usuários, configurações, etc) - quando se trata de bancos de dados, as coisas ficam um pouco mais complexas (eu usei o MySQL e um servidor escravo para isso e foi muito eficaz, eu também usei o PostgreSQL em algumas configurações de HA / standby, mas foi muito mais desajeitado)

Isso, combinado com um pouco de roubo de IP (um script rápido para atribuir o IP da máquina com falha à interface da máquina de backup) pode criar uma configuração relativamente direta, mas permitir uma recuperação rápida.

Apenas uma coisa a considerar - tenha cuidado com o failback. Movendo serviços para uma máquina de backup é uma coisa, movendo-os de volta uma vez que você tenha corrigido a falha pode ficar peludo, preste muita atenção aos bancos de dados.

LinuxHA é uma abordagem (um pouco pesada) para isso se você decidir torná-lo um pouco mais automatizado

link

    
por 01.05.2009 / 10:01
1

Você pode usar rsync ou drbd para manter seu servidor de backup em sincronia ou montar seus dados via nfs a partir de um terceiro servidor. Se você quiser mantê-lo simples, eu faria backup nos locais do diretório same no servidor de backup como o servidor de origem.

heartbeat2 é uma boa solução para gerenciar os endereços IP e fornece ferramentas para failover automático ou manual - e leva em consideração o fluxo de cache do arp e outras coisas que eu não teria pensado.

    
por 01.05.2009 / 17:16
0

A virtualização pode ajudar aqui. Você pode ter dois servidores em execução como servidores host, ambos com um único servidor virtual pronto para uso. O servidor ativo tem o servidor virtual em execução, enquanto o servidor de backup tem seu servidor virtual "desligado", mas ainda pode acessar o sistema de arquivos desse servidor.

Em seguida, você pode executar rsyncs regulares do servidor virtual ao vivo para o servidor virtual de backup. Se o servidor ativo ficar inativo, você só precisa iniciar o servidor virtual de backup.

Os detalhes dependem de qual software de virtualização você usa (já fiz isso com o linux-vserver antes), mas alguns pontos importantes são:

  • você precisará excluir algumas configurações - o endereço IP em particular.
  • teste sua configuração quando as coisas estão funcionando - você precisa saber que funciona
  • tem DNS configurado para ambos, por exemplo, www1.mysite.com e www2.mysite.com com www.mysite.com sendo um round robin para www1 e www2
  • você pode até procurar algum tipo de serviço de heartbeat para iniciar automaticamente o servidor de backup, mas isso pode ser excessivamente complexo, a menos que o tempo de inatividade seja realmente alto.
por 30.04.2009 / 16:16
0

Acredito que o heartbeat fará isso para você, mas se você não usá-lo, recomendo configurar manualmente um IP virtual para o servidor da Web.

Cada servidor web terá seu próprio IP real e também um IP virtual. O IP virtual é atribuído apenas a uma máquina quando é o servidor da web ativo.

Esta configuração significa que ssh, rsync e todas as outras ferramentas podem continuar sendo executadas nos IPs reais sem ficarem confusos com um endereço IP em mudança.

    
por 16.09.2009 / 16:33