MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

So stellen Sie einen MariaDB-Cluster für Hochverfügbarkeit bereit

MariaDB-Cluster ist ein Multi-Master-Replikationssystem, das aus MariaDB-Server, MySQL-wsrep-Patch und Galera-wsrep-Provider aufgebaut ist.

Galera basiert auf einer synchronen (oder „praktisch synchronen“) Replikationsmethode, die sicherstellt, dass die Daten auf andere Knoten angewendet werden, bevor sie festgeschrieben werden. Das Vorhandensein der gleichen Daten auf allen Knoten bedeutet, dass Knotenausfälle problemlos toleriert werden können und keine Daten verloren gehen. Es ist auch einfacher, auf einen anderen Knoten umzuschalten, da alle Knoten mit den gleichen Daten auf dem neuesten Stand sind. Man kann mit Fug und Recht sagen, dass MariaDB Cluster eine Hochverfügbarkeitslösung ist, die eine hohe Betriebszeit für Organisationen mit strengen Service Level Agreements für Datenbanken erreichen kann.

Neben der Verwaltung der Hochverfügbarkeit kann es auch verwendet werden, um den Datenbankdienst zu skalieren und den Dienst auf mehrere Regionen auszudehnen.

MariaDB-Cluster-Bereitstellung

MariaDB-Cluster in ClusterControl ist wirklich unkompliziert und in der kostenlosen Community Edition verfügbar. Sie können durch „Bereitstellen“ gehen und MySQL Galera wie unten gezeigt auswählen:

Geben Sie die SSH-Benutzer- und Anmeldeinformationen sowie den Clusternamen ein, den Sie verwenden möchten und dann Weiter.

Wählen Sie MariaDB als Anbieter der Datenbank, die Sie installieren möchten. Server Data Directory, Server Port kann die Standardkonfiguration verwenden, es sei denn, Sie definieren eine spezifische Konfiguration. Geben Sie das Admin/Root-Datenbankpasswort ein und fügen Sie schließlich Knoten hinzufügen hinzu, um die Ziel-IP-Adressen der Datenbankknoten hinzuzufügen.

Galera-Knoten erfordern mindestens 3 Knoten oder Sie können 2 Datenbankknoten und Galera-Arbiter verwenden, die auf einem separaten Host konfiguriert sind.

Nachdem alle Felder ausgefüllt sind, stellen Sie einfach den Cluster bereit. Es löst einen neuen Job zum Erstellen eines Clusters aus, wie unten gezeigt:

Maxscale-Bereitstellung

Maxscale ist ein Datenbank-Load-Balancer, ein Datenbank-Proxy und eine Firewall, die sich zwischen Ihrer Anwendung und den MariaDB-Knoten befindet. Einige der Maxscale-Features sind :

  • Automatisches Failover für Hochverfügbarkeit
  • Traffic-Load-Balancing (Lese- und Schreibaufteilung)
  • Verkehrskontrollen für Abfragen und Verbindungen.

Es gibt zwei Möglichkeiten, die Load Balancer-Bereitstellung durchzuführen, Sie können im Cluster-Menü wie unten gezeigt „Load Balancer hinzufügen“:

Oder Sie können zu Manage -> Load Balancer gehen. Es wird auf dieselbe Seite geleitet, nämlich die Load Balancer-Seite. Wählen Sie die Registerkarte „Maxscale“ für die Bereitstellung des Maxscale-Load-Balancers:

Wählen Sie die Serveradresse, definieren Sie Maxscale-Benutzernamen und -Passwort, Sie können das verlassen Standardkonfiguration für Threads und Lese-/Schreibport. Schließen Sie auch die hinzuzufügenden MariaDB-Knoten in den Load Balancer ein. Sie können „MaxScale bereitstellen“, um den MaxScale-Datenbank-Proxy und Lastenausgleich bereitzustellen.

Die beste Vorgehensweise, um den Load Balancer hochverfügbar zu machen, besteht darin, mindestens 2 MaxScale-Instanzen auf verschiedenen Hosts einzurichten.

Keepalived-Bereitstellung

Keepalived ist ein Daemon-Dienst in Linux, der für Zustandsprüfungen und auch für Failover verwendet wird, wenn einer der Server ausfällt. Der Mechanismus verwendet VIP (virtuelle IP-Adresse), um eine hohe Verfügbarkeit zu erreichen, bestehend aus einem Server, der als Master fungiert, und dem anderen, der als Backup fungiert.

Die Bereitstellung des Keepalived-Dienstes kann unter Manage -> Load Balancer erfolgen.

Bitte wählen Sie Ihren Load Balancer-Typ, also MaxScale. Derzeit unterstützt ClusterControl HAProxy, ProxySQL und MaxScale als Load Balancer, die in Keepalived integriert werden können. Definieren Sie Ihre virtuelle IP (VIP) und Netzwerkschnittstelle für die virtuelle IP-Adresse.

Danach klicken Sie einfach auf Keepalived bereitstellen. Dadurch wird ein neuer Job zum Bereitstellen von Keepalived auf beiden MaxScale-Hosts ausgelöst.

Die endgültige Architektur für MariaDB Cluster for High Availability besteht aus 3 Datenbankknoten, 2 Load-Balancer-Knoten und einen Keepalive-Dienst auf jedem Load-Balancer, wie in der Topologie unten gezeigt:

Fazit

Wir haben gezeigt, wie wir schnell einen Hochverfügbarkeits-MariaDB-Cluster mit MaxScale und Keepalived über ClusterControl bereitstellen können. Wir sind die Setups für Datenbankknoten und Proxy-Knoten durchgegangen. Um mehr über Galera Cluster zu erfahren, sehen Sie sich unser Online-Tutorial an. Beachten Sie, dass ClusterControl auch andere Load Balancer wie ProxySQL und HAProxy unterstützt. Probieren Sie diese aus und lassen Sie uns wissen, wenn Sie Fragen haben.