Системы управления базами данных
Pacemaker позволяет управлять поведением ресурсов при отказах и восстановлении узлов с помощью параметров:
- resource-stickiness – желательность оставаться на текущем узле;
- migration-threshold – количество отказов, после которых ресурс перемещается;
- failure-timeout – интервал, после которого считается, что сбой более неактуален;
- multiple-active – поведение при запуске ресурса на нескольких узлах;
- monitor – периодическая проверка состояния ресурса (указывается через параметр interval). Уровень кворума определяет возможность функционирования кластера. По умолчанию кластер считается работоспособным при наличии более 50% работоспособных узлов. Поведение при потере кворума задаётся параметром no-quorum-policy. Pacemaker поддерживает разнообразные схемы отказоустойчивости: Active/Passive, Active/Active, N+1, N-to-1 и другие. схемы Необходимо выбирать схему отказоустойчивости, соответствующую выбранной модели развертывания.
Доступные СУБД
Данный раздел содержит пошаговую инструкцию по развёртыванию кластера высокой доступности на двух серверах под управлением ОС РОСА "ХРОМ" с использованием компонентов Pacemaker и Corosync. В качестве примера рассматривается настройка кластера с веб-сервером Nginx:
- Подготовка Системы.
На всех узлах, планируемых к объединению в кластер, необходимо внести записи в файл /etc/hosts, чтобы обеспечить корректное разрешение имён.
Пример содержимого файла /etc/hosts:
Редактирование может быть выполнено с использованием любого доступного текстового редактора.
10.45.4.58 webserver-01 10.45.4.59 webserver-02 - Установка и первичная настройка Nginx.
На каждом сервере устанавливается веб-сервер Nginx с помощью менеджера пакетов. После установки служба добавляется в автозагрузку и запускается командами:
Для визуального различения узлов в кластере рекомендуется изменить содержимое страницы по умолчанию. На каждом сервере в файл /usr/share/nginx/html/index.html добавляется уникальная метка. На сервере webserver-01:
sudo dnf install nginx sudo systemctl enable nginx sudo systemctl start nginxНа сервере webserver-02:echo "<h1>webserver-01</h1>" >\ /usr/share/nginx/html/index.htmlecho "<h1>webserver-02</h1>" >\ /usr/share/nginx/html/index.html - Установка компонентов Pacemaker и Corosync.
Для настройки кластера устанавливаются пакеты corosync, pacemaker и pcsd. Указанные службы добавляются в автозагрузку и запускаются.
В процессе установки создаётся системный пользователь hacluster, необходимый для аутентификации между узлами. На всех узлах кластера для пользователя hacluster задаётся одинаковый пароль.
sudo dnf install corosync pacemaker sudo systemctl enable corosync sudo systemctl enable pacemaker sudo systemctl enable pcsd sudo systemctl start corosync sudo systemctl start pacemaker sudo systemctl start pcsdpasswd hacluster - Аутентификация и создание кластера.
После установки и настройки компонентов необходимо выполнить аутентификацию между узлами с использованием утилиты pcs:
Затем создаётся кластер с именем rosacluster, включающий оба сервера:
sudo pcs cluster auth webserver-01 webserver-02Для корректного функционирования кластера рекомендуется повторно включить службы в автозагрузку и перезагрузить Систему:sudo pcs cluster setup --force --name rosacluster webserver-01 webserver-02sudo systemctl enable corosync sudo systemctl enable pacemaker sudo systemctl enable pcsd reboot - Проверка состояния кластера после перезагрузки с помощью команды:
pcs status
PostgreSQL
MySQL
STONITH (Shoot-The-Other-Node-In-The-Head) представляет собой механизм аппаратного ограждения, применяемый для исключения повреждения общих ресурсов в случае отказа узла. В производственной среде рекомендуется включать STONITH и использовать совместимые устройства управления питанием или IPMI. Однако в демонстрационных или тестовых средах при отсутствии таких устройств функцию STONITH допускается отключить.
При отсутствии настроенных устройств STONITH при выполнении команды pcs status в выводе будет отображаться предупреждение.
Для отключения STONITH в кластере выполняется команда:
sudo pcs property set stonith-enabled=false
SQLITE
По умолчанию кластер прекращает управление ресурсами, если теряет кворум (менее половины активных узлов). Для тестовой конфигурации, в частности двухузлового кластера, может быть необходимо отключить реакцию на потерю кворума. Это осуществляется с помощью настройки no-quorum-policy.
Отключение реакции на потерю кворума выполняется следующей командой:
sudo pcs property set no-quorum-policy=ignore
Текущие свойства кластера можно просмотреть командой:
pcs property list