O failover com apenas dois servidores é possível?

1

Estou tentando configurar uma solução básica de alta disponibilidade com o HAproxy e o mysql. Atualmente, é assim

No caso de host1 falhar, o host2 deve obter seu IP e tráfego (usando o recurso do meu provedor de VPS chamado IP failover. Não acho que seja possível fazer o CARP funcionar lá).

Eu quero executar o software de monitoramento nos nós. Isso pode funcionar? Eu tenho medo que no caso do problema com o link entre nós (situação de cérebro dividido), cada instância do software de monitoramento assumiria que o outro nó estava morto e tentaria pegar o IP flutuante para si mesmo.

Isso não é terrível, mas parece piorar. Sem nenhum link entre os servidores e os dois hosts pensando, que eles são os únicos que estão vivos, o banco de dados se tornará inconsistente.

Existe alguma maneira de sair dessa situação que não envolva o terceiro servidor? Devo realmente me importar com uma situação de cérebro dividido se:

  • Dois servidores estão localizados em dois datacenters do mesmo provedor (apenas 3 saltos um do outro).
  • Parece (traceroute) que as máquinas usadas para rotear o tráfego entre host1 e host2 são as mesmas usadas para rotear o tráfego da Internet. Então talvez uma situação de cérebro dividido com gravações reais (já que a internet é a única fonte de escrita) é impossível?
por Barnaba 10.01.2013 / 03:52

1 resposta

0

Este é um cenário razoável, e um que STONITH (Disparar o Outro Nó na Cabeça) foi projetado especificamente para ajudar.

Se você vai fazer isso, e você quer ter certeza de que o cérebro partido nunca pode surgir, você precisa usar algum controle fora de banda, geralmente uma barra de energia controlável remotamente, para dar a cada um deles. Node a energia para garantir que o outro nó realmente esteja inativo (puxando o plugue) antes de assumir o serviço.

    
por 10.01.2013 / 08:07