Failover automático do MongoDB entre dois datacenters

1

Se eu implantar uma réplica do MongoDb em apenas dois datacenters, se um datacenter inteiro falhar, pode haver failover automático para o outro datacenter?

Considere a situação em que um datacenter tem um primário, um secundário e um árbitro, e o segundo datacenter possui dois membros secundários. Essencialmente, um conjunto de réplicas de 5 membros.

Se o centro de dados 2 ficar inativo, ainda haverá três membros na réplica configurada no datacenter 1. Isso é ótimo.

Ao contrário, se o datacenter 2 continuar ativo e o datacenter 1 ficar inativo, restarão apenas dois membros do conjunto de réplicas de 5 membros. Isso não é suficiente para que o próprio voto secundário se torne primário.

Isso está correto? Se não, o que estou fazendo errado?

Se isso não for possível, avise-nos para que eu possa explorar outras opções.

Adicionar um terceiro datacenter para abrigar o árbitro não é uma opção.

    
por Andy Cohen 07.10.2015 / 01:42

2 respostas

1

A resposta para sua pergunta é que não é possível fazer apenas dois locais.

O motivo de não ser possível pode ser explicado da seguinte forma: Se ambos os locais estiverem totalmente funcionais, mas a conexão de rede entre os dois estiver com defeito, apenas um deles poderá permanecer funcional. Não é aceitável que os dois locais escolham simultaneamente uma primária neste caso.

Não há como um local informar a diferença entre o outro local estar completamente inativo e o outro local estar ativo, mas a conexão de rede entre os dois estar inativa.

Portanto, se cada local independentemente puder eleger um primário quando o outro local estiver inativo, a consequência seria que, no caso de uma interrupção de rede, é possível que dois primários existam simultaneamente. Ter duas primárias é um cenário inaceitável, e é por isso que apenas um dos dois locais seria capaz de eleger um primário.

Ter três locais será suficiente se você fizer suposições sobre o comportamento das falhas. Qualquer solução que funcione sem fazer suposições sobre falhas exigirá pelo menos quatro locais para tolerar a interrupção de uma única falha. localização. Este requisito segue um dos principais teoremas na área de acordos bizantinos.

    
por 03.01.2016 / 19:27
0

Uma opção possível é ter um primário e um secundário no primeiro datacenter, dois secundários no segundo datacenter e você pode ter o árbitro em um terceiro datacenter.

    
por 03.01.2016 / 18:30