ClusterControl ułatwia wdrożenie konfiguracji bazy danych — wystarczy wpisać kilka wartości (dostawca bazy danych, katalog danych bazy danych, hasło i nazwy hostów) w kreatorze wdrażania i gotowe. Pozostałe opcje konfiguracji zostaną automatycznie określone (i obliczone) na podstawie specyfikacji hosta (rdzenie procesora, pamięć, adres IP itp.) i zastosowane do pliku szablonu dostarczanego z ClusterControl. W tym poście na blogu przyjrzymy się, w jaki sposób ClusterControl używa domyślnych plików szablonów i jak użytkownicy mogą dostosować je do swoich potrzeb.
Pliki szablonów podstawowych
Wszystkie usługi skonfigurowane przez ClusterControl używają podstawowego szablonu konfiguracji dostępnego w katalogu /usr/share/cmon/templates w węźle ClusterControl. Poniżej znajdują się pliki szablonów dostarczane przez ClusterControl v1.4.0:
Nazwa pliku | Opis |
---|---|
config.ini.mc | Plik konfiguracyjny MySQL Cluster. |
haproxy.cfg | Szablon konfiguracji HAProxy dla klastra Galera. |
haproxy_rw_split.cfg | Szablon konfiguracji HAProxy do dzielenia odczytu i zapisu. |
garbd.cnf | Plik konfiguracyjny demona Galera arbitrator (garbd). |
keepalived-1.2.7.conf | Starszy plik konfiguracyjny keepalive (przed 1.2.7). To jest przestarzałe. |
keepalived.conf | Zachowany plik konfiguracyjny. |
keepalived.init | Zachowaj skrypt startowy. |
MaxScale_template.cnf | Szablon konfiguracji MaxScale. |
mongodb-2.6.conf.org | Szablon konfiguracji MongoDB 2.x. |
mongodb.conf.org | Szablon konfiguracji MongoDB 3.x. |
mongodb.conf.percona | Szablon konfiguracji MongoDB 3.x dla Percona Server dla MongoDB. |
mongos.conf.org | Szablon konfiguracji routera Mongo (mongos). |
my.cnf.galera | Szablon konfiguracji MySQL dla klastra Galera. |
my57.cnf.galera | Szablon konfiguracji MySQL dla klastra Galera na MySQL 5.7. |
my.cnf.grouprepl | Szablon konfiguracji MySQL dla replikacji grupowej MySQL. |
my.cnf.gtid_replication | Szablon konfiguracji MySQL dla replikacji MySQL z GTID. |
my.cnf.mysqlcluster | Szablon konfiguracji MySQL dla klastra MySQL. |
my.cnf.pxc55 | Szablon konfiguracji MySQL dla klastra Percona XtraDB v5.5. |
my.cnf.repl57 | Szablon konfiguracji MySQL dla replikacji MySQL w wersji 5.7. |
my.cnf.replication | Szablon konfiguracji MySQL dla MySQL/MariaDB bez identyfikatora GTID MySQL. |
mysqlchk.galera | Szablon skryptu kontroli stanu MySQL dla klastra Galera. |
mysqlchk.mysql | Szablon skryptu kontroli stanu MySQL dla replikacji MySQL. |
mysqlchk_xinetd | Szablon konfiguracji Xinetd do kontroli stanu MySQL. |
mysqld.service.override | Szablon pliku jednostki systemowej dla usługi MySQL. |
proxysql_template.cnf | Szablon konfiguracji ProxySQL. |
Powyższa lista zależy od zestawu funkcji zapewnianego przez zainstalowaną wersję ClusterControl. W starszej wersji niektórych z nich możesz nie znaleźć. Możesz modyfikować te pliki szablonów bezpośrednio, chociaż nie zalecamy tego, jak wyjaśniono w następnych sekcjach.
Menedżer konfiguracji
W zależności od typu klastra, ClusterControl zaimportuje następnie niezbędny plik szablonu podstawowego do bazy danych CMON i będzie dostępny poprzez Zarządzaj -> Konfiguracje -> Szablony po pomyślnym wdrożeniu. Rozważmy na przykład następujący szablon konfiguracji dla klastra MariaDB Galera:
ClusterControl załaduje zawartość podstawowego szablonu szablonu konfiguracji Galera z /usr/share/cmon/templates/my.cnf.galera do bazy danych CMON (wewnątrz tabeli cluster_configuration_templates) po pomyślnym wdrożeniu. Następnie możesz dostosować swój własny plik konfiguracyjny bezpośrednio w interfejsie użytkownika ClusterControl. Za każdym razem, gdy naciśniesz przycisk Zapisz, nowa wersja szablonu konfiguracji zostanie zapisana w bazie danych CMON, bez nadpisywania podstawowego pliku szablonu.
Po wdrożeniu i uruchomieniu klastra szablon w interfejsie użytkownika ma pierwszeństwo. Podstawowy plik szablonu jest używany tylko podczas początkowego wdrażania klastra za pomocą ClusterControl -> Deploy -> Deploy Database Cluster. Na etapie wdrażania ClusterControl użyje tymczasowego katalogu znajdującego się w /var/tmp/ do przygotowania zawartości, na przykład:
/var/tmp/cmon-003862-6a7775ca76c62486.tmp
Zmienne dynamiczne
Istnieje wiele zmiennych konfiguracyjnych, które można konfigurować dynamicznie przez ClusterControl. Zmienne te są reprezentowane wielkimi literami otoczonymi znakiem „@”, na przykład @[email protected] Szczegółowe informacje na temat obsługiwanych zmiennych można znaleźć na tej stronie. Zmienne dynamiczne są automatycznie konfigurowane na podstawie danych wejściowych określonych podczas wdrażania klastra lub ClusterControl wykonuje automatyczne wykrywanie na podstawie nazwy hosta, adresu IP, dostępnej pamięci RAM, liczby rdzeni procesora i tak dalej. Upraszcza to wdrożenie, w którym wystarczy określić minimalne opcje na etapie wdrażania klastra
Jeśli dynamiczna zmienna zostanie zastąpiona wartością (lub niezdefiniowaną), ClusterControl pominie ją i zamiast tego użyje skonfigurowanej wartości. Jest to przydatne dla zaawansowanych użytkowników, którzy zwykle mają własny zestaw opcji konfiguracyjnych dostosowanych do określonych obciążeń bazy danych.
Przykład szablonu konfiguracji przed wdrożeniem
Zamiast polegać na zmiennej dynamicznej ClusterControl na liczbie max_connections dla naszych węzłów bazy danych, możemy zmienić następującą linię wewnątrz /usr/share/cmon/templates/my57.cnf.galera, z:
[email protected]@sqldat.com
Do:
max_connections=50
Zapisz plik tekstowy i w oknie dialogowym Wdróż klaster bazy danych upewnij się, że ClusterControl używa prawidłowego pliku szablonu bazowego:
Kliknij przycisk Wdróż, aby rozpocząć wdrażanie klastra bazy danych.
Przykład szablonu konfiguracji po wdrożeniu
Po zakończeniu wdrażania klastra bazy danych przed podjęciem decyzji o skalowaniu w górę można było dokonać drobnego dostrojenia działających serwerów. Podczas skalowania w górę, ClusterControl użyje szablonu konfiguracji w bazie danych CMON (ten, który znajduje się w ClusterControl -> Konfiguracje -> Szablony), aby wdrożyć nowe węzły. Dlatego pamiętaj, aby zastosować modyfikacje wprowadzone na serwerze bazy danych do pliku szablonu.
Przed dodaniem nowego węzła dobrą praktyką jest przejrzenie szablonu konfiguracji, aby upewnić się, że nowy węzeł otrzyma to, czego oczekiwaliśmy. Następnie przejdź do ClusterControl -> Dodaj węzeł i upewnij się, że wybrany jest poprawny plik szablonu MySQL:
Następnie kliknij przycisk „Dodaj węzeł”, aby rozpocząć wdrażanie.
Otóż to. Mimo że ClusterControl wykonuje różne zadania automatyzacji, jeśli chodzi o wdrażanie, nadal zapewnia użytkownikom swobodę odpowiedniego dostosowania wdrożenia. Miłego klastrowania!