Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Bereitstellen und Verwalten von MySQL NDB-Clustern mit ClusterControl

In ClusterControl 1.5 haben wir eine Unterstützung für den MySQL NDB Cluster 7.5 hinzugefügt. In diesem Blogbeitrag werden wir uns einige der Funktionen ansehen, die ClusterControl zu einem großartigen Tool zur Verwaltung von MySQL NDB-Clustern machen. Da es zahlreiche Produkte mit „Cluster“ im Namen gibt, möchten wir zuallererst ein paar Worte zu MySQL NDB Cluster selbst sagen und wie es sich von anderen Lösungen unterscheidet.

MySQL NDB-Cluster

MySQL NDB Cluster ist ein synchroner Shared-Nothing-Cluster für MySQL, der auf der NDB-Engine basiert. Es ist ein Produkt mit einer eigenen Liste von Funktionen und ganz anders als Galera Cluster oder MySQL InnoDB Cluster. Ein Hauptunterschied ist die Verwendung der NDB-Engine, nicht InnoDB, die die Standard-Engine für MySQL ist. Im NDB-Cluster werden Daten auf mehrere Datenknoten verteilt, während Galera Cluster oder MySQL InnoDB Cluster den vollständigen Datensatz auf jedem der Knoten enthalten. Dies hat schwerwiegende Auswirkungen auf die Art und Weise, wie MySQL NDB Cluster mit Abfragen umgeht, die JOINs und große Teile des Datensatzes verwenden.

Hinsichtlich der Architektur besteht MySQL NDB Cluster aus drei verschiedenen Knotentypen. Datenknoten speichern die Daten mithilfe der NDB-Engine. Die Daten werden aus Redundanzgründen mit bis zu 4 Datenrepliken gespiegelt. Beachten Sie, dass ClusterControl 2 Replikate pro Knotengruppe bereitstellt, da dies die am besten getestete und stabilste Konfiguration ist. Verwaltungsknoten sollen den Cluster steuern – aus Gründen der Hochverfügbarkeit haben Sie normalerweise zwei solcher Knoten. SQL-Knoten werden als Einstiegspunkte zum Cluster verwendet. Sie parsen SQL, fragen nach Daten von den Datenknoten und aggregieren bei Bedarf Ergebnismengen.

ClusterControl-Funktionen für MySQL NDB-Cluster

Bereitstellung

ClusterControl 1.5 unterstützt die Bereitstellung von MySQL NDB Cluster 7.5. Dies erfolgt über denselben Bereitstellungsassistenten wie bei den übrigen Clustertypen.

Im ersten Schritt müssen Sie konfigurieren, wie sich ClusterControl über SSH bei den Hosts anmelden kann – dies ist eine Standardanforderung für ClusterControl – es ist agentenlos, sodass Root-SSH-Zugriff entweder direkt, auf das Root-Konto oder über (Passwort oder passwortlos) erforderlich ist. sudo.

Im nächsten Schritt definieren Sie Verwaltungsknoten für Ihren Cluster.

Hier müssen Sie entscheiden, wie viele Datenknoten Sie haben möchten. Wie wir bereits gesagt haben, sind alle 2 Knoten Teil einer Knotengruppe, also sollte dies eine gerade Zahl sein.

Schließlich müssen Sie entscheiden, wie viele SQL-Knoten Sie in Ihrem Cluster bereitstellen möchten. Sobald Sie auf Bereitstellen klicken, verbindet sich ClusterControl mit den Hosts, installiert die Software und konfiguriert alle Dienste. Nach einer Weile sollte Ihr Cluster bereitgestellt werden.

Skalierung des MySQL NDB-Clusters

Für MySQL NDB Cluster unterstützt ClusterControl 1.5.0 die Skalierung von SQL-Knoten. Sie können über das Dropdown-Menü Cluster-Jobs auf den Job zugreifen.

Dort können Sie den Hostnamen des Knotens eingeben, den Sie hinzufügen möchten, und das ist alles, was Sie brauchen - ClusterControl kümmert sich um den Rest.

Verwaltung des MySQL NDB-Clusters

ClusterControl hilft Ihnen bei der Verwaltung von MySQL NDB-Clustern. In diesem Abschnitt möchten wir einige der Verwaltungsfunktionen durchgehen, die wir haben.

Sicherungen

Backups sind für jede Produktionsumgebung von entscheidender Bedeutung. Im Katastrophenfall kann nur ein gutes Backup den Datenverlust minimieren und Ihnen helfen, das Problem schnell zu beheben. Die Replikation ist möglicherweise nicht immer eine funktionierende Lösung – DROP TABLE löscht die Tabelle auf allen Hosts in der Topologie. Selbst ein verspäteter Sklave kann das Unvermeidliche nur um so viel verzögern.

ClusterControl unterstützt ndb-Sicherung für MySQL NDB-Cluster.

Sie können ganz einfach einen Backup-Zeitplan erstellen, der von ClusterControl ausgeführt wird.

Proxy-Schicht

Mit ClusterControl können Sie einen vollständigen Hochverfügbarkeits-Stack auf dem MySQL NDB-Cluster bereitstellen. Für die Proxy-Ebene unterstützen wir die Bereitstellung von HAProxy und MaxScale.

Wie im obigen Screenshot gezeigt, sieht die Bereitstellung den anderen Clustertypen sehr ähnlich. Sie müssen entscheiden, ob Sie einen vorhandenen HAProxy verwenden oder einen neuen bereitstellen möchten. Dann müssen Sie eine Auswahl treffen, wie Sie es installieren möchten – indem Sie Pakete aus den auf dem Knoten verfügbaren Repositories verwenden oder es aus dem Quellcode der neuesten Version kompilieren.

Wenn Sie sich für HAProxy entscheiden, haben Sie die Möglichkeit, Hochverfügbarkeit mit Keepalived und Virtual IP zu konfigurieren.

Der Prozess ist der folgende - Sie definieren eine virtuelle IP und die Schnittstelle, auf der sie aufgerufen werden soll. Anschließend können Sie es für jeden installierten HAProxy bereitstellen. Einer der Keepalived-Prozesse wird als „Master“ bestimmt und aktiviert VIP auf seinem Knoten. Ihre Anwendung verbindet sich dann mit dieser bestimmten IP. Wenn kein derzeit aktiver HAProxy verfügbar ist, wird die VIP auf einen anderen verfügbaren HAProxy verschoben, wodurch die Konnektivität wiederhergestellt wird.

Wiederherstellungsverwaltung

Obwohl MySQL NDB Cluster Ausfälle einzelner Knoten tolerieren kann, ist es wichtig, umgehend darauf zu reagieren. ClusterControl bietet eine automatisierte Wiederherstellung für alle Komponenten des Clusters. Egal, was fehlschlägt (Verwaltungsknoten, Datenknoten oder SQL-Knoten), ClusterControl wird sie automatisch neu starten.

Überwachung des MySQL NDB-Clusters

Jede produktionsbereite Umgebung muss überwacht werden. ClusterControl stellt Ihnen eine Reihe von Metriken zur Verfügung, die Sie überwachen können. Auf der Seite „Übersicht“ zeigen wir Diagramme basierend auf den wichtigsten Metriken für Ihren Cluster. Sie können auch Ihre eigenen Dashboards erstellen, die zusätzliche Daten anzeigen, die in Ihrer Umgebung nützlich wären.

Zusätzlich zu den Diagrammen gibt Ihnen die Seite „Übersicht“ Einblicke in den Zustand des Clusters, basierend auf einigen MySQL NDB-Cluster-Metriken wie verwendetem Indexspeicher, Datenspeicher und Zustand einiger Puffer.

Es bietet auch die Überwachung der Host-Metriken, einschließlich CPU-Auslastung, RAM, Festplatten- oder Netzwerkstatistiken. Diese Diagramme sind auch entscheidend, um einen Überblick über den Zustand des Clusters zu erhalten.

ClusterControl kann Ihnen auch dabei helfen, die Leistung Ihrer Datenbanken zu verbessern, indem es Ihnen Zugriff auf den Abfragemonitor gibt, der Statistiken über Ihren Datenverkehr enthält.

Wie auf dem obigen Screenshot zu sehen ist, können Sie sehen, welche Art von Abfragen auf Ihrem Cluster ausgeführt werden, wie viele Abfragen eines bestimmten Typs, wie lang ihre Ausführungszeiten und die Gesamtausführungszeiten sind. Dies hilft zu erkennen, welche Abfragen langsam sind und welche von ihnen für den Großteil des Datenverkehrs verantwortlich sind. Sie können sich dann auf die Abfragen konzentrieren, die Ihnen die größte Leistungssteigerung bringen können.