ClusterControl macht es einfach, ein Datenbank-Setup bereitzustellen – geben Sie einfach einige Werte (Datenbankanbieter, Datenbankdatenverzeichnis, Passwort und Hostnamen) in den Bereitstellungsassistenten ein und schon kann es losgehen. Die restlichen Konfigurationsoptionen werden basierend auf den Hostspezifikationen (CPU-Kerne, Speicher, IP-Adresse usw.) automatisch ermittelt (und berechnet) und auf die mit ClusterControl gelieferte Vorlagendatei angewendet. In diesem Blogbeitrag werden wir untersuchen, wie ClusterControl Standardvorlagendateien verwendet und wie Benutzer sie an ihre Bedürfnisse anpassen können.
Basisvorlagendateien
Alle von ClusterControl konfigurierten Dienste verwenden eine Basiskonfigurationsvorlage, die unter /usr/share/cmon/templates auf dem ClusterControl-Knoten verfügbar ist. Das Folgende sind Vorlagendateien, die von ClusterControl v1.4.0 bereitgestellt werden:
Dateiname | Beschreibung |
---|---|
config.ini.mc | MySQL-Cluster-Konfigurationsdatei. |
haproxy.cfg | HAProxy-Konfigurationsvorlage für Galera Cluster. |
haproxy_rw_split.cfg | HAProxy-Konfigurationsvorlage für Read-Write-Splitting. |
garbd.cnf | Konfigurationsdatei des Galera Arbitrator Daemon (garbd). |
keepalived-1.2.7.conf | Alte Keepalived-Konfigurationsdatei (vor 1.2.7). Dies ist veraltet. |
keepalived.conf | Konfigurationsdatei behalten. |
keepalived.init | Init-Skript beibehalten. |
MaxScale_template.cnf | MaxScale-Konfigurationsvorlage. |
mongodb-2.6.conf.org | MongoDB 2.x-Konfigurationsvorlage. |
mongodb.conf.org | MongoDB 3.x-Konfigurationsvorlage. |
mongodb.conf.percona | MongoDB 3.x Konfigurationsvorlage für Percona Server für MongoDB. |
mongos.conf.org | Mongo-Router (Mongos) Konfigurationsvorlage. |
meine.cnf.galera | MySQL-Konfigurationsvorlage für Galera Cluster. |
my57.cnf.galera | MySQL-Konfigurationsvorlage für Galera Cluster auf MySQL 5.7. |
my.cnf.grouprepl | MySQL-Konfigurationsvorlage für die MySQL-Gruppenreplikation. |
my.cnf.gtid_replication | MySQL-Konfigurationsvorlage für die MySQL-Replikation mit GTID. |
my.cnf.mysqlcluster | MySQL-Konfigurationsvorlage für MySQL Cluster. |
my.cnf.pxc55 | MySQL-Konfigurationsvorlage für Percona XtraDB Cluster v5.5. |
my.cnf.repl57 | MySQL-Konfigurationsvorlage für MySQL Replication v5.7. |
my.cnf.replication | MySQL-Konfigurationsvorlage für MySQL/MariaDB ohne die GTID von MySQL. |
mysqlchk.galera | Skriptvorlage für MySQL-Zustandsprüfungen für Galera Cluster. |
mysqlchk.mysql | Skriptvorlage für MySQL-Zustandsprüfungen für die MySQL-Replikation. |
mysqlchk_xinetd | Xinetd-Konfigurationsvorlage für MySQL-Zustandsprüfung. |
mysqld.service.override | Systemd-Unit-Dateivorlage für den MySQL-Dienst. |
proxysql_template.cnf | ProxySQL-Konfigurationsvorlage. |
Die obige Liste hängt von dem Funktionsumfang ab, der von der installierten ClusterControl-Version bereitgestellt wird. In einer älteren Version finden Sie einige davon möglicherweise nicht. Sie können diese Vorlagendateien direkt ändern, obwohl wir dies nicht empfehlen, wie in den nächsten Abschnitten erläutert.
Konfigurationsmanager
Abhängig vom Clustertyp importiert ClusterControl dann die erforderliche Basisvorlagendatei in die CMON-Datenbank und ist nach erfolgreicher Bereitstellung über Verwalten -> Konfigurationen -> Vorlagen zugänglich. Betrachten Sie beispielsweise die folgende Konfigurationsvorlage für einen MariaDB Galera-Cluster:
ClusterControl lädt den Inhalt der Basisvorlage der Galera-Konfigurationsvorlage von /usr/share/cmon/templates/my.cnf.galera in die CMON-Datenbank (innerhalb der Tabelle cluster_configuration_templates), nachdem die Bereitstellung erfolgreich war. Sie können dann Ihre eigene Konfigurationsdatei direkt in der ClusterControl-Benutzeroberfläche anpassen. Immer wenn Sie auf die Schaltfläche Speichern klicken, wird die neue Version der Konfigurationsvorlage in der CMON-Datenbank gespeichert, ohne die Basisvorlagendatei zu überschreiben.
Sobald der Cluster bereitgestellt ist und ausgeführt wird, hat die Vorlage in der Benutzeroberfläche Vorrang. Die Basisvorlagendatei wird nur während der anfänglichen Clusterbereitstellung über ClusterControl -> Deploy -> Deploy Database Cluster verwendet. Während der Bereitstellungsphase verwendet ClusterControl ein temporäres Verzeichnis unter /var/tmp/, um den Inhalt vorzubereiten, zum Beispiel:
/var/tmp/cmon-003862-6a7775ca76c62486.tmp
Dynamische Variablen
Es gibt eine Reihe von Konfigurationsvariablen, die von ClusterControl dynamisch konfiguriert werden können. Diese Variablen werden mit Großbuchstaben dargestellt, die von einem @-Zeichen eingeschlossen sind, z. B. @[email protected]. Ausführliche Informationen zu unterstützten Variablen finden Sie auf dieser Seite. Dynamische Variablen werden automatisch basierend auf den Eingaben konfiguriert, die während der Clusterbereitstellung angegeben wurden, oder ClusterControl führt eine automatische Erkennung basierend auf Hostname, IP-Adresse, verfügbarem RAM, Anzahl der CPU-Kerne usw. durch. Dies vereinfacht die Bereitstellung, da Sie während der Cluster-Bereitstellungsphase nur minimale Optionen angeben müssen
Wenn die dynamische Variable durch einen Wert ersetzt wird (oder undefiniert ist), überspringt ClusterControl sie und verwendet stattdessen den konfigurierten Wert. Dies ist praktisch für fortgeschrittene Benutzer, die normalerweise ihre eigenen Konfigurationsoptionen haben, die auf bestimmte Datenbank-Workloads zugeschnitten sind.
Beispiel für eine Konfigurationsvorlage vor der Bereitstellung
Anstatt sich auf die dynamische Variable von ClusterControl für die Anzahl der max_connections für unsere Datenbankknoten zu verlassen, können wir die folgende Zeile in /usr/share/cmon/templates/my57.cnf.galera ändern, von:
[email protected]@sqldat.com
An:
max_connections=50
Speichern Sie die Textdatei und stellen Sie im Dialogfeld „Datenbankcluster bereitstellen“ sicher, dass ClusterControl die richtige Basisvorlagendatei verwendet:
Klicken Sie auf die Schaltfläche Bereitstellen, um die Bereitstellung des Datenbankclusters zu starten.
Beispiel für eine Konfigurationsvorlage nach der Bereitstellung
Nachdem die Bereitstellung des Datenbankclusters abgeschlossen ist, haben Sie möglicherweise einige Feinabstimmungen auf den laufenden Servern vorgenommen, bevor Sie sich für eine Skalierung entschieden haben. Beim Hochskalieren verwendet ClusterControl die Konfigurationsvorlage in der CMON-Datenbank (diejenige, die unter ClusterControl -> Konfigurationen -> Vorlagen ausgefüllt wird), um die neuen Knoten bereitzustellen. Denken Sie daher daran, die Änderungen, die Sie auf dem Datenbankserver vorgenommen haben, auf die Vorlagendatei anzuwenden.
Bevor Sie einen neuen Knoten hinzufügen, empfiehlt es sich, die Konfigurationsvorlage zu überprüfen, um sicherzustellen, dass der neue Knoten das bekommt, was wir erwartet haben. Gehen Sie dann zu ClusterControl -> Knoten hinzufügen und stellen Sie sicher, dass die richtige MySQL-Vorlagendatei ausgewählt ist:
Klicken Sie dann auf die Schaltfläche „Knoten hinzufügen“, um die Bereitstellung zu starten.
Das ist es. Obwohl ClusterControl bei der Bereitstellung verschiedene Automatisierungsaufgaben übernimmt, bietet es den Benutzern dennoch die Freiheit, die Bereitstellung entsprechend anzupassen. Viel Spaß beim Clustern!