Ich habe nach Hochverfügbarkeitslösungen (HA) für MySQL zwischen Rechenzentren gesucht.
Für Server, die sich in derselben physischen Umgebung befinden, habe ich Dual Master mit Heartbeat (Floating VIP) unter Verwendung eines aktiven passiven Ansatzes bevorzugt. Der Heartbeat erfolgt sowohl über eine serielle Verbindung als auch über eine Ethernet-Verbindung.
Letztendlich ist es mein Ziel, das gleiche Maß an Verfügbarkeit zwischen Rechenzentren aufrechtzuerhalten. Ich möchte ohne manuelles Eingreifen ein dynamisches Failover zwischen beiden Rechenzentren durchführen und trotzdem die Datenintegrität aufrechterhalten.
Es würde BGP an der Spitze geben. Web-Cluster an beiden Standorten, die möglicherweise zwischen beiden Seiten zu den Datenbanken weitergeleitet werden. Wenn die Internetverbindung an Standort 1 unterbrochen wird, werden Clients über Standort 2 zum Webcluster und dann zur Datenbank an Standort 1 weitergeleitet, wenn die Verbindung zwischen beiden Standorten noch besteht.
In diesem Szenario besteht aufgrund der fehlenden physischen Verbindung (serielle Verbindung) eine größere Wahrscheinlichkeit, dass das Gehirn gespalten wird. Wenn das WAN zwischen beiden Standorten ausfällt, landet der VIP an beiden Standorten, an denen eine Vielzahl von unangenehmen Szenarien zu einer Desynchronisierung führen kann.
Ein weiteres potenzielles Problem ist die Schwierigkeit, diese Infrastruktur in Zukunft auf ein drittes Rechenzentrum zu skalieren.
Die Netzwerkschicht ist kein Fokus. Die Architektur ist zu diesem Zeitpunkt flexibel. Wieder ist mein Fokus eine Lösung für die Aufrechterhaltung der Datenintegrität sowie für das automatische Failover mit den MySQL-Datenbanken. Ich würde den Rest wahrscheinlich darum herum entwerfen.
Können Sie eine bewährte Lösung für MySQL HA zwischen zwei physisch unterschiedlichen Standorten empfehlen?
Vielen Dank, dass Sie sich die Zeit genommen haben, dies zu lesen. Ich freue mich auf Ihre Empfehlungen.