Системы управления базами данных

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 с помощью менеджера пакетов. После установки служба добавляется в автозагрузку и запускается командами:
    sudo dnf install nginx
    sudo systemctl enable nginx
    sudo systemctl start nginx
    
    Для визуального различения узлов в кластере рекомендуется изменить содержимое страницы по умолчанию. На каждом сервере в файл /usr/share/nginx/html/index.html добавляется уникальная метка. На сервере webserver-01:
    echo "<h1>webserver-01</h1>" >\ /usr/share/nginx/html/index.html
    
    На сервере webserver-02:
    echo "<h1>webserver-02</h1>" >\ /usr/share/nginx/html/index.html
    
  • Установка компонентов Pacemaker и Corosync. Для настройки кластера устанавливаются пакеты corosync, pacemaker и pcsd. Указанные службы добавляются в автозагрузку и запускаются.
    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 pcsd
    
    В процессе установки создаётся системный пользователь hacluster, необходимый для аутентификации между узлами. На всех узлах кластера для пользователя hacluster задаётся одинаковый пароль.
    passwd hacluster
    
  • Аутентификация и создание кластера. После установки и настройки компонентов необходимо выполнить аутентификацию между узлами с использованием утилиты pcs:
    sudo pcs cluster auth webserver-01 webserver-02
    
    Затем создаётся кластер с именем rosacluster, включающий оба сервера:
    sudo pcs cluster setup --force --name rosacluster webserver-01 webserver-02
    
    Для корректного функционирования кластера рекомендуется повторно включить службы в автозагрузку и перезагрузить Систему:
    sudo 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