ClusterControl улеснява внедряването на настройка на база данни - просто попълнете някои стойности (доставчик на база данни, директория с данни на база данни, парола и имена на хостове) в съветника за внедряване и сте готови. Останалите опции за конфигурация ще бъдат автоматично определени (и изчислени) въз основа на спецификациите на хоста (ядра на процесора, памет, IP адрес и т.н.) и приложени към файла с шаблон, който идва с ClusterControl. В тази публикация в блога ще разгледаме как ClusterControl използва шаблонни файлове по подразбиране и как потребителите могат да ги персонализират според нуждите си.
Основни шаблонни файлове
Всички услуги, конфигурирани от ClusterControl, използват шаблон за базова конфигурация, достъпен в /usr/share/cmon/templates на възела ClusterControl. Следват шаблонни файлове, предоставени от ClusterControl v1.4.0:
Име на файл | Описание |
---|---|
config.ini.mc | Конфигурационен файл на MySQL Cluster. |
haproxy.cfg | Шаблон за конфигурация на HAProxy за Galera Cluster. |
haproxy_rw_split.cfg | Конфигурационен шаблон на HAProxy за разделяне на четене и запис. |
garbd.cnf | Конфигурационен файл на демона за арбитър на Galera (garbd). |
keepalived-1.2.7.conf | Наследен поддържащ конфигурационен файл (преди 1.2.7). Това е отхвърлено. |
keepalived.conf | Конфигурационен файл за запазване. |
keepalived.init | Запазете init скрипт. |
MaxScale_template.cnf | Шаблон за конфигурация на MaxScale. |
mongodb-2.6.conf.org | Шаблон за конфигурация на MongoDB 2.x. |
mongodb.conf.org | Шаблон за конфигурация на MongoDB 3.x. |
mongodb.conf.percona | Шаблон за конфигурация MongoDB 3.x за Percona Server за MongoDB. |
mongos.conf.org | Шаблон за конфигурация на рутера Mongo (mongos). |
my.cnf.galera | Шаблон за конфигурация на MySQL за Galera Cluster. |
my57.cnf.galera | Шаблон за конфигурация на MySQL за Galera Cluster на MySQL 5.7. |
my.cnf.grouprepl | Шаблон за конфигурация на MySQL за репликация на MySQL група. |
my.cnf.gtid_replication | Шаблон за конфигурация на MySQL за MySQL репликация с GTID. |
my.cnf.mysqlcluster | Шаблон за конфигурация на MySQL за MySQL клъстер. |
my.cnf.pxc55 | Шаблон за конфигурация на MySQL за Percona XtraDB Cluster v5.5. |
my.cnf.repl57 | Шаблон за конфигурация на MySQL за MySQL репликация v5.7. |
my.cnf.replication | Шаблон за конфигурация на MySQL за MySQL/MariaDB без GTID на MySQL. |
mysqlchk.galera | Шаблон на скрипт за проверка на състоянието на MySQL за Galera Cluster. |
mysqlchk.mysql | Шаблон на скрипт за проверка на състоянието на MySQL за репликация на MySQL. |
mysqlchk_xinetd | Шаблон за конфигурация на Xinetd за проверка на състоянието на MySQL. |
mysqld.service.override | Шаблон на файлов системен модул за услугата MySQL. |
proxysql_template.cnf | Шаблон за конфигурация на ProxySQL. |
Горният списък зависи от набора от функции, предоставен от инсталираната версия на ClusterControl. В по-стара версия може да не намерите някои от тях. Можете да променяте тези шаблонни файлове директно, въпреки че ние не го препоръчваме, както е обяснено в следващите раздели.
Мениджър на конфигурацията
В зависимост от типа на клъстера, ClusterControl ще импортира необходимия файл с основен шаблон в базата данни CMON и ще бъде достъпен чрез Управление -> Конфигурации -> Шаблони, след като разполагането е успешно. Например, помислете за следния шаблон за конфигурация за MariaDB Galera Cluster:
ClusterControl ще зареди съдържанието на основния шаблон на конфигурационния шаблон на Galera от /usr/share/cmon/templates/my.cnf.galera в база данни CMON (вътре в таблицата cluster_configuration_templates), след като разполагането е успешно. След това можете да персонализирате своя собствен конфигурационен файл директно в потребителския интерфейс на ClusterControl. Всеки път, когато натиснете бутона Save, новата версия на шаблона за конфигурация ще бъде съхранена в базата данни CMON, без да се презаписва основният шаблонен файл.
След като клъстерът е разгърнат и работи, шаблонът в потребителския интерфейс има предимство. Файлът с основния шаблон се използва само по време на първоначалното разгръщане на клъстер чрез ClusterControl -> Разгръщане -> Разгръщане на клъстер на база данни. По време на етапа на внедряване, ClusterControl ще използва временна директория, разположена на /var/tmp/, за да подготви съдържанието, например:
/var/tmp/cmon-003862-6a7775ca76c62486.tmp
Динамични променливи
Има редица конфигурационни променливи, които могат да се конфигурират динамично от ClusterControl. Тези променливи са представени с главни букви, оградени със знак „@“, например @[email protected] За пълни подробности относно поддържаните променливи, моля, вижте тази страница. Динамичните променливи се конфигурират автоматично въз основа на входа, определен по време на разгръщането на клъстер, или ClusterControl извършва автоматично откриване въз основа на име на хост, IP адрес, налична RAM, брой ядра на процесора и т.н. Това опростява внедряването, където трябва само да посочите минимални опции по време на етапа на внедряване на клъстер
Ако динамичната променлива е заменена със стойност (или недефинирана), ClusterControl ще я пропусне и вместо това ще използва конфигурираната стойност. Това е удобно за напреднали потребители, които обикновено имат свой собствен набор от опции за конфигурация, пригодени за конкретни натоварвания на база данни.
Пример за конфигурационен шаблон преди внедряване
Вместо да разчитаме на динамичната променлива на ClusterControl за броя на max_connections за нашите възли на базата данни, можем да променим следния ред в /usr/share/cmon/templates/my57.cnf.galera, от:
[email protected]@sqldat.com
До:
max_connections=50
Запазете текстовия файл и в диалоговия прозорец Разгръщане на клъстер на база данни се уверете, че ClusterControl използва правилния основен шаблонен файл:
Щракнете върху бутона Разгръщане, за да започнете внедряването на клъстера на базата данни.
Пример за конфигурационен шаблон след внедряване
След като разгръщането на клъстера на базата данни завърши, може да сте направили някои фини настройки на работещите сървъри, преди да решите да го увеличите. Когато увеличава мащаба, ClusterControl ще използва конфигурационния шаблон в базата данни CMON (този, попълнен в ClusterControl -> Конфигурации -> Шаблони), за да разгърне новите възли. Затова не забравяйте да приложите модификацията, която сте направили на сървъра на базата данни, към файла с шаблон.
Преди да добавите нов възел, добра практика е да прегледате шаблона за конфигурация, за да се уверите, че новият възел получава това, което очаквахме. След това отидете на ClusterControl -> Добавяне на възел и се уверете, че е избран правилният шаблон на MySQL:
След това щракнете върху бутона „Добавяне на възел“, за да започнете внедряването.
Това е. Въпреки че ClusterControl изпълнява различни задачи за автоматизация, когато става въпрос за внедряване, той все пак предоставя свобода на потребителите да персонализират съответно внедряването. Приятно групиране!