ClusterControl gør det nemt at implementere en databaseopsætning - bare udfyld nogle værdier (databaseleverandør, databasedatamappe, adgangskode og værtsnavne) i implementeringsguiden, og du er godt i gang. Resten af konfigurationsmulighederne vil automatisk blive bestemt (og beregnet) baseret på værtsspecifikationerne (CPU-kerner, hukommelse, IP-adresse osv.) og anvendt på skabelonfilen, der følger med ClusterControl. I dette blogindlæg skal vi se på, hvordan ClusterControl bruger standardskabelonfiler, og hvordan brugere kan tilpasse dem til deres behov.
Basiskabelonfiler
Alle tjenester konfigureret af ClusterControl bruger en basiskonfigurationsskabelon, der er tilgængelig under /usr/share/cmon/templates på ClusterControl-noden. Følgende er skabelonfiler leveret af ClusterControl v1.4.0:
Filnavn | Beskrivelse |
---|---|
config.ini.mc | MySQL Cluster-konfigurationsfil. |
haproxy.cfg | HAProxy-konfigurationsskabelon til Galera Cluster. |
haproxy_rw_split.cfg | HAProxy-konfigurationsskabelon til læse-skrive-opdeling. |
garbd.cnf | Galera arbitrator daemon (garbd) konfigurationsfil. |
keepalived-1.2.7.conf | Ældre keepalived-konfigurationsfil (før 1.2.7). Dette er forældet. |
keepalived.conf | Beholdt konfigurationsfil. |
keepalived.init | Beholdt init-script. |
MaxScale_template.cnf | MaxScale-konfigurationsskabelon. |
mongodb-2.6.conf.org | MongoDB 2.x-konfigurationsskabelon. |
mongodb.conf.org | MongoDB 3.x-konfigurationsskabelon. |
mongodb.conf.percona | MongoDB 3.x-konfigurationsskabelon til Percona Server til MongoDB. |
mongos.conf.org | Mongo router (mongos) konfigurationsskabelon. |
my.cnf.galera | MySQL-konfigurationsskabelon til Galera Cluster. |
my57.cnf.galera | MySQL-konfigurationsskabelon til Galera Cluster på MySQL 5.7. |
my.cnf.grouprepl | MySQL-konfigurationsskabelon til MySQL-gruppereplikering. |
my.cnf.gtid_replication | MySQL-konfigurationsskabelon til MySQL-replikering med GTID. |
my.cnf.mysqlcluster | MySQL-konfigurationsskabelon til MySQL Cluster. |
my.cnf.pxc55 | MySQL-konfigurationsskabelon til Percona XtraDB Cluster v5.5. |
my.cnf.repl57 | MySQL-konfigurationsskabelon til MySQL-replikering v5.7. |
my.cnf.replication | MySQL-konfigurationsskabelon til MySQL/MariaDB uden MySQL's GTID. |
mysqlchk.galera | MySQL-sundhedstjek-scriptskabelon til Galera Cluster. |
mysqlchk.mysql | MySQL-sundhedstjek-scriptskabelon til MySQL-replikering. |
mysqlchk_xinetd | Xinetd-konfigurationsskabelon til MySQL-sundhedstjek. |
mysqld.service.override | Systemd-enhedsfilskabelon til MySQL-tjenesten. |
proxysql_template.cnf | ProxySQL-konfigurationsskabelon. |
Ovenstående liste afhænger af det funktionssæt, der leveres af den installerede ClusterControl-udgivelse. I en ældre version kan du muligvis ikke finde nogle af dem. Du kan ændre disse skabelonfiler direkte, selvom vi ikke anbefaler det som forklaret i de næste afsnit.
Configuration Manager
Afhængigt af klyngetypen vil ClusterControl derefter importere den nødvendige basisskabelonfil til CMON-databasen og tilgængelig via Administrer -> Konfigurationer -> Skabeloner, når implementeringen lykkes. Overvej f.eks. følgende konfigurationsskabelon for en MariaDB Galera Cluster:
ClusterControl indlæser basisskabelonindholdet af Galera-konfigurationsskabelonen fra /usr/share/cmon/templates/my.cnf.galera til CMON-databasen (inde i cluster_configuration_templates-tabellen), efter at implementeringen er lykkedes. Du kan derefter tilpasse din egen konfigurationsfil direkte i ClusterControl UI. Hver gang du trykker på knappen Gem, vil den nye version af konfigurationsskabelonen blive gemt i CMON-databasen uden at overskrive basisskabelonfilen.
Når klyngen er implementeret og kører, har skabelonen i brugergrænsefladen forrang. Basisskabelonfilen bruges kun under den indledende klyngeimplementering via ClusterControl -> Deploy -> Deploy Database Cluster. Under implementeringsfasen vil ClusterControl bruge en midlertidig mappe placeret på /var/tmp/ til at forberede indholdet, for eksempel:
/var/tmp/cmon-003862-6a7775ca76c62486.tmp
Dynamiske variabler
Der er et antal konfigurationsvariabler, som kan konfigureres dynamisk af ClusterControl. Disse variabler er repræsenteret med store bogstaver omgivet af tegnet "@", for eksempel @[email protected] For alle detaljer om understøttede variabler, se venligst denne side. Dynamiske variabler konfigureres automatisk baseret på det input, der er angivet under cluster-implementering, eller ClusterControl udfører automatisk detektion baseret på værtsnavn, IP-adresse, tilgængelig RAM, antal CPU-kerner og så videre. Dette forenkler implementeringen, hvor du kun behøver at specificere minimale muligheder under klyngeimplementeringsfasen
Hvis den dynamiske variabel erstattes med en værdi (eller udefineret), vil ClusterControl springe den over og bruge den konfigurerede værdi i stedet. Dette er praktisk for avancerede brugere, hvor de normalt har deres eget sæt konfigurationsmuligheder, der er skræddersyet til specifikke databasearbejdsbelastninger.
Eksempel på konfigurationsskabelon før implementering
I stedet for at stole på ClusterControls dynamiske variabel på antallet af max_connections for vores databasenoder, kan vi ændre følgende linje inde i /usr/share/cmon/templates/my57.cnf.galera fra:
[email protected]@sqldat.com
Til:
max_connections=50
Gem tekstfilen, og sørg for, at ClusterControl bruger den korrekte basisskabelonfil i dialogboksen Implementer databaseklynge:
Klik på knappen Implementer for at starte implementeringen af databaseklyngen.
Eksempel på konfigurationsskabelon efter implementering
Efter at databaseklynge-implementeringen er fuldført, har du muligvis lavet nogle finjusteringer på de kørende servere, før du beslutter dig for at skalere den op. Ved opskalering vil ClusterControl bruge konfigurationsskabelonen inde i CMON-databasen (den der er udfyldt under ClusterControl -> Konfigurationer -> Skabeloner) til at implementere de nye noder. Husk derfor at anvende den ændring du lavede på databaseserveren på skabelonfilen.
Før du tilføjer en ny node, er det en god praksis at gennemgå konfigurationsskabelonen for at sikre, at den nye node får, hvad vi forventede. Gå derefter til ClusterControl -> Tilføj node og sørg for, at den korrekte MySQL-skabelonfil er valgt:
Klik derefter på knappen "Tilføj node" for at starte implementeringen.
Det er det. Selvom ClusterControl udfører forskellige automatiseringsjob, når det kommer til implementering, giver det stadig brugerne frihed til at tilpasse implementeringen i overensstemmelse hermed. Glædelig klyngedannelse!