Данная статья применима начиная с:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8)
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) и РУСБ.10015-10, РУСБ.10015-17
- Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
- Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
- Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
- Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
- Astra Linux Common Edition 2.12
Аннотация
Предполагается, что дальнейшие действия выполняются на ранее подготовленном кластере pacemaker. См. статью Развертывание двухузлового кластера pacemaker.
В рамках подготовки кластера созданы два узла кластера. В процессе настройки один из узлов назначается ведущим (master), второй (остальные) — подчиненным (slave). При отказе ведущего узла подчиненный узел автоматически становится ведущим.
Настройка и тестирование аутентификации пользователей и работы мандатного управления доступом (МРД) в данной статье не рассматривается и не тестируется.
Внимание! Порты, используемые DRBD (7788) и Corosync (5404, 5405), должны быть свободны. Получить перечень используемых портов можно командой sudo netstat -tulpn
Параметры стенда
Для развертывания кластера и использования инструментов, описываемых в статье используются два подсоединенных к сети компьютера (узла) с установленной ОС Astra Linux, сетевыми картами и двумя жесткими дисками: диск с операционной системой (далее в примере — /dev/sda) и свободный диск (далее в примере — /dev/sdb), который будет использован для организации хранилища и его резервирования.
Допускается использование одного физического устройства на котором выделены два раздела, один из которых будет использован для хранилища
| Имя узла | pcmk-1 | pcmk-2 |
| Статический IP-адрес узла | 192.168.23.101 | 192.168.23.102 |
Рекомендации по настройке сети приведены в статье Настройка разрешения имен и статических IP-адресов. В целях тестирования можно использовать раздел Настройка разрешения имен в тестовом окружении.
Основные термины
DRBD (Distributed Replicated Block Device) — это инструмент, позволяющий создавать решения для резервирования данных путем репликации блочных устройств (например, жестких дисков или томов LVM). см. Использование DRBD и OCFS2 для резервирования данных .
- CIB (Cluster Information Base) — информационная база ресурсов кластера в формате XML-файла. Автоматически реплицируется на весь кластер, база доступна для редактирования с любого узла кластера;
- Ресурс — эмулируемое или физическое блочное устройство, резервирование которого осуществляется инструментом DRBD.
Следует различать ресурсы для DRBD и для pacemaker! Это разные сущности разных инструментов, для DRBD ресурс - синхронизируемый каталог, для pacemaker - сущность, управляемая сценарием
Использование инструмента DRBD на кластере pacemaker
Перед установкой проверить работоспособность кластера:
sudo pcs statusНа узлах кластеров необходимо установить и настроить DRBD (см. Использование DRBD и OCFS2 для резервирования данных). Далее проверить работу узлов c DRBD:
sudo drbdadm statusНа любом из узлов кластера:
- Задействовать параметр обработки сбоев кластера, если это ранее не было сделано ранее. После первого сбоя служба перемещается на другой узел:в зависимости от используемой версии pacemaker может возникать сообщение вида:
sudo pcs resource defaults migration-threshold=1если оно возникает, рекомендуется использоватьDeprecation Warning: This command is deprecated and will be removed. Please use 'pcs resource defaults update' instead.Warning: Defaults do not apply to resources which override them with their own defined valuespcs resource defaults update. - Инициализировать рабочую версию CIB:
sudo pcs cluster cib drbdconf - Создать новый ресурс кластера, указать имя ресурса, интервалы и параметры работы ресурса:
sudo pcs -f drbdconf resource create <имя_ресурса_pacemaker> ocf:linbit:drbd \drbd_resource=<имя_ресурса_drbd> \op start interval=0s timeout=240s \stop interval=0s timeout=100s \monitor interval=31s timeout=20s \role=Slave monitor interval=29s timeout=20s role=Masterгде
<имя_ресурса_pacemaker>- имя создаваемого ресурса pacemaker, а<имя_ресурса_drbd>- ранее указанное имя ресурса DRBD, в текущем примере этоr0. - Создать виртуальный IP-адрес для кластера:
sudo pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=<адрес кластера> cidr_netmask=32 nic=eth1 op monitor interval=10где
ClusterIP- имя ресурса для виртуального IP-адреса кластера, а<адрес кластера>- отличный от IP-адресов узлов кластера адрес, занесённый вetc/hosts. - Инициализировать дубликат ресурса кластера:
sudo pcs -f drbdconf resource promotable
<имя_ресурса>\
promoted-max=1 promoted-node-max=1 \
clone-max=2 clone-node-max=1 notify=trueгде
<имя_ресурса>- имя создаваемого ресурса pacemaker. Подробная справка по параметрам доступна вman pcs. - Обновить и сохранить обновление конфигурации в CIB:
sudo pcs cluster cib-push drbdconf - Проверить перечень и статус настроенных ресурсов:sudo pcs status
Cluster name: astraclusterStatus of pacemakerd: 'Pacemaker is running' (last updated 2024-10-16 02:36:40 +03:00)Cluster Summary:* Stack: corosync* Current DC: pcmk-1 (version 2.1.5-a3f44794f94) - partition with quorum* Last updated: Wed Oct 16 02:36:40 2024* Last change: Wed Oct 16 02:36:18 2024 by root via cibadmin on pcmk-1* 2 nodes configured* 3 resource instances configuredNode List:* Online: [ pcmk-1 pcmk-2 ]Full List of Resources:* ClusterIP (ocf:heartbeat:IPaddr2): Started pcmk-1* Clone Set: test_drbd0-clone [test_drbd0] (promotable):* Promoted: [ pcmk-1 ]* Unpromoted: [ pcmk-2 ]Daemon Status:corosync: active/enabledpacemaker: active/enabledpcsd: active/enabled
Проверить CIB на наличие ошибок:
sudo pcs cluster verifyПример сценария настройки
#!/bin/bash
VIRTUAL_IP = <виртуальный IP-адрес кластера>
DRBD_DIR = <путь к ресурсу DRBD>
DRBD_DEVICE = <путь к устройству ресурса DRBD>
pcs property set stonith-enabled=falsepcs resource defaults migration-threshold=1
# указать имя ClusterIP для ресурса, связанного с heartbeatpcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=$VIRTUAL_IP cidr_netmask=32 nic=eth1 op monitor interval=10
# указать необходимое имя ресурса для DRBD вместо drbd_testdrbdpcs resource create drbd_testdrbd ocf:linbit:drbd \drbd_resource="testdrbd" promotable promoted-max=1 promoted-node-max=1 clone-max=2 clone-node-max=1 \notify=true op monitor interval="29s" role="Master" op monitor interval="31s" role="Slave"pcs resource create ext4_pcmk-1 ocf:heartbeat:Filesystem \device=$DRBD_DEVICE directory=$DRBD_DIR fstype=ext4 \options=noatime,nodiratime \op start interval="0" timeout="60s" \stop interval="0" timeout="60s" \monitor interval="20" timeout="40s"pcs constraint order promote drbd_testdrbd-clone then start ext4_pcmk-1pcs constraint colocation add ext4_pcmk-1 with master drbd_testdrbd-clone INFINITYpcs constraint colocation add ClusterIP with master drbd_testdrbd-clone INFINITY