Automatisches Failover von MongoDB zwischen zwei Rechenzentren

Automatisches Failover von MongoDB zwischen zwei Rechenzentren

Wenn ich einen MongoDb-Replikatsatz nur auf zwei Rechenzentren verteilt bereitstelle und ein ganzes Rechenzentrum ausfällt, kann dann ein automatisches Failover auf das andere Rechenzentrum erfolgen?

Stellen Sie sich die Situation vor, in der ein Rechenzentrum über ein primäres, ein sekundäres und ein Schiedsrichter-Rechenzentrum verfügt und das zweite Rechenzentrum über zwei sekundäre Mitglieder. Im Wesentlichen handelt es sich um einen Replikationssatz mit 5 Mitgliedern.

Wenn Rechenzentrum 2 ausfällt, sind im Replikationssatz von Rechenzentrum 1 immer noch drei Mitglieder vorhanden. Das ist großartig.

Umgekehrt, wenn Datencenter 2 aktiv bleibt und Datencenter 1 ausfällt, bleiben von den 5 Replikaten nur 2 übrig. Das reicht nicht aus, damit eines der beiden sekundären Elemente selbst für das primäre Element stimmt.

Ist das richtig? Wenn nicht, was mache ich falsch?

Wenn dies nicht möglich ist, lassen Sie es mich bitte wissen, damit ich andere Optionen prüfen kann.

Das Hinzufügen eines dritten Rechenzentrums zur Unterbringung des Schiedsrichters ist keine Option.

Antwort1

Die Antwort auf Ihre Frage ist, dass dies mit nur zwei Standorten nicht möglich ist.

Der Grund dafür, dass dies nicht möglich ist, lässt sich wie folgt erklären: Wenn beide Standorte voll funktionsfähig sind, die Netzwerkverbindung zwischen beiden jedoch gestört ist, kann nur einer von beiden funktionsfähig bleiben. In diesem Fall ist es nicht zulässig, dass beide Standorte gleichzeitig einen Primärstandort wählen.

Für einen Standort besteht keine Möglichkeit, zu erkennen, ob der andere Standort vollständig ausgefallen ist oder ob der andere Standort zwar aktiv ist, die Netzwerkverbindung zwischen den beiden jedoch ausgefallen ist.

Wenn also jeder Standort unabhängig einen Primärserver wählen könnte, wenn der andere Standort ausgefallen ist, hätte dies zur Folge, dass im Falle eines Netzwerkausfalls zwei Primärserver gleichzeitig existieren könnten. Zwei Primärserver sind ein inakzeptables Szenario, und deshalb könnte nur einer der beiden Standorte einen Primärserver wählen.

Drei Standorte reichen auswenn Sie Annahmen über das Verhalten von Fehlern treffen.Jede Lösung, die ohne Annahmen über Ausfälle funktioniert, erfordert mindestens vier Standorte, um den Ausfall eines einzelnen Standorts zu tolerieren. Diese Anforderung ergibt sich aus einem der wichtigsten Theoreme im Bereich byzantinischer Vereinbarungen.

Antwort2

Eine mögliche Option besteht darin, einen primären und einen sekundären Server im ersten Rechenzentrum, zwei sekundäre Server im zweiten Rechenzentrum und den Schiedsrichter in einem dritten Rechenzentrum zu haben.

verwandte Informationen