Я использую CentOS7, и у меня есть существующий узел высокой доступности с двумя кластерами, работающий с кардиостимулятором (1.1.23-1.el7_9.1) и DRBD (kmod-drbd90-9.0.22-3.el7_9). Резервный раздел для диска DRBD зашифрован LUKS. Добавляем в стек третий сервер, но после обновления конфигурации диск drbd на новом сервере не подключается.
Положение дел
Текущий статус, как показано в новом поле:
[root@svr3]# статус drbdadm
Роль drbd0:Вторичная
диск: противоречивый
подключение svr1:Подключение
подключение svr2:Подключение
На первичном статус отображается как:
[root@svr1]# статус drbdadm
Роль drbd0: Основная
диск: UpToDate
Роль svr2:Вторичная
одноранговый диск: UpToDate
подключение svr3: автономное
Конфигурация DRBD
Текущая конфигурация для drbd0
ресурс:
ресурс drbd0 {
протокол С;
устройство /dev/drbd0;
диск /dev/sdb1;
метадиск внутренний;
на svr1 {
адрес 10.10.11.1:7789;
идентификатор узла 1;
}
на svr2 {
адрес 10.10.11.2:7789;
идентификатор узла 2;
}
на svr3 {
адрес 10.10.11.3:7789;
идентификатор узла 3;
}
соединение-сетка {
хосты svr1 svr2 svr3;
}
}
До добавления svr3 конфигурация svr1 и svr2 была следующей:
ресурс drbd0 {
протокол С;
устройство /dev/drbd0;
диск /dev/sdb1;
метадиск внутренний;
на svr1 {
адрес 10.10.11.1:7789;
идентификатор узла 1;
}
на svr2 {
адрес 10.10.11.2:7789;
идентификатор узла 2;
}
соединение-сетка {
хосты svr1 svr2;
}
}
Диски DRBD были созданы с помощью следующего скрипта на всех коробках:
drbdadm create-md --force drbd0
drbdadm до drbd0
Только на первичном компьютере также выполнялось следующее для настройки диска:
dd if=/dev/zero of=/dev/sdb1 bs=128M count=10
первичный drbdadm --force drbd0
cryptsetup -q --keyfile /path/to/keyfile luksFormat /dev/drbd0
cryptsetup --key-file /path/to/keyfile luksOpen /dev/drbd0 luks-drbd
mkfs.ext4 /dev/mapper/luks-drbd
Конфигурация кардиостимулятора
Ресурсы DRBD в кардиостимуляторе были настроены с помощью следующего сценария. Ресурс PCS не изменился, так как изначально он был настроен для будущего третьего узла.
pcs ресурс создать drbd0_data ocf:linbit:drbd drbd_resource=drbd0
мастер ресурсов ПК drbd0_clone drbd0_data \
master-max=1 master-node-max=1 clone-max=3 clone-node-max=1 \
уведомить = правда
ресурс pcs создать drbd0_luks ocf:vendor:luks \
--group=drbd_resources
pcs ресурс создать drbd0_fs ocf:heartbeat:Filesystem \
device=/dev/mapper/luks-drbd directory=/mnt/data fstype=ext4 \
--group=drbd_resources
Ограниченный порядок шт продвигает drbd0_data, затем запускает drbd_resources
колокация ограничения ПК добавить drbd_resources \
с drbd0_clone INFINTITY with-rsc-role=Master
порядок ограничения шт drbd0_luks затем drbd0_fs
( drbd0_luks
ресурс — это настраиваемый ресурс, который мы предоставляем, который в основном работает cryptsetup luksOpen|luksClose
в разделе LUKS, если это необходимо).
Статус кардиостимулятора показывает следующее:
Онлайн: [ svr1 svr2 svr3 ]
Активные ресурсы:
Набор ведущий/подчиненный: drbd0_clone [drbd0_data]
Мастера: [ svr1 ]
Рабы: [ svr2 svr3 ]
Группа ресурсов: drbd_resources
drbd0_luks (ocf::vendor::luks): запущен svr1
drbd0_fs (ocf::heartbeat::Filesystem): запущен svr1
Попытки подключения
Я пробовал различные итерации следующего процесса:
[root@svr1]# drbdadm отключить drbd0
[root@svr2]# drbdadm отключить drbd0
[root@svr3]# drbdadm отключить drbd0
[root@svr3]# drbdadm connect --discard-my-data drbd0
[root@svr1]# drbdadm подключить drbd0
drbd0: Ошибка: (162) Неверный запрос конфигурации
Команда 'drbdsetup connect drbd0 3' завершена с кодом выхода 10
[root@svr2]# drbdadm подключить drbd0
drbd0: Ошибка: (162) Неверный запрос конфигурации
Команда 'drbdsetup connect drbd0 3' завершена с кодом выхода 10
После этого вывод статус drbdadm
как показано в верхней части поста.Я получаю ту же ошибку, если пытаюсь запустить drbdadm настроить drbd0
на svr1 или svr2.
Если я попытаюсь запустить drbdadm вниз drbd0
в то время как drbd0_luks
ресурс включен, я получаю следующее:
[root@svr1]# drbdadm отключил drbd0
drbd0: изменение состояния не удалось: (-12) кто-то держит устройство открытым
дополнительная информация от ядра:
/dev/drbd0 открыт cryptsetup (pid 11777) в 2021-11-01 16:50:51
Команда 'drbdsetup down drbd0' завершена с кодом выхода 11
Если бы я отключил drbd0_luks
ресурс, я могу запустить drbdadm вниз drbd0
, но регулировать
команда завершается со следующим:
[root@svr1]# drbdadm настроить drbd0
0: Ошибка: (162) Неверный запрос конфигурации
Команда «drbdsetup attach 0 /dev/sdb1 /dev/sdb1 internal» завершена с кодом выхода 10
поэтому я предполагаю, что мне, по крайней мере, нужно так много и работает. На данный момент я просто хватаюсь за соломинку, но я не совсем уверен, за какой следующей правильной соломинкой нужно тянуться.