Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Информация
titleДанная статья применима начиная с:
  • 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-1pcmk-2
Статический IP-адрес узла192.168.23.101192.168.23.102


Рекомендации по настройке сети приведены в статье Настройка разрешения имен и статических IP-адресов. В целях тестирования можно использовать раздел Настройка разрешения имен в тестовом окружении.

Основные термины

DRBD (Distributed Replicated Block Device) — это инструмент, позволяющий создавать решения для резервирования данных путем репликации блочных устройств (например, жестких дисков или томов LVM). см. Использование DRBD и OCFS2 для резервирования данных .

  • CIB (Cluster Information Base) — информационная база ресурсов кластера в формате XML-файла. Автоматически реплицируется на весь кластер, база доступна для редактирования с любого узла кластера;

  • Ресурс — эмулируемое или физическое блочное устройство, резервирование которого осуществляется инструментом DRBD. 

Предупреждение

Следует различать ресурсы для DRBD и для pacemaker! Это разные сущности разных инструментов, для DRBD ресурс - синхронизируемый каталог, для pacemaker - сущность, управляемая сценарием

Использование инструмента DRBD на кластере pacemaker

Перед установкой проверить работоспособность кластера:

Command

sudo pcs status

На узлах кластеров необходимо установить и настроить DRBD (см. Использование DRBD и OCFS2 для резервирования данных). Далее проверить работу узлов c DRBD:

Command

sudo drbdadm status


На любом из узлов кластера:

  1. Задействовать параметр обработки сбоев кластера, если это ранее не было сделано ранее. После первого сбоя служба перемещается на другой узел:
    Command

    sudo pcs resource defaults migration-threshold=1

    в зависимости от используемой версии pacemaker может возникать сообщение вида:
    Command

    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 values

    если оно возникает, рекомендуется использовать pcs resource defaults update.

  2. Инициализировать рабочую версию CIB:
    Command
    sudo pcs cluster cib drbdconf


  3. Создать новый ресурс кластера, указать имя ресурса, интервалы и параметры работы ресурса:
    Command

    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.

  4. Создать виртуальный IP-адрес для кластера:
    Command

    sudo pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=<адрес кластера> cidr_netmask=32 nic=eth1 op monitor interval=10 

    где ClusterIP  - имя ресурса для виртуального IP-адреса кластера, а <адрес кластера> - отличный от IP-адресов узлов кластера адрес, занесённый в etc/hosts.

  5. Инициализировать дубликат ресурса кластера:
    Command
    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

  6. Обновить и сохранить обновление конфигурации в CIB:
    Command
    sudo pcs cluster cib-push drbdconf


  7. Проверить перечень и статус настроенных ресурсов:
    Command
    Titlesudo pcs status

    Cluster name: astracluster
    Status 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 configured

    Node 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/enabled
     pacemaker: active/enabled
     pcsd: active/enabled

Проверить CIB на наличие ошибок:

Command

sudo pcs cluster verify

Пример сценария настройки

Command

#!/bin/bash

VIRTUAL_IP = <виртуальный IP-адрес кластера>

DRBD_DIR = <путь к ресурсу DRBD>

DRBD_DEVICE = <путь к устройству ресурса DRBD>


pcs property set stonith-enabled=false
pcs resource defaults migration-threshold=1

# указать имя ClusterIP для ресурса, связанного с heartbeat
pcs resource create ClusterIP ocf:heartbeat:IPaddr2 ip=$VIRTUAL_IP 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=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-1
pcs constraint colocation add ext4_pcmk-1 with master drbd_testdrbd-clone INFINITY
pcs constraint colocation add ClusterIP with master drbd_testdrbd-clone INFINITY