Galera Cluster: Der MariaDB-Cluster im Überblick
Ein kontinuierlicher Betrieb und eine hohe Verfügbarkeit sind bei modernen Lösungen für das Datenbank-Management ebenso unverzichtbar wie möglichst flexible Skalierungsmöglichkeiten. Nur so sind Sie den heutigen Anforderungen mit stark schwankenden Zugriffen und unerwartet hohen Lastspitzen gewachsen. Der schwierige Spagat besteht dabei insbesondere darin, diesen Anforderungen trotz minimalisierter Infrastrukturkosten auf Cloud-Basis gerecht zu werden.
Galera Cluster unterstützt Sie bei diesem Vorhaben: Die Multi-Master-Clustering-Lösung für Datenbanken setzt auf eine hoch performante, synchrone Replikation, um alle Knoten eines Datenbank-Verbunds in Echtzeit mit den gleichen Daten zu versorgen. Unter anderem für MariaDB verfügbar, sorgt Galera Cluster so für minimalen Datenverlust und eine hohe Ausfallsicherheit. Erfahren Sie in den nachfolgenden Abschnitten, wie genau der Aufbau von MariaDB-Clustern auf Basis von Galera Cluster funktioniert, welche Vorzüge die Technologie hat und wo sie genau zum Einsatz kommt.
Was ist Galera Cluster?
Galera Cluster ist ein Software-Paket für Linux-Betriebssysteme, das den Aufbau und das Management von MySQL-, XtraDB- und MariaDB-Clustern ermöglicht. Die Basis der Cluster-Anwendung bildet die Storage-Engine von InnoDB bzw. von deren Abspaltung XtraDB. Experimentell wird außerdem die Engine MyISAM unterstützt, die in MySQL und MariaDB als InnoDB-Vorgänger ebenfalls lange Zeit zum Einsatz kam. Bei der Speicherung der Daten in den verschiedenen, eigenständigen Cluster-Knoten wendet Galera Cluster das Prinzip der synchronen Replikation an: Sämtliche Kopierprozesse und Veränderungen an gespeicherten Daten werden gleichzeitig auf allen primären und sekundären Speichereinheiten durchgeführt, sodass die Datenbestände jederzeit an allen Knoten aktuell sind und nicht voneinander abweichen.
Ein minimaler Galera Cluster besteht aus drei Knoten (die Entwickler empfehlen generell eine ungerade Anzahl). Fällt ein Knoten bei der Transaktion von Daten aus, beispielsweise aufgrund von Netzwerkproblemen oder einem defekten System, bilden die beiden anderen Knoten weiterhin die erforderliche Mehrheit, um die Transaktion dennoch erfolgreich durchführen zu können.
Als profitierende Datenbank-Systeme sieht Galera Cluster MariaDB und MySQL vor. Einen ausführlichen Vergleich zwischen den beiden Anwendungen für das Management von Datenbeständen liefert unser Artikel MariaDB vs. MySQL.
Wie funktionieren MariaDB-Galera-Cluster?
Ein MariaDB-Cluster auf Basis von Galera Cluster zeichnet sich dadurch aus, dass alle Knoten des Verbunds zu jeder Zeit über den gleichen Datenbestand verfügen. Die klassische Unterscheidung der eingespannten Datenbank-Server in Master (Server, auf den geschrieben werden kann) und Slaves (Server, von denen ausschließlich gelesen werden kann) wird dabei durch die Cluster-Software aufgehoben: Als Nutzer können Sie Daten auf jeden beliebigen Speicherknoten schreiben, woraufhin diese automatisch an alle weiteren Cluster-Teilnehmer weitergeleitet werden. Diese Eigenschaft wird auch als Multi-Master bezeichnet.
Um diesen flexiblen Datenaustausch zu gewährleisten, nutzt Galera Cluster bei der Verwaltung ein synchrones Replikationsverfahren, das auf dem Austausch von Zertifikaten basiert. Werden Daten repliziert, also in eine der Datenbanken des Clusters geschrieben, gelten im MariaDB-Galera-Cluster folgende zwei Grundprinzipien:
- Jeder Datenbank-Transaktion wird eine einzigartige Sequenznummer zugewiesen. Bevor ein Cluster-Knoten die jeweiligen Änderungen an der Datenbank zulässt, gleicht er diese Sequenznummer mit der Nummer der letzten bestätigten Transaktion ab. Alle Knoten kommen bei dieser Überprüfung immer zu dem gleichen Ergebnis („Transaktion bestätigt“ oder „Transaktion abgelehnt“). Der Knoten, der die Transaktion gestartet hat, teilt dieses dem Client mit.
- Bei jeder Transaktion werden alle Datenbank-Replikate aktualisiert. Wird eine Transaktion also im Anschluss an die Zertifizierung bestätigt, nehmen alle Knoten die entsprechende Veränderung am Datensatz vor. Lediglich im Falle eines technischen Problems auf Seiten eines Galera-Cluster-Knotens kann dieser vorübergehend von der synchronen Replikation ausgeschlossen werden.
Wie sieht der Aufbau eines Galera Clusters aus?
Die interne Architektur eines Galera Clusters kreist um folgende vier Komponenten:
- Datenbank-Management-System: Das DBMS ist die zentrale Einheit des Clusters. Auf jedem Knoten läuft ein entsprechender Datenbank-Server. Wie erwähnt unterstützt Galera Cluster neben MariaDB auch MySQL und Percona XtraDB.
- wsrep-API: Die wsrep-API definiert und implementiert das Interface und die Verantwortlichkeiten für den Zugriff auf die eingebundenen Datenbank-Server. Ferner regelt wsrep die Datenreplikation. Die API stellt u. a. wsrep Hooks (Bindeglieder zum Datenbank-Server für die Datenreplikation) und die Funktion „dlopen()“ (ermöglicht Kommunikation mit den Hooks) zur Verfügung.
- Galera-Replication-Plug-in: Dieses Plug-in implementiert die wsrep-API. Zu diesem Zweck stellt es eine Schicht für den Zertifizierungsprozess, eine Schicht für die Replikation (inklusive Protokoll) sowie das Group-Communication-Framework bereit.
- Group-Communication-Plug-ins: Galera Cluster liefert eine Vielzahl von Erweiterungen für die Implementierung von Group-Communication-Systemen wie dem Spread-Toolkit oder gcomm. Basis für diese Plug-ins ist das Group-Communication-Framework.
Was sind die Vorteile eines MariaDB-Clusters?
Die entscheidenden Vorzüge eines MariaDB-Galera-Clusters sind im Laufe dieses Artikels bereits erwähnt worden: Der Umstieg auf diese Cluster-Technologie bietet Ihnen eine flexible Datenspeicherung mit einem Höchstmaß an Ausfallsicherheit und Verfügbarkeit, das mit einem gewöhnlichen MariaDB-Setup nicht zu erreichen ist.
Dank der synchronen Replikation müssen Sie sich keine Gedanken mehr darüber machen, ob alle involvierten Speichereinheiten auf dem neuesten Stand sind. Jede Datenbank-Einheit wird durch Galera Cluster automatisch mit den neuesten Veränderungen versorgt, was ein manuelles Kopieren bzw. mühsam einzurichtende Back-up-Strategien gänzlich erübrigt. Der Multi-Master-Ansatz macht es darüber hinaus möglich, jeden beliebigen, eingebundenen MariaDB-Datenbank-Server anzusteuern, wenn Sie Daten schreiben, ändern oder löschen möchten wollen. Da sich die Knoten gezielt in der Nähe der Clients platzieren lassen, kann die dabei anfallende Latenz minimiert werden.
Ein zusätzlicher Vorteil eines MariaDB-Clusters auf Galera-Cluster-Basis ist der gute Cloud-Support einer solchen Architektur: Für eine flexible, cloudbasierte Skalierung der Datenbank-Ressourcen sind Sie bestens gerüstet. Auch die Verteilung von Daten auf verschiedene Rechenzentren stellt kein Problem dar, da jede Transaktion im Galera Cluster nur ein einziges Mal an jedes Rechenzentrum geschickt werden muss.
SQL-Server-Hosting nach Maß finden Sie direkt bei IONOS! Wählen Sie aus verschiedenen Server- und Hosting-Lösungen für Ihr individuelles Datenbank-System mit MariaDB, MySQL oder MSSQL.
Use Cases: Wo kommen Galera Cluster zum Einsatz?
Ein MariaDB-Galera-Cluster ist aufgrund der genannten Eigenschaften und Vorzüge eine hervorragende Lösung für das Management der eigenen Datenbank-Lösung. Konkret deckt das Cluster-Setup u. a. folgende Use Cases ab:
Datenbank-Anwendungen mit hohen Schreibdurchsatz-Anforderungen
Die Verteilung von Schreibvorgängen über den gesamten Cluster ermöglicht eine optimale Nutzung der zur Verfügung stehenden Schreibressourcen. Nach der initialen Verarbeitung einer Client-Transaktion müssen alle Knoten, an die diese Transaktion weitergeleitet wird, nur die darin erfolgten Veränderungen aufnehmen. Die Replikationsmethode des Galera Clusters sorgt im Allgemeinen also für einen deutlich höheren Schreibdurchsatz, als ihn ein gewöhnliches Datenbank-Set-up liefern kann – was die Cluster-Technologie besonders interessant für schreibintensive Anwendungen macht.
WAN-Clustering
Auch in einem WAN (Wide Area Network) wie dem Internet funktioniert das synchrone Replikationsprinzip von Galera Cluster ohne Probleme. Es gibt zwar einen geringen Delay (Verzögerung in der Übertragung), der proportional zur Paketumlaufzeit (RTT) des Netzwerks ist – allerdings betrifft dieser nur den Bestätigungsprozess der eingehenden Datenbank-Transaktionen. Ein MariaDB-Cluster in der Cloud zählt folglich zu den interessantesten Use Cases.
Disaster Recovery (Notfallwiederherstellung)
Eng mit der generellen Speicherung und Verwaltung von Datenbeständen in der Cloud verwandt ist das Prinzip der Disaster Recovery, bei der Daten in einem separaten Rechenzentrum liegen, um im Notfall ein komplettes Datenabbild für die Wiederherstellung parat zu haben. In diesem Fall leitet Galera Cluster zwar die Replikationsdaten weiter, stellt sie jedoch nicht für die Verarbeitung von Client-Transaktionen zur Verfügung. Ist eine Wiederherstellung nötig, wird der Disaster-Recovery-Teil des MariaDB-Clusters vorübergehend zur Primär-Instanz deklariert, um die Ausfallzeit so gering wie möglich zu halten.
Ausführliche Informationen rund um das Thema Disaster Recovery erhalten Sie in unserem Artikel zum IT-Notfallhandbuch.