common_linux:galera_cluster
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
common_linux:galera_cluster [2022/08/23 12:44] – root | common_linux:galera_cluster [2024/12/21 19:00] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 3: | Строка 3: | ||
\\ Для небольшой инсталляции будет использовано две ноды MariaDB, а для создания нечетного количества нод будет добавлен арбитр - сервис garbd (https:// | \\ Для небольшой инсталляции будет использовано две ноды MariaDB, а для создания нечетного количества нод будет добавлен арбитр - сервис garbd (https:// | ||
\\ Если планируется использовать 3 ноды репликации, | \\ Если планируется использовать 3 ноды репликации, | ||
- | {{ :common_linux: | + | {{ common_linux: |
Сервис арбитража будет установлен на ноду балансировки нагрузки. В качестве балансировщика используется haproxy. | Сервис арбитража будет установлен на ноду балансировки нагрузки. В качестве балансировщика используется haproxy. | ||
\\ В данном примере будет задействован только один балансировщик, | \\ В данном примере будет задействован только один балансировщик, | ||
+ | ^ Наименование узла | ||
+ | | db-msql-01 | ||
+ | | db-msql-02 | ||
+ | | db-sql | ||
- | + | ===== Установка Maria DB и включение механизма репликации===== | |
- | ===== Установка Maria DB ===== | + | Перед инсталляцией необходимо обновить ОС и пакеты на **всех** узлах: |
- | Перед инсталляцией необходимо обновить ОС и пакеты на всех узлах: | + | |
<code bash> | <code bash> | ||
apt update && apt upgrade -yy | apt update && apt upgrade -yy | ||
</ | </ | ||
- | Установка Maria DB на нодах db-msql-01 и db-msql-02: | + | |
- | <code bash | download> | + | Если в сети отсутствует DNS-сервер, |
- | apt install mariadb | + | <code bash> |
+ | nano /etc/hosts | ||
</ | </ | ||
+ | <code ini> | ||
+ | 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 | ||
+ | </ | ||
+ | Установка Maria DB на нодах **db-msql-01** и **db-msql-02**: | ||
+ | <code bash > | ||
+ | apt-get install mariadb-server -y | ||
+ | </ | ||
+ | |||
+ | Запускаем первоначальную настройку на нодах **db-msql-01** и **db-msql-02**: | ||
+ | <code bash> | ||
+ | mysql_secure_installation | ||
+ | </ | ||
+ | <code ini> | ||
+ | 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** | ||
+ | <code bash> | ||
+ | nano / | ||
+ | </ | ||
+ | <code ini | galera.cnf> | ||
+ | [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=/ | ||
+ | |||
+ | # Galera Cluster Configuration | ||
+ | wsrep_cluster_name=" | ||
+ | wsrep_cluster_address=" | ||
+ | |||
+ | # Galera Synchronization Configuration | ||
+ | wsrep_sst_method=rsync | ||
+ | |||
+ | # Galera Node Configuration | ||
+ | wsrep_node_address=" | ||
+ | wsrep_node_name=" | ||
+ | </ | ||
+ | |||
+ | На нодах db-msql-01 и db-msql-02 останавливаем службу mariadb: | ||
+ | <code bash> | ||
+ | systemctl stop mariadb | ||
+ | </ | ||
+ | На первой ноде db-msql-01 запустить скрипт создания кластера galera: | ||
+ | <code bash> | ||
+ | galera_new_cluster | ||
+ | </ | ||
+ | На второй ноде db-msql-02 запустить службу mariadb: | ||
+ | <code bash> | ||
+ | systemctl start mariadb | ||
+ | </ | ||
+ | На любом из узлов db-msql-01 или db-msql-02 выполнить проверку количества узлов в кластере (количество должно быть равно 2): | ||
+ | <code bash> | ||
+ | root@db-msql-01: | ||
+ | Enter password: | ||
+ | +--------------------+-------+ | ||
+ | | Variable_name | ||
+ | +--------------------+-------+ | ||
+ | | wsrep_cluster_size | 2 | | ||
+ | +--------------------+-------+ | ||
+ | </ | ||
+ | Устанавливаем службу арбитрации на узле db-sql: | ||
+ | <code bash> | ||
+ | apt-get install galera-arbitrator-4 | ||
+ | </ | ||
+ | Редактируем конфигурационный файл / | ||
+ | <code ini | garb> | ||
+ | GALERA_NODES=" | ||
+ | GALERA_GROUP=" | ||
+ | </ | ||
+ | Запускаем службу garbd: | ||
+ | <code bash> | ||
+ | systemctl status garbd | ||
+ | </ | ||
+ | Если все сделали правильно, | ||
+ | <code bash> | ||
+ | root@db-msql-01: | ||
+ | Enter password: | ||
+ | +--------------------+-------+ | ||
+ | | Variable_name | ||
+ | +--------------------+-------+ | ||
+ | | wsrep_cluster_size | 3 | | ||
+ | +--------------------+-------+ | ||
+ | </ | ||
+ | |||
+ | ===== Установка haproxy и настройка балансировки ===== | ||
+ | На узлах db-msql-01 и db-msql-02 необходимо отредактировать значение параметра **bind-address** в файле конфигурации **/ | ||
+ | <code ini> | ||
+ | # Instead of skip-networking the default is now to listen only on | ||
+ | # localhost which is more compatible and is not less secure. | ||
+ | bind-address | ||
+ | </ | ||
+ | После необходимо перезапустить службу mariadb: | ||
+ | <code bash> | ||
+ | systemctl restart mariadb.service | ||
+ | </ | ||
+ | Далее на любой из нод необходимо выполнить вход в sql-кдлиент и создать пользователя для haproxy: | ||
+ | <code bash> | ||
+ | root@db-msql-01: | ||
+ | Enter password: | ||
+ | MariaDB [(none)]> | ||
+ | MariaDB [(none)]> | ||
+ | </ | ||
+ | |||
+ | На узле db-sql устанавливаем пакет haproxy: | ||
+ | <code bash> | ||
+ | apt-get install haproxy | ||
+ | </ | ||
+ | В конфигурационный файл **/ | ||
+ | <code ini | haproxy.cfg> | ||
+ | listen galera | ||
+ | bind 192.168.100.39: | ||
+ | | ||
+ | mode tcp | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | Перезагружаем службу haproxy и проверяем статус: | ||
+ | <code bash> | ||
+ | systemctl reload haproxy.service | ||
+ | systemctl status haproxy.service | ||
+ | ● haproxy.service - HAProxy Load Balancer | ||
+ | | ||
+ | | ||
+ | Docs: man: | ||
+ | | ||
+ | Main PID: 23096 (haproxy) | ||
+ | Tasks: 3 (limit: 4612) | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Aug 22 14:18:15 db-sql haproxy[23488]: | ||
+ | Aug 22 14:18:15 db-sql haproxy[23488]: | ||
+ | Aug 22 14:18:15 db-sql haproxy[23488]: | ||
+ | Aug 22 14:18:15 db-sql haproxy[23488]: | ||
+ | Aug 22 14:18:15 db-sql haproxy[23953]: | ||
+ | Aug 22 14:18:15 db-sql haproxy[23096]: | ||
+ | Aug 22 14:18:16 db-sql haproxy[23953]: | ||
+ | Aug 22 14:18:16 db-sql haproxy[23953]: | ||
+ | Aug 22 14:26:19 db-sql haproxy[23953]: | ||
+ | Aug 22 14:26:20 db-sql haproxy[23953]: | ||
+ | </ | ||
+ |
common_linux/galera_cluster.1661247876.txt.gz · Последнее изменение: 2024/12/21 19:00 (внешнее изменение)