Связаться по Skype: vkarabedyants
Позвонить Написать
+7 (499) 404-28-83

Блог о системном администрировании серверов и сайтов

Установка, настройка программного обеспечения Linux, Windows операционных систем

Установка MariaDB Galera для управления кластером репликации

Как установить и настроить мастер MariaDB Galera для управления кластером на сервере Ubuntu Linux 16.04 LTS, чтобы получить масштабируемость как для чтения, так и для записи?

MariaDB Galera Cluster является открытым исходным кодом и бесплатным синхронным мульти-мастер-кластером для базы данных MariaDB. Он доступен только в Linux и поддерживает только системы хранения XtraDB / InnoDB. Существует экспериментальная поддержка MyISAM, но она недостаточно проверена. Начиная с MariaDB 10.1, wsrep API для Galera Cluster включен по умолчанию.

Преимущества кластера Galera

  1. True Multi-master. Чтение и запись на любой узел в любое время.
  2. Синхронная репликация. Отсутствует ведомое устройство, данные не теряются при сбое узла.
  3. Tightly Coupled. Все узлы имеют одинаковое состояние. Нет разнесенных данных между разрешенными узлами.
  4. Многопоточный Slave. Для лучшей производительности. Для любой рабочей нагрузки.
  5. Нет операций переключения мастер-слэйва или использования VIP.
  6. Горячий режим ожидания. Отсутствие простоев при переходе на другой ресурс (так как нет перехода на другой ресурс).
  7. Автоматическое создание узлов. Не нужно вручную создавать резервную копию базы данных и копировать ее на новый узел.
  8. Поддерживает InnoDB.
  9. Прозрачный для приложений. Требуется минимальные изменения в приложении или вообще не трубует изменений.
  10. Нет необходимости разделения чтения и записи.
  11. Результатом этого является решение высокой доступности, которое является одновременно надежным с точки зрения целостности данных и высокой производительности с отказоустойчивостью.

кластер базы данных

Galera Cluster для MariaDB — это простое в использовании решение с высокой доступностью, которое обеспечивает высокую производительность системы, отсутствие потери данных и масштабируемость для будущего роста. Вы можете настроить его следующим образом

  1. Между двумя центрами обработки данных (кластер для центров обработки данных). Для целей безопасности вы должны настроить VPN и MariaDB через SSL .
  2. В вашей локальной сети / VLAN (единый кластер центра обработки данных) — VPN не требуется, но вы должны настроить MariaDB через SSL .

Что нужно для установки кластера высокой доступности MariaDB Galera?

  1. Минимум два сервера (могут быть облачные или физические). Для промышленного используйте четыре сервера (рекомендуется минимум три сервера).
  2. Частная сеть (LAN / VLAN) между серверами
  3. VPN между двумя центрами обработки данных, если устанавливается между двумя IDC
  4. Ubuntu Linux 16.04 LTS на обоих серверах

Давайте приступим к установке и настройке MariaDB Galera на Ubuntu.

Шаг 1 — Настройка /etc/hosts

Отредактируйте файлы setup /etc/hosts на обоих серверах :

Установите правильный частный IP-адрес согласно рис. 01 или согласно настройке:

Закройте и сохраните файл. Проверьте:

Шаг 2. Включение репозиториев MariaDB для версии 10.1.

Введите следующие команды, чтобы разрешить репозиториям mariadb установить версию 10.1 на обоих серверах :

Пример результата:

галера кластер

Шаг 3. Установите сервер MariaDB v10.1 на Ubuntu Linux.

Введите следующую команду apt-get command / apt на обоих серверах :

Пример результата:

настройка galera mariadb

Вы должны установить пароль пользователя MariaDB root:

установка базы данных

Шаг 4. Создание SSL-сертификатов для кластера MariaDB Galera

Введите следующие команды для создания сертификата CA, сервера и клиента, чтобы мы могли иметь защищенные зашифрованные соединения между узлами с использованием протокола SSL. Это включает как соединения между клиентами базы данных и серверами через стандартную поддержку SSL в MySQL, так и шифрование трафика репликации, в частности к самому Galera Cluster. Реализация SSL распространяется по всему кластеру и не поддерживает аутентификацию для трафика репликации. Вы должны включить SSL для всех узлов в кластере или ни для одного из них:

Чтобы избежать проблем, я устанавливаю их общее имя следующим образом:

  1. Общее имя CA: MariaDB admin
  2. Общее имя сервера: MariaDB server
  3. Клиентское общее имя: MariaDB client

Настройка клиента и сервера mysql для ssl

Отредактируйте файл /etc/mysql/my.cnf:

Найдите и обновите раздел [клиент] следующим образом:

Найдите и обновите раздел [mysqld] следующим образом:

Сохраните и закройте файл.

Установка сертификатов на других узлах

Копирование сертификатов во все остальные узлы:

Шаг 5. Настройте сервер кластера MariaDB Galera.

Создайте на обоих серверах следующий файл:

Добавьте следующий текст на сервере mdb01 :

Добавьте следующий текст на сервере mdb02 :

Сохраните и закройте файл.

Шаг 6. Запустите кластер MariaDB на сервере mdb01.

Введите следующую команду:

Начальная загрузка кластера

Начальная загрузка — инициализация кластера. Введите следующую команду на сервере mdb01 :

Убедитесь, что MySQL запущен:

Убедитесь, что SSL работает

Введите следующую команду

Убедитесь, что кластер работает

Введите следующую команду, чтобы проверить, что кластер и первый узел работают:

Пример результата:

загрузка кластера базы данных

Шаг 7. Присоединитесь к кластеру MariaDB на сервере mdb02.

Введите следующую команду на сервере mdb01 , чтобы присоединиться к кластеру mdb01:

Проверьте:

Результат:

Обратите внимание, что значение 2 указывает, что в нашем кластере есть два мастер-узла для управления узлом. Если вы присоединитесь к третьему узлу, он должен быть следующим:

Ниже приведена дополнительная информация о вашем кластере:

Теперь вы можете создать базу данных и таблицу на любом узле, и она будет реплицироваться на обоих узлах:

От второго узла проверьте его:

Примеры результатов:

Вы можете выполнить миграцию из автономной среды MariaDB в кластерную установку следующим образом:

Необходима настройка или сопровождение кластера базы данных, обращайтесь [email protected]

1 Response

  1. Dmitriy

    «Для промышленного используйте четыре сервера (рекомендуется минимум три сервера)» — Для промышленного использования лучше использовать нечетное количество нод (исключение ситуации когда между парами падает канал). Ничего не сказано про wsrep_sst_method=xtrabackup, этот метод более приемлем в продакшене так как не лочит базу в момент восстановления кластера или добавления нод.

Оставить комментарий

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.