Данная статья связана с
Данная статья применима к:
- 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
Аннотация
Параметры стенда
Для развертывания кластера используются два подсоединенных к сети компьютера (узла) с установленной ОС Astra Linux. DRBD должен быть запущен на обоих узлах.
Параметр | Узел 1 | Узел 2 |
---|---|---|
Имя узла | drbd1 | drbd2 |
Статический IP-адрес узла | 10.19.1.36 | 10.19.1.39 |
- Присвоить статические IP-адреса узлам выполнив на них:
sudo nmcli c d path 1
sudo nmcli c m path 1 ip4 <IP-адрес узла>/24 gw4 192.168.23.1 ipv4.dns 77.88.8.8 ipv4.method manual
sudo nmcli c u path 1
В качестве IP-адреса сервера DNS (параметр ipv4.dns) для примера указан адрес сервера Яндекс (77.88.8.8), который можно заменить на любой удобный адрес. Подробнее про настройку сетевых подключений см. Настройка сетевых подключений в Astra Linux.
- Имена узлов внести в файл
/etc/hosts
:sudo sed -i '$a 10.19.1.36\tdrbd1' /etc/hosts
sudo sed -i '$a 10.19.1.39\tdrbd2' /etc/hosts
- Исключить указание имен узлов в строках с адресами локальной петли (127.0.0.1):
sudo sed -i 's/^127\.0\.0\.1\s.*/127.0.0.1\tlocalhost/' /etc/hosts
sudo sed -i '/^127\.0\.1\.1/d' /etc/hosts
Установка DRBD
На всех узлах:
- Установить пакет:
sudo apt install drbd-utils
- Подключить модуль ядра:
sudo modprobe drbd
Настройка репликации
На всех узлах:
- Перед началом настройки сделать резервную копию конфигурационного файла
global_common.conf
инструментомcp
:cd /etc/drbd.d
sudo cp global_common.conf global_common.conf.backup
или при помощи графического файлового менеджера
Fly
. - Указать настройки конфигурации виртуального блочного устройства DRBD в
/etc/drbd.d/global_common.conf:
global { usage-count no; } common { net { protocol C; } }
Настройки основного конфигурационного файла:
блок
global
содержит параметры, влияющие на работу всех ресурсов:- параметр
usage-count
отвечает за отправку статистики использования DRBD на сервера LINBIT. По умолчанию установлен вyes
. Рекомендуется изменить наno;
- параметр
блок
net
содержит параметры сетевого взаимодействия между узлами:параметр protocol указывает используемый режим репликации.
DRBD допускает указание используемого протокола для ресурсов в блокеresource
файлов конфигурации ресурсов (см. ниже)
Описание остальных блоков доступно в виде комментариев в самом файле конфигурации.
Управление DRBD
Для получения справки по DRBD и настройкам конфигурационных файлов выполнить:
info drbd
Для управления узлами в DRBD применяется компонент drbdadm.
Основные команды:
- проверить синтаксис настроек, указанных в файле конфигурации на ошибки:
sudo drbdadm dump
all - задействовать метаданные:
sudo drbdadm create-md <имя_узла>
- инициализировать службу на узле (инициализацию нужно проводить на всех узлах):
sudo drbdadm up
<имя_узла>использовать
down
вместоup
для выключения; - отслеживать статус синхронизации между узлами:
drbdadm status
- принудительно назначить узел первичным:
sudo drbdadm primary
<имя_узла>для назначения узла вторичным вместо
primary
указатьsecondary
;Использование параметра
--force
допустимо для данной команды только при первом запуске, в противном случае данные будут утеряны - временно отключить узлы:
sudo drbdadm disconnect all
чтобы вновь включить нужно использовать
connect.
Вместо
all
дляdrbdadm
допустимо указывать имя конкретного узла - вызов справки о
drbdadm
:man drbdadm
Добавление ресурсов
На всех узлах:
- Указать реплицируемый дисковый ресурс в
/etc/drbd.d/r0.res
для ресурсаr0:
resource r0 { # здесь возможно указание значения параметра protocol если он не указан в global_common.conf on drbd01 { device /dev/drbd0; disk /dev/sdb; address 10.19.1.36:7789; meta-disk internal; } on drbd02 { device /dev/drbd0; disk /dev/sdb; address 10.19.1.39:7789; meta-disk internal; } }
Настройки конфигурационного файла ресурсов:
Конфигурационный файл подробнее:
resource
— название ресурса;on <имя_узла>
— описание первого узла:device
— блок данных, который необходимо создать;disk
— родительский жесткий диск;address
— IP-адрес и номер порта соответствующего узла;meta-disk internal
— указание хранить служебные метаданные на этом же узле.
- Инициализировать хранилище метаданных:
sudo drbdadm create-md r0
- Запустить службу
drbd:
sudo /etc/init.d/drbd start
- Включить в автозагрузку службу
drbd:
echo drbd > /etc/modules-load.d/drbd.conf
Далее:
- Сделать один из узлов, наппример
drbd01
, первичным выполнив на нем:sudo drbdadm -- --overwrite-data-of-peer primary all
- На вторичном узле
drbd
02 проверить процесс репликации:watch -n1 cat /proc/drbd
Остановить
watch
можно сочетанием клавиш <Ctrl+C> - Указать файловую систему для созданного виртуального блочного устройства на первичном узле:
sudo mkfs.ext4 /dev/drbd0
- Примонтировать устройство на первичном узле:
sudo mount /dev/drbd0 /srv
Просмотр списка задействованных ресурсов DRBD:
drbd-overview
более детально:
/etc/init.d/drbd status
Проверка работы
- Скопировать несколько файлов на узел, установленный как основной, в каталог
/srv
:sudo cp -r /etc/default /srv
- Отмонтировать каталог
/srv:
sudo umount /srv
- Установить первичному узлу роль вторичного:
sudo drbdadm secondary r0
- Установить вторичному узлу роль первичного:
sudo drbdadm primary r0
- Смонтировать ранее отмонтированный раздел:
sudo mount /dev/drbd0 /srv
- Убедиться в наличии ранее скопированных файлов в каталоге
/srv
:ls/etc/default
DRBD и OCFS2
Начиная с версии DRBD-8.0.08
инструмент может задействовать оба узла как первичные, что дает возможность использовать кластерные файловые системы, например OCFS2.
OCFS2 — файловая система, обеспечивающая разделяемое использование одного и того же хранилища несколькими системами.
Настройка DRBD с OCFS2
На всех узлах:
- Установить пакет
ocfs2-tools
:sudo apt install ocfs2-tools
- Указать параметры настроек
ocfs2-tools
в основном конфигурационном файле/etc/ocfs2/cluster.conf
:cluster: node_count = 2 name = ocfs2cluster node: number = 1 cluster = ocfs2cluster ip_port = 7777 ip_address = 10.19.1.36 name = drbd01 node: number = 2 cluster = ocfs2cluster ip_port = 7777 ip_address = 10.19.1.39 name = drbd02
Далее:
Создать файловую систему для drbd0
:
sudo mkfs.ocfs2 -L "testVol" /dev/drbd0
где "testVol"
— имя создаваемого раздела.
Далее на всех узлах:
- Указать параметры в в
/etc/default/o2cb
:O2CB_ENABLED=true
O2CB_BOOTCLUSTER=ocfs2cluster
- Инициализировать новый кластер:
o2cb register-cluster ocfs2cluster
- Включить и добавить в автозапуск:
systemctl enable drbd o2cb ocfs2
systemctl start drbd o2cb ocfs2
- Добавить новые точки монтирования в
fstab
:/dev/drbd0 /srv ocfs2 defaults,auto,heartbeat=local 0 0