|
Для стенда используется два компьютера:
Для развертывания кластера используются два подсоединенных к сети компьютера с установленной ОС Astra Linux. Каждый из этих компьютеров будет выполнять роль узла кластера, поэтому далее они будут называться Узел 1 и Узел 2:
| Параметр | Узел 1 | Узел 2 |
|---|---|---|
| Имя узла | pcmk-1 | pcmk-2 |
| Статический IP-адрес узла | 192.168.23.101 | 192.168.23.102 |
Для примера далее в качестве имен узлов кластера используются краткие имена хостов (имена, не содержащие доменную составляющую). При необходимости можно использовать полные имена хостов (содержащие доменную составляющую). Важно, чтобы для этих имен работало разрешение в IP-адреса и чтобы далее при создании кластерных ресурсов использовались в точности те же имена. Также можно использовать имена узлов отличные от имен хостов (пример приведен далее). В этом случае при создании ресурсов следует использовать имена узлов.
Краткую инструкцию по настройкам см. в статье Настройка разрешения имен и статических IP-адресов. Подробно про настройку сетевых подключений см. Настройка сетевых подключений в Astra Linux.
| Установка пакетов кластерного ПО выполняется на каждом узле кластера. |
Установить пакеты кластерного ПО:
Для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) с установленным обновлением БЮЛЛЕТЕНЬ № 2022-1110SE17 (оперативное обновление 1.7.3) и для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) с установленным обновлением БЮЛЛЕТЕНЬ № 20221220SE16 (оперативное обновление 12):
| sudo apt install pacemaker pcs astra-resource-agents |
Использование пакета astra-resource-agents позволяет использовать в качестве кластерной службы программное обеспечение, поддерживающее мандатное управление доступом (МРД).
Для более ранних обновлений или в случаях, когда поддержка МРД в кластерных службах не требуется:
| sudo apt install pacemaker pcs |
После установки пакетов назначить пользователю hacluster пароль:
| sudo passwd hacluster |
| Инициализация кластера выполняется однократно на любом из узлов кластера. |
Удалить все существующие файлы конфигурации кластера с помощью команды::
| sudo pcs cluster destroy |
Собрать кластер (для примера используется имя кластера astracluster):
Для Astra Linux Special Edition x.7:
| sudo pcs host auth pcmk-1 pcmk-2 -u hacluster -p <пароль> sudo pcs cluster setup astracluster pcmk-1 pcmk-2 --force |
Для обновлений Astra Linux Special Edition до x.7 и Astra Linux Common Edition:
| sudo pcs cluster auth pcmk-1 pcmk-2 -u hacluster -p <пароль> sudo pcs cluster setup --name astracluster pcmk-1 pcmk-2 --force |
В примерах выше в качестве имен узлов кластера используются имена хостов. При этом IP-адреса узлов определяются автоматически. Если есть необходимость использовать имена узлов отличные от имен хостов, то эти имена можно указать в команде, дополнив их указанием IP-адреса. Например, для имен узлов node1 и node2:
|
Запустить кластер:
| sudo pcs cluster start --all |
Убедиться, что кластер полностью запустился:
while ! sudo pcs status ; do sleep 1 ; done |
В целях тестирования отключить технологию STONITH.
| На кластерах находящихся в эксплуатации STONITH обязательно должен быть настроен и включен для предотвращения событий, приводящих к повреждению данных. |
STONITH (Shoot The Other Node In The Head) - технология, отвечающая за физическое устранение узла из кластера, и обеспечивающая полное обесточивание неисправных узлов, чтобы исключить повреждение данных. Поскольку в тесте устройства управления электропитанием не задействованы, эту возможность удобнее отключить, иначе будет постоянно выдаваться предупреждение, что STONITH не сконфигурирован |
Команда для отключения:
| sudo pcs property set stonith-enabled=false |
| Процедура добавления узла в кластер занимает некоторое время, обычно не более 1 минуты. |
Проверить состояние узлов кластера можно командой:
| sudo pcs status |
Если кластер успешно стартовал, то состояние узлов кластера в выводе команды pcs status будет таким:
Online: [ pcmk-1 pcmk-2 ] |
Проверить правильность конфигурации кластера можно командой:
sudo crm_verify -L |
Если конфигурация кластера содержит ошибки, утилита crm_verify о них сообщит.
Если узел кластера выключался/перезагружался, то считается, что узел работает нештатно, и решение о возможности его повторного включения в кластер может принять только человек. Автоматическое включение узлов в кластер не применяется. Для возврата узла в кластер требуется повторно добавить его в кластер, выполнив на нем команду:
|
Настроить поведение ресурсов:
Задать значение глобального таймаута на операции со всеми ресурсами:
| На рабочем кластере не рекомендуется использовать глобальный таймаут, следует задавать таймауты для каждой операции у каждого ресурса кластера, исходя из реальных значений временных интервалов, полученных на конкретной аппаратной платформе. |
| sudo pcs resource op defaults timeout=240s |
Если при выполнении этой команды возникает ошибка:
Error: Could not map name=... to a UUID |
то команду следует выполнить повторно.
Добавить IP-адрес кластера 192.168.23.100 как ресурс ClusterIP:
| sudo pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=192.168.23.100 cidr_netmask=32 op monitor interval=30s |
| Параметры команды, задающиеся колючем op (в примере выше - параметр op monitor interval=30s) должны указываться последними. |
Если узел кластера выключался/перезагружался, требуется повторно добавить его в кластер, выполнив на нем команду:
|