Я пытаюсь восстановить вторичный DRDB на новом сервере Debian Stretch, который я никогда не смог бы успешно сделать первичным. / proc / drbd всегда сообщает вторичный сервер как бездисковый после перезагрузки. На самом деле устройства drbd содержат vg lvm под названием "dr", который содержит lv под названием home. Итак, это LVM поверх DRBD. Запуск lsblk на восстановленном вторичном сервере я обычно вижу
sdd 8:48 0 558.4G 0 disk
├─sdd1 8:49 0 101G 0 part
│ ├─dr-home 254:0 0 10G 0 lvm
где, как у Первичного
sdd 8:48 0 558.4G 0 disk
├─sdd1 8:49 0 101G 0 part
│ └─drbd1 147:1 0 101G 0 disk
│ ├─dr-home 254:8 0 10G 0 lvm /var/home
Я восстановил вторичную обмотку следующим образом
drbdadm down r1
wipefs --all /dev/sdd1 # gives "wipefs: error: /dev/sdd1: probing initialization failed: Device or resource busy"
# however pvs,vgs and lvm dont mention 'dr' at all
# yet /etc/mapper/dr-home and /etc/dr/home exist
dmsetup remove dr-home
wipefs --all /dev/sdd1 # now works
dd if=/dev/zero of=/dev/sdd1 count=1000000 # for good measure
drbdadm create-md r1
drbdadm up r1
cat /proc/drbd # reports drbd rebuilding
# after a while proc/drbd contains
# 1: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
reboot
# and proc/drbd now contains
# 1: cs:Connected ro:Secondary/Primary ds:Diskless/UpToDate C r-----
Насколько я могу судить, во время перезагрузки что-то (устройство сопоставления устройств?) Получает устройства до того, как это сделает drbd. Есть идеи относительно того, что происходит или как я могу это исправить? Я не понимаю, что происходит во время загрузки. Я хотел бы понять, как система может отличить drbd поверх lvm от lvm на drdb во время загрузки.
Мой /etc/lvm/lvm.conf содержит
filter = [ "r|/dev/sdd|", "r|/dev/sdd1|", "r|/dev/block/|", "a/.*/" ]
Заранее спасибо!