Контекст:
Настройка активного / пассивного DRBD. Виртуальные машины KVM на томах LVM. LVM с использованием /dev/drbd0
для физического тома и группы томов.
При тестировании установки у меня было:
Однако виртуальная машина, которая была автоматически запущена после первичной перезагрузки, каким-то образом получила доступ к базовому диску (/dev/sda4
) для /dev/drbd0
:
WARNING: Device mismatch detected for vgr0/r0_wphp which is accessing /dev/sda4 instead of /dev/drbd0.
/dev/sda4
это устройство, используемое для /dev/drbd0
:
resource r0 {
protocol C;
startup {
wfc-timeout 15;
degr-wfc-timeout 60;
}
disk {
on-io-error detach;
c-fill-target 10M;
c-max-rate 700M;
c-plan-ahead 7;
c-min-rate 4M;
}
net {
# max-epoch-size 20000;
max-buffers 36k;
sndbuf-size 1024k;
rcvbuf-size 2048k;
after-sb-0pri discard-zero-changes;
after-sb-1pri discard-secondary;
after-sb-2pri disconnect;
rr-conflict disconnect;
}
syncer {
rate 400M;
al-extents 6433;
}
on NormallySecondary {
device /dev/drbd0;
disk /dev/sdc;
address 10.0.0.1:7788;
meta-disk internal;
}
on NormallyPrimary {
device /dev/drbd0;
disk /dev/sda4;
address 10.0.0.2:7788;
meta-disk internal;
}
}
После непреднамеренного запуска r0_wphp
ВМ теперь у меня вот такое:
% lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 3.7T 0 disk
├─sda1 8:1 0 46.6G 0 part /
├─sda2 8:2 0 46.6G 0 part [SWAP]
├─sda3 8:3 0 1.7T 0 part
...
└─sda4 8:4 0 1.8T 0 part
└─vgr0-r0_wphp 254:0 0 40G 0 lvm
vgr0-r0_wphp
(Объем LVM, используемый r0_wphp
ВМ) следует использовать группу томов vgr0
что использует /dev/drbd0
как физический объем, не /dev/sda4
прямо.
я считать это причина того, что DRBD теперь отказывается запускаться r0
на моем NormallyPrimary
узел:
% drbdadm create-md r0
open(/dev/sda4) failed: Device or resource busy
Exclusive open failed. Do it anyways?
[need to type 'yes' to confirm]
Безусловно lsof /dev/sda4
ничего не показывает.
drbd
служба была не запускается автоматически при загрузке NormallyPrimary
узел.
Странно то, что перед тестами я иметь настроил LVM на игнорирование /dev/sda4
:
% egrep '^\s*filter =' /etc/lvm/lvm.conf
filter = [ "r|/dev/sda4|" ]
После определения этого фильтра LVM, drbdadm
создан r0
ресурс без нареканий, настройка DRBD работала.
Вопросы:
Как я могу остановить использование виртуальной машины /dev/sda4
? Мне нужно повторно подключить мой ресурс DRBD (r0
).
Как я могу предотвращать любые виртуальные машины с поддержкой LVM от попыток доступа к устройствам, лежащим в основе /dev/drbd*
устройства даже при непреднамеренном запуске?
ОС и DRBD:
% lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 9.6 (stretch)
Release: 9.6
Codename: stretch
% dpkg -l | grep drbd
ii drbd-utils 8.9.10-2 amd64 RAID 1 over TCP/IP for Linux (user utilities)