Como configurar um servidor de backup sem um balanceador de carga?

1

Eu tenho um servidor CENTOS rodando um site PHP, Apache e MySQL. Eu quero criar um segundo servidor que pode fazer o seguinte:

  1. Mantenha os bancos de dados entre o servidor 1 e o servidor 2 sincronizados (de preferência em tempo real à medida que as transações acontecem).
  2. Pode ser definido em um nível de domínio (ou de alguma outra forma) para alternar para o segundo servidor, se algo quebrar no servidor 1?
  3. Evitar o uso de um terceiro servidor de balanceamento de carga?

O motivo pelo qual não quero o terceiro balanceador de carga é porque não quero estar em uma situação em que o próprio balanceador de carga fique inativo. Eu quero confiar apenas nos servidores de solução que funcionam realmente.

Isso é possível e qual é a maneira mais fácil?

Minha maior preocupação é que isso não pode ser feito em um nível de DNS devido à propagação, então eu acho que pode haver algum tipo de intermediário que determine onde o tráfego vai?

    
por CodeCracker 16.04.2013 / 08:50

1 resposta

1

Para o MySQL, use a replicação para manter o servidor de backup em sincronia com o primário. Consulte a documentação e lembre-se de que a replicação é assíncrona e pode ficar atrasada até mesmo moderada carga.

PHP e Apache são serviços sem estado que não precisam ser sincronizados, além de suas configurações.

Se você não quiser um balanceador de carga, pode usar pulsação para gerenciar um IP virtual entre os dois servidores. Se o servidor principal ficar inativo, o secundário atribuirá o IP e continuará a atender o tráfego. Note que isto apenas monitorará os heartbeats entre os dois serviços de heartbeat, não o estado de execução do mysql / apache / etc.

o que hospedaria a parte que decide qual servidor será usado?

Os clientes do servidor Web se conectariam ao IP virtual ou a um nome de host que resolvesse esse IP, para que o tráfego atingisse apenas o servidor que possui esse vip e o outro servidor seria apenas de espera.

Configure o PHP nos dois servidores para conectar ao MySQL no host local, assim, se o primeiro servidor morrer, o segundo assumirá esse IP e continuará. Tenha em mente, porém, que a replicação regular do MySQL unidirecional significa que, assim que você começar a escrever para o escravo, o mestre original estará sempre desatualizado e precisará ser reconstruído. Você pode usar a replicação master-master ou o Percona XtraDB Cluster, mas esses são mais complicados de serem configurados.

    
por 16.04.2013 / 09:03