sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man hanterar konfigurationsmallar för dina databaser med ClusterControl

ClusterControl gör det enkelt att distribuera en databasinstallation - fyll bara i några värden (databasleverantör, databasdatakatalog, lösenord och värdnamn) i distributionsguiden så är du igång. Resten av konfigurationsalternativen kommer att bestämmas (och beräknas) automatiskt baserat på värdspecifikationerna (CPU-kärnor, minne, IP-adress etc) och tillämpas på mallfilen som följer med ClusterControl. I det här blogginlägget ska vi titta på hur ClusterControl använder standardmallfiler och hur användare kan anpassa dem efter sina behov.

Basmallfiler

Alla tjänster som konfigurerats av ClusterControl använder en baskonfigurationsmall tillgänglig under /usr/share/cmon/templates på ClusterControl-noden. Följande är mallfiler som tillhandahålls av ClusterControl v1.4.0:

Filnamn Beskrivning
config.ini.mc MySQL-klusterkonfigurationsfil.
haproxy.cfg HAProxy-konfigurationsmall för Galera Cluster.
haproxy_rw_split.cfg HAProxy-konfigurationsmall för läs-skriv-delning.
garbd.cnf Galera arbitrator daemon (garbd) konfigurationsfil.
keepalived-1.2.7.conf Äldre keepalived-konfigurationsfil (före 1.2.7). Detta är föråldrat.
keepalived.conf Bevarad konfigurationsfil.
keepalived.init Bevarat init-skript.
MaxScale_template.cnf MaxScale-konfigurationsmall.
mongodb-2.6.conf.org MongoDB 2.x-konfigurationsmall.
mongodb.conf.org MongoDB 3.x-konfigurationsmall.
mongodb.conf.percona MongoDB 3.x-konfigurationsmall för Percona Server för MongoDB.
mongos.conf.org Konfigurationsmall för Mongo-router (mongos).
my.cnf.galera MySQL-konfigurationsmall för Galera Cluster.
my57.cnf.galera MySQL-konfigurationsmall för Galera Cluster på MySQL 5.7.
my.cnf.grouprepl MySQL-konfigurationsmall för MySQL-gruppreplikering.
my.cnf.gtid_replication MySQL-konfigurationsmall för MySQL-replikering med GTID.
my.cnf.mysqlcluster MySQL-konfigurationsmall för MySQL-kluster.
my.cnf.pxc55 MySQL-konfigurationsmall för Percona XtraDB Cluster v5.5.
my.cnf.repl57 MySQL-konfigurationsmall för MySQL-replikering v5.7.
my.cnf.replication MySQL-konfigurationsmall för MySQL/MariaDB utan MySQL:s GTID.
mysqlchk.galera Skriptmall för MySQL-hälsokontroll för Galera Cluster.
mysqlchk.mysql MySQL-hälsokontrollskriptmall för MySQL-replikering.
mysqlchk_xinetd Xinetd-konfigurationsmall för MySQL-hälsokontroll.
mysqld.service.override Systemd-enhetsfilmall för MySQL-tjänsten.
proxysql_template.cnf ProxySQL-konfigurationsmall.

Listan ovan beror på funktionsuppsättningen som tillhandahålls av den installerade ClusterControl-versionen. I en äldre version kanske du inte hittar några av dem. Du kan ändra dessa mallfiler direkt, även om vi inte rekommenderar det som förklaras i nästa avsnitt.

Configuration Manager

Beroende på klustertyp kommer ClusterControl sedan importera den nödvändiga basmallfilen till CMON-databasen och tillgänglig via Hantera -> Konfigurationer -> Mallar när distributionen lyckas. Tänk till exempel på följande konfigurationsmall för ett MariaDB Galera-kluster:

ClusterControl kommer att ladda basmallinnehållet för Galera-konfigurationsmallen från /usr/share/cmon/templates/my.cnf.galera till CMON-databasen (inuti tabellen cluster_configuration_templates) efter att implementeringen har lyckats. Du kan sedan anpassa din egen konfigurationsfil direkt i ClusterControl UI. När du trycker på knappen Spara kommer den nya versionen av konfigurationsmallen att lagras i CMON-databasen, utan att skriva över basmallfilen.

När klustret har distribuerats och körs har mallen i användargränssnittet företräde. Basmallfilen används endast under den första klusterdistributionen via ClusterControl -> Deploy -> Deploy Database Cluster. Under distributionsstadiet kommer ClusterControl att använda en tillfällig katalog som finns på /var/tmp/ för att förbereda innehållet, till exempel:

/var/tmp/cmon-003862-6a7775ca76c62486.tmp

Dynamiska variabler

Det finns ett antal konfigurationsvariabler som kan konfigureras dynamiskt av ClusterControl. Dessa variabler representeras med versaler omgivna av tecknet '@', till exempel @[email protected] För fullständig information om variabler som stöds, se den här sidan. Dynamiska variabler konfigureras automatiskt baserat på indata som anges under klusterdistribution, eller så utför ClusterControl automatisk detektering baserat på värdnamn, IP-adress, tillgängligt RAM, antal CPU-kärnor och så vidare. Detta förenklar driftsättningen där du bara behöver ange minimala alternativ under klusterdistributionen

Om den dynamiska variabeln ersätts med ett värde (eller odefinierat), kommer ClusterControl att hoppa över det och använda det konfigurerade värdet istället. Detta är praktiskt för avancerade användare, där de vanligtvis har sin egen uppsättning konfigurationsalternativ som är skräddarsydda för specifika databasarbetsbelastningar.

Exempel på konfigurationsmall före distribution

Istället för att förlita oss på ClusterControls dynamiska variabel på antalet max_connections för våra databasnoder, kan vi ändra följande rad inuti /usr/share/cmon/templates/my57.cnf.galera, från:

[email protected]@sqldat.com

Till:

max_connections=50

Spara textfilen och se till att ClusterControl använder rätt basmall i dialogrutan Distribuera databaskluster:

Klicka på knappen Distribuera för att starta distributionen av databaskluster.

Exempel på konfigurationsmall efter implementering

När distributionen av databasklustret är klar kan du ha finjusterat de körande servrarna innan du bestämmer dig för att skala upp den. När du skalar upp kommer ClusterControl att använda konfigurationsmallen i CMON-databasen (den som fylls i under ClusterControl -> Konfigurationer -> Mallar) för att distribuera de nya noderna. Kom därför ihåg att tillämpa ändringen du gjorde på databasservern på mallfilen.

Innan du lägger till en ny nod är det en god praxis att granska konfigurationsmallen för att säkerställa att den nya noden får vad vi förväntade oss. Gå sedan till ClusterControl -> Lägg till nod och se till att rätt MySQL-mallfil är vald:

Klicka sedan på knappen "Lägg till nod" för att starta implementeringen.

Det är allt. Även om ClusterControl utför olika automatiseringsjobb när det kommer till driftsättning, ger det fortfarande frihet för användarna att anpassa implementeringen därefter. Lycka till med klustringen!


  1. Hur ändrar man strukturen för MongoDB:s kartreducerande resultat?

  2. Om char b-prefix i Python3.4.1-klienten anslut till redis

  3. Redis vs. MongoDB:Jämför in-memory-databaser med Percona Memory Engine

  4. MongoDB:Fruktansvärda MapReduce Performance