Это старая версия документа!
Кластер MariaDB (Galera Cluster)
Установка будет производиться на Ubuntu 20.04 LTS.
Для небольшой инсталляции будет использовано две ноды MariaDB, а для создания нечетного количества нод будет добавлен арбитр - сервис garbd (https://galeracluster.com/library/documentation/arbitrator.html)
Если планируется использовать 3 ноды репликации, то арбитр не требуется.
Сервис арбитража будет установлен на ноду балансировки нагрузки. В качестве балансировщика используется haproxy.
В данном примере будет задействован только один балансировщик, он же будет являться единственной точкой отказа. Для серьезных инсталляций лучше использовать аппаратный балансировщик (типа Citrix Netscaler), либо несколько экземпляров haproxy, на которые в свою очередь ставиться keepalived демон, который создает общий виртуальный IP адрес.
Наименование узла | IP-адрес | Примечание |
---|---|---|
db-msql-01 | 192.168.100.37 | узел MariaBD |
db-msql-02 | 192.168.100.38 | узел MariaBD |
db-sql | 192.168.100.39 | Балансировщик и арбитр |
Установка Maria DB
Перед инсталляцией необходимо обновить ОС и пакеты на всех узлах:
apt update && apt upgrade -yy
Если в сети отсутствует DNS-сервер, то прописываем на каждом узле соответствие имен серверов их IP-адресам:
nano /etc/hosts
192.168.100.37 db-msql-01.virtlab.local db-msql-01 192.168.100.38 db-msql-02.virtlab.local db-msql-02 192.168.100.39 db-sql.virtlab.local db-sql
Установка Maria DB на нодах db-msql-01 и db-msql-02:
apt-get install mariadb-server -y
Запускаем первоначальную настройку на нодах db-msql-01 и db-msql-02:
mysql_secure_installation
Enter current password for root (enter for none): Set root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] Remove test database and access to it? [Y/n] Reload privilege tables now? [Y/n] y
Создадим и отредактируем файл конфигурации galera.cnf на нодах db-msql-01 и db-msql-02
nano /etc/mysql/conf.d/galera.cnf
- | download
[mysqld] binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 # Galera Provider Configuration wsrep_on=ON wsrep_provider=/usr/lib/galera/libgalera_smm.so # Galera Cluster Configuration wsrep_cluster_name="galera_cluster" wsrep_cluster_address="gcomm://192.168.100.37,192.168.100.38" # Galera Synchronization Configuration wsrep_sst_method=rsync # Galera Node Configuration wsrep_node_address="192.168.100.37" # для второй ноды указываем соответственно 192.168.100.38 wsrep_node_name="db-msql-01" # для второй ноды указываем соответственно db-msql-02