Multi-Site-Hochverfügbarkeit

15

Wir haben eine SaaS-Anwendung, die hoch verfügbar sein muss. Wir haben bereits einen teuren, gut gewarteten Hyper-V-Failover-Cluster, aber heute hatte das Rechenzentrum, in dem wir diesen Cluster hosten, einen fünfstündigen Stromausfall, der uns völlig außer Betrieb setzte. Jetzt fragen wir uns, ob es besser ist, Server in zwei separaten Rechenzentren zu verwenden. Angenommen, die gesamte Back-End-Dateireplikation und Datenreplikation zwischen diesen beiden Standorten funktioniert, fragen wir uns, wie wir mit dem Front-End-Routing umgehen sollen. Kein Wunder, dass wir uns dem Problem immer stellen müssen ein einziger Punkt des Scheiterns.

Die Frage ist also ... wie können wir den Lastenausgleich zwischen zwei Hosting-Standorten so einrichten, dass der Lastenausgleich nicht die einzige Fehlerquelle ist? Gibt es eine Möglichkeit, zwei separate Load Balancer zu verwenden, einen an jedem Standort? Sollten wir Round-Robin-DNS in Betracht ziehen?

Mike
quelle

Antworten:

14

Um dies richtig zu machen, benötigen Sie:

  • Zwei separate Instanzen in zwei Rechenzentren (wie Sie bereits festgestellt haben)
  • Synchronisation zwischen den beiden Rechenzentren (wie Sie bereits festgestellt haben)
  • Eine Möglichkeit, Clients im Fehlerfall von einem zum anderen umzuleiten

Hierfür gibt es zwei Möglichkeiten. Eine einfache, eine ... nicht.

DNS

Round-Robin-DNS ist nicht genau das, was Sie möchten, da Sie wahrscheinlich möchten, dass alle Anforderungen an den primären Domänencontroller gesendet werden, und der zweite Domänencontroller nur während der Ausfallzeit des ersten Domänencontrollers verwendet wird.

Sie können jedoch eine sehr niedrige TTL für Ihr DNS festlegen (z. B. 30 Sekunden oder 5 Minuten). Wenn Ihr DC ausfällt, aktualisieren Sie einfach Ihr DNS und innerhalb von etwa 5 Minuten alle Ihre Kunden werden auf Ihr anderes DC zeigen.

Dies bedeutet, dass Sie dies bei der Einrichtung des Rechenzentrums anpassen müssen, da Ihre beiden DCs unterschiedliche IP-Layouts haben.

BGP

Wenn Sie diese Frage stellen, liegt dies im Grunde außerhalb Ihrer Reichweite. Kurz gesagt, Ihre IP-Adressen bleiben gleich, werden jedoch von einem Rechenzentrum in das andere "verschoben". Dies beinhaltet teure Router, teure IP-Bereiche und teure Abonnements für AS-Nummern und IP-Bereiche bei Ihrer lokalen Registrierung.

Ihre BGP-Router beenden die Werbung für Ihr primäres Datencenter und beginnen mit der Werbung für Ihr sekundäres Datencenter. Das Internet leitet dann eine Route durch das Offline-Rechenzentrum und sendet Datenverkehr an Ihren neuen DC.


Wenn Sie mit ESXi und vSphere virtualisiert sind, hat VMWare ein ziemlich gutes Produkt, das wir einmal als VMWare Site Recovery Manager getestet haben und das im Grunde alles für Sie erledigt. Es hält Ihre VM-Konfigurationen synchron und schaltet sie am 2. Standort ein, wenn der 1. Standort offline geht. Es ist aber viel Geld.

Mark Henderson
quelle
Auch mit SRM müssen Sie das Replikationsmaterial und eine Art IP-Failover aussortieren.
EEAA
Stimmt, obwohl esxi5 ein neues Nicht-San-Replikationsprodukt hat. Ich habe mich aber nicht viel damit beschäftigt.
Mark Henderson
Oh, das stimmt. Ich erinnere mich, etwas darüber gehört zu haben.
EEAA
1

Sie müssen die Load-Balancer ausgleichen.

Sie können dies mit DNS Round-Robin tun, aber dieser Ansatz hat viele Probleme. Sie können keine Clients steuern, die Einträge länger als gewünscht zwischenspeichern, und Sie können nicht erzwingen, dass der Datenverkehr an einen bestimmten Speicherort geleitet wird.

Sie können dies auch mit Global Server Load Balancing (GSLB) tun. Dies ist eine erweiterte Möglichkeit, DNS zu nutzen, um Ihnen Einblicke in mehrere Rechenzentren aus dem Internet zu ermöglichen. Kurz gesagt, Sie richten einen Mechanismus ein, mit dem Sie den Datenverkehr in Segmente aufteilen und mithilfe von DNS ein Segment auswählen können. Wir verwenden einen Hash des DNS-Resolvers, der für die Suche nach dem Client konfiguriert ist. Andere verwenden die Geografie, um zum "nächstgelegenen" Rechenzentrum zu gelangen. Sie müssen einen Mechanismus hinzufügen, um eine IP-Adresse schnell aus der GSLB zu entfernen, falls ein einzelner Fehlerpunkt für dieses Rechenzentrum oder diesen Cluster ausfällt.

http://www.eukhost.com/web-hosting/kb/global-server-load-balancing/

Schließlich lösen einige wirklich fortgeschrittene Leute dieses Problem mit Anycast DNS. Damit wird erneut versucht, den Ansatz des "nächsten" Rechenzentrums zu nutzen. Anycasting Ihrer Dienstleistung bedeutet, dass Sie jegliche "Zustandsfülle" beseitigen müssen. Dies kann sich als schwierig erweisen.

dmourati
quelle
Es scheint, dass dieser Ansatz immer noch einen einzigen Fehlerpunkt hat, den "Master-Server", der in dem von Ihnen angegebenen Link beschrieben wird.
Mike