Данная статья применима начиная с:
- 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
), который будет использован для организации хранилища и его резервирования.
Допускается использование одного физического устройства на котором выделены два раздела, один из которых будет использован для хранилища
Имя узла | drbd1 | drbd2 |
Статический 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
В данной статье в качестве ресурса будет задействовано виртуальное блочное устройство, подключенное по iSCSI.
Перед установкой проверить работоспособность кластера:
sudo pcs status
На узлах кластеров необходимо установить и настроить DRBD (см. Использование DRBD и OCFS2 для резервирования данных). Далее проверить работу узлов c DRBD:
sudo drbdadm status
На узле с которого будет доступен общий раздел:
- Инициализировать рабочую версию CIB:
sudo pcs cluster cib drbdconf
- Создать новый ресурс кластера, указать имя ресурса, интервалы и параметры работы ресурса:
sudo pcs -f drbdconf resource create <имя_ресурса> ocf:linbit:drbd \
drbd_resource=<имя_ресурса> \
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
- Инициализировать дубликат ресурса кластера:
sudo pcs -f drbdconf resource promotable
<имя_ресурса>
\
promoted-max=1 promoted-node-max=1 \
clone-max=2 clone-node-max=1 notify=true - Обновить и сохранить обновление конфигурации в CIB:
sudo pcs cluster cib-push drbdconf
Проверить CIB на наличие ошибок:
sudo pcs cluster verify
Пример сценария настройки
#!/bin/bash pcs property set stonith-enabled=false pcs resource defaults migration-threshold=1
# указать имя ClusterIP для ресурса, связанного с heartbeat pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip={{virtual_ip_for_replication}} cidr_netmask=32 nic=eth1 op monitor interval=10
# указать необходимое имя ресурса для DRBD вместо drbd_testdrbd pcs resource create drbd_testdrbd ocf:linbit:drbd \
drbd_resource="testdrbd" promotable promoted-max=1 promoted-node-max=1 clone-max={{amount_nodes}} clone-node-max=1 \ notify=true op monitor interval="29s" role="Master" op monitor interval="31s" role="Slave" pcs resource create ext4_drbd1 ocf:heartbeat:Filesystem \ device=/dev/drbd1 directory=/mnt/testdrbd 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_drbd1 pcs constraint colocation add ext4_drbd1 with master drbd_testdrbd-clone INFINITY pcs constraint colocation add ClusterIP with master drbd_testdrbd-clone INFINITY