MySQL mit mehr als 2 Mastern? Continuent Tungsten vs. Galera

Nachdem ich mittlerweile ein paar mehr VPS habe als nur einen, der alles erledigt,
stellt mich das vor ein paar tolle Probleme: 2 verschiedene VPS dienen als Mailserver, 2 als DNS-Server, einer macht alles und ein anderer wiederrum ist ein weiterer Webserver.

All diese Dienste in meinem Setup brauchen eine MySQL-Datenbank, damit alles auf einem Stand ist: WordPress für seine Artikel, PowerDNS für seine Zonen und Postfix/Dovecot für die Mailaccounts. Und, zugegeben, es ist relativ bequem, alles in einer Datenbank ändern zu können und alle Server bekommen es direkt mit.

Als es noch 2 virtuelle Server waren, war das Leben noch einfach: Die „handelsübliche“ Master-Master-Replikation von MariaDB, das war es. Nur irgendwann kam ich schließlich auf die Idee, man könnte doch noch einen weiteren Webserver dazu stellen. Hmmmmmm.

Ein WordPress ohne Schreibrechte? Irgendwie Doof. Also bin ich bei mindestens 3 Servern, die gerne Master wären.

Ein wenig bisschen Zeit auf Google brachte die (scheinbar) perfekte Lösung zu Tage: Ein Galera-Cluster mit MariaDB. Schön einfach auszusetzen, die Kommunikation untereinander werkelt über mein PeerVPN-Wartungsnetz.

Lief auch recht schnell schön stabil – dachte ich. Es hat nicht lange gedauert, bis es das Cluster aufgrund von Problemen im Transit komplett zerlegt hat.

Also wirklich komplett – auf allen Nodes ist der MariaDB-Daemon ausgestiegen. Was den netten Nebeneffekt hatte, das es das DNS auch noch zerlegt hatte, und daher die Wiederinbetriebnahme sehr spannend gemacht hat 🙄 (nicht auflösbare VPN-Endpunkte usw…) Das trat in den folgenden Monaten noch ein paar mal auf, und zwar mit vorliebe am Montag morgen um halb 6…

Das umstellen des Tunnels auf v6 und andere Kleinigkeiten hat zwar eine kleine Verbesserung gebracht, aber Aussetzer gab es weiterhin.

Ein weiterer Nachteil ist die große Latenz: Da Galera alle Schreibvorgänge synchron löst, dauert es teilweise Ewig, bis bestimmte Seiten wie Piwik geladen haben.

 

Mein Fazit danach: Multi-Master will man eigentlich nicht, aber wenn es nicht anders geht 😕

 

In der Zwischenzeit bin ich über den Tungsten Replicator von Continuent/VMWare gestoßen. Auf der Internetseite von Percona gibt es hierzu eine nette, wenn auch ältere Präsentation. Nun habe ich Tungsten im Multi-Master Betrieb eingerichtet, und muss sagen, es läuft gut. Alle Anwendungen, die Schreibvorgänge ausführen, sind nun spürbar schneller.

Allerdings ist die Installation und Konfiguration von Tungsten wirklich sehr aufwendig und nur was für Linux-Profis, es dauert auch seine Zeit bis man sich durch die Dokumentation gelesen hat. Dafür bekommt man dann ein meiner Meinung nach gut funktionierendes Stück Software.

Mein Fazit: Wenn man kann, sollte man versuchen, mehr als 2 Master zu vermeiden. Und wenn nicht, ist Tungsten eine gute Wahl, wenn man sich viel Zeit dafür nimmt. Im Notfall und unter hoher Last tut bestimmt eine fertige Lösung viel besser, aber das macht ja dann nicht so viel Spaß 😉