Open Source im professionellen Einsatz
Linux-Magazin 11/2012
© Kiam Soon Jong, Fotolia.com

© Kiam Soon Jong, Fotolia.com

Hochverfügbare und skalierbare MySQL-Cluster mit Galera

Daten im Takt

MySQL-Clustervarianten gibt es einige, aber erst ein Team aus Coderships Galera und dem Schrittmacher Pacemaker macht die Datenbank zu einem sicheren Verbund mit den Leistungsreserven beliebig vieler Primary-Knoten. Dafür ist jedoch derzeit noch ein wenig Handarbeit notwendig.

542

Eine große MySQL-Datenbank auf perfekt koordinierte und skalierbare Hochverfügbarkeit zu trimmen erfordert Einsatzbereitschaft und Durchhaltevermögen. Auf den Lösungswegen, die MySQL nur um HA-Features erweitern, lauern viele Stromschnellen, selbst einfache Skalierbarkeit ist nur schwer zu erreichen.

Galeere am Horizont

Doch eine Lösung scheint in Sicht, seit die Firma Codership [1] mit ihrer Software Galera [2] ein neues Boot ins Rennen schickt: Galera erweitert MySQL um ein Plugin, das sich um die Replikation der Daten eines Clusters kümmert. Dabei bleibt jeder einzelne Clusterknoten eine normale MySQL-Instanz, die Lese- und Schreibzugriffe selbst abwickelt.

Dieser Artikel beschäftigt sich mit der Frage, wie sich ein solches Gespann aus Galera-Knoten sinnvoll in den Clustermanager Pacemaker [3] integrieren lässt. Um zu verstehen, was Galera so revolutionär erscheinen lässt und wieso es sinnvoll ist, den eigentlich autonomen Cluster aus Galera-Knoten um einen Schrittmacher zu ergänzen, ist ein kleiner Ausflug in die Grundlagen der Hochverfügbarkeit und Skalierung von MySQL nötig.

MySQL ist ein hervorragendes Beispiel für den Wildwuchs an HA-Lösungen, der in den letzten Jahren vielerorts entstand, wenn Applikationen Hochverfügbarkeits-Funktionen fehlen. Ursprünglich bot die Datenbank überhaupt keine Möglichkeit, einzelne Instanzen in einem Rechnerverbund miteinander kommunizieren zu lassen. Häufig betreiben Admins deshalb MySQL-Deployments, die das Problem mit DRBD oder einem SAN-Storage auf Block-Level des Linux-Kernels zu umgehen trachten.

Die Idee hinter so einem Setup ist einfach: Wenn MySQL auf beiden Knoten eines 2-Node-Clusters jeweils die gleichen Daten zur Verfügung hat, lässt sich »mysqld« auf jedem Knoten starten, ohne dass Clients einen Unterschied bemerken. DRBD oder das genutzte SAN kümmern sich um die Replikation der Daten, der eigentliche Datenbankordner »/var/lib/mysql« ist nur ein Mountpoint.

Diese Art des MySQL-Clusterings hat aber zwei große Nachteile: »mysqld« kann jeweils nur auf einem der beiden Knoten laufen, weil sonst konkurrierender Zugriff auf die MySQL-Daten stattfände. Wer dafür zwei schnelle Server einsetzt, verdammt einen von beiden also immer dazu, sich zu langweilen.

Der zweite Pferdefuß ist die Tatsache, dass nach einem Failover der »mysqld« auf dem verbliebenen Knoten zum Beispiel bei Inno DB erst mal seinen Recovery-Prozess durchläuft. War zum Crash-Zeitpunkt das Binlog etwas größer, dann wird dieser Vorgang einige Zeit in Anspruch nehmen, bis zu 20 Minuten sind durchaus möglich. Vom viel zitierten "Instant Failover" kann da keine Rede sein.

Nicht transaktionssicher

Auch andere Cluster-Lösungen für MySQL stehen kaum besser da. Der mittlerweile vorhandene Master-Slave-Modus erlaubt zwar das Skalieren von MySQL, ist aber nicht transaktionssicher. Denn wenn ein Slave-Knoten nach dem Ausfall des Master-Hosts zum neuen Master wird, hat er unter Umständen noch nicht alle Updates von diesem empfangen.

Es bliebe als Lösung des Problems noch der von MySQL als eigenständiges Produkt vertriebene MySQL Cluster [4]. Doch auch der ist keine wirklich geclusterte Datenbank, sondern eher ein großer Key-Value-Store, der mit komplexen SQL-Queries nicht richtig umgehen kann.

Genau an dieser Stelle setzt Galera an: Die Entwickler von Codership wollten eine MySQL-Cluster-Lösung schaffen, die einerseits nicht auf eine bestimmte Anzahl von Knoten beschränkt ist, gleichzeitig aber dafür sorgt, dass jeder Knoten innerhalb des Verbunds als vollwertige MySQL-Datenbank fungiert, also auch inklusive Lese- und Schreibzugriff.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Max Scale

    Max Scale von Maria DB empfiehlt sich als schlauer Proxyserver für MySQL, der das Protokoll des Datenbankservers spricht. Neben solider Hochverfügbarkeit kündigt der Hersteller auch eine gute Skalierbarkeit an. Ist das Fakt oder leeres Gerede?

  • Group Replication

    Jüngst hat Oracle mit der Group Replication eine Hochverfügbarkeitslösung für das allgegenwärtige MySQL vorgestellt, die mit wenig Aufwand einsetzbar ist.

  • OSDC

    Die am 25. und 26. April vom Nürnberger IT-Dienstleister Netways zum nunmehr dritten Mal in Folge ausgerichtete Open Source Data Center Conference bot Vorträge meist hochkarätiger Spezialisten.

  • MariaDB bringt Max Scale

    MariaDB stellt mit Max Scale einen neuartigen Datenbank-Proxy vor.

  • HA-Richtlinien für Open Stack

    Florian Haas, CEO von Hastexo, hat sich im Rahmen eines Vortrags auf der CloudCon 2014 in Düsseldorf mit dem Stand der Integration von von Hochverfügbarkeitsfeatures in Open Stack beschäftigt.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.