Hallo zusammen,
gestern Abend haben wir unsere neun Proxmox-Hosts mit frischen Updates versorgt und neu gestartet. Auf drei der Nodes haben wir DRBD9 mit einer Redundanz von zwei im Einsatz. Nach dem Reboot konnten zwei virtuelle Maschinen nicht mehr gestartet werden und DRBD hat auf allen drei Nodes behauptet diskless zu sein.
Ich habe die Liste der Resources gekuerzt, alle anderen wurden mit dem Status OK angegeben. Die VM 121 ist in dem Fall ein Restore der zu dem Zeitpunkt noch nicht fertig war. Es geht um die VM 176:
Schnell haben wir herausgefunden, dass LVM hier die VG aus der virtuellen Maschine 176 in Beschlag genommen hat:
Folgendes haben wir auf allen Nodes getan um dieses Problem zu beheben:
und dann klappt es auch wieder:
Was haben wir falsch gemacht? Oder lautet die Antwort: "In dem alten Artikel zu DRBD8 im Wiki wird darauf hingewiesen, dass man die lvm.conf anpassen sollte. Dieser Abschnitt fehlt in dem DRBD9-Artikel."
Es ist auf jeden Fall auch ein Timing-Problem. Wir haben noch weitere DRBD9-Pools bei denen das bisher nicht passiert ist.
Viele Grüße!
gestern Abend haben wir unsere neun Proxmox-Hosts mit frischen Updates versorgt und neu gestartet. Auf drei der Nodes haben wir DRBD9 mit einer Redundanz von zwei im Einsatz. Nach dem Reboot konnten zwei virtuelle Maschinen nicht mehr gestartet werden und DRBD hat auf allen drei Nodes behauptet diskless zu sein.
Ich habe die Liste der Resources gekuerzt, alle anderen wurden mit dem Status OK angegeben. Die VM 121 ist in dem Fall ein Restore der zu dem Zeitpunkt noch nicht fertig war. Es geht um die VM 176:
Code:
# root@virt07:~/ /dev/pts/2 Mo 31.10.16 23:25:13 >
ec:0 # drbdmanage list-assignments
WARNING:root:Could not read configuration file '/etc/drbdmanaged.cfg'
+------------------------------------------------------------------------------------------------------------+
| Node | Resource | Vol ID | | State |
|------------------------------------------------------------------------------------------------------------|
| virt07 | vm-121-disk-1 | * | | ok |
| virt07 | vm-121-disk-2 | * | | ok |
| virt07 | vm-176-disk-1 | * | | FAILED(3), pending actions: adjust connections |
| virt07 | vm-176-disk-2 | * | | ok |
| virt08 | vm-176-disk-1 | * | | FAILED(3), pending actions: adjust connections |
| virt08 | vm-176-disk-2 | * | | ok |
| virt09 | vm-121-disk-1 | * | | ok |
| virt09 | vm-121-disk-2 | * | | ok |
| virt09 | vm-176-disk-1 | * | | client |
| virt09 | vm-176-disk-2 | * | | client |
+------------------------------------------------------------------------------------------------------------+
Code:
# root@virt07:~/ /dev/pts/2 Mo 31.10.16 23:31:42 >
ec:0 # drbdadm status
.drbdctrl role:Secondary
volume:0 disk:UpToDate blocked:lower
volume:1 disk:UpToDate blocked:lower
virt08 role:Secondary
volume:0 peer-disk:UpToDate
volume:1 peer-disk:UpToDate
virt09 role:Secondary
volume:0 peer-disk:UpToDate
volume:1 peer-disk:UpToDate
vm-121-disk-1 role:Primary
disk:UpToDate blocked:lower
virt09 role:Secondary
peer-disk:UpToDate
vm-121-disk-2 role:Primary
disk:UpToDate blocked:lower
virt09 role:Secondary
peer-disk:UpToDate
vm-176-disk-1 role:Secondary
disk:Diskless
vm-176-disk-2 role:Secondary
disk:UpToDate blocked:lower
virt08 role:Secondary
peer-disk:UpToDate
virt09 role:Secondary
peer-disk:Diskless
Schnell haben wir herausgefunden, dass LVM hier die VG aus der virtuellen Maschine 176 in Beschlag genommen hat:
Code:
# root@virt07:~/ /dev/pts/2 Mo 31.10.16 23:39:29 >
ec:0 # pvs
Found duplicate PV IobARFYQ0UgtILNqVQertIaQKWI3ByDV: using /dev/drbdpool/vm-121-disk-2_00 not /dev/drbdpool/vm-176-disk-1_00
Couldn't find device with uuid SG98C2-auQe-VeUn-uqJ6-ldZd-rRVF-uRRfpo.
Couldn't find device with uuid VlQnyd-XZhW-TWBs-Ow9b-bO4U-o2sh-3NRWmw.
PV VG Fmt Attr PSize PFree
/dev/drbdpool/vm-121-disk-2_00 dbmaster21-vg lvm2 a-- 150,00g 5,00g
/dev/drbdpool/vm-196-disk-3_00 dbslave21-vg lvm2 a-- 150,00g 5,00g
/dev/md0 vg0 lvm2 a-- 59,59g 0
/dev/sda1 drbdpool lvm2 a-- 2,91t 1,91t
unknown device dbslave21-vg lvm2 a-m 31,76g 0
unknown device dbmaster21-vg lvm2 a-m 31,76g 0
Folgendes haben wir auf allen Nodes getan um dieses Problem zu beheben:
Code:
vgchange -a n dbmaster21-vg
# /etc/lvm/lvm.conf Zeile 122 von
# global_filter = [ "r|/dev/zd.*|", "r|/dev/mapper/pve-.*|" ]
# geändert auf:
# global_filter = [ "r|/dev/zd.*|", "r|/dev/mapper/pve-.*|", "r|/dev/mapper/drbdpool-vm-.*|", "r|/dev/drbd.*|" ]
pvscan
vgscan
drbdadm adjust all
und dann klappt es auch wieder:
Code:
# root@virt07:~/ /dev/pts/2 Di 01.11.16 00:59:15 >
ec:0 # drbd-overview
0:.drbdctrl/0 Connected(3*) Secondary(3*) UpTo(virt07)/UpTo(virt09,virt08)
1:.drbdctrl/1 Connected(3*) Secondary(3*) UpTo(virt07)/UpTo(virt08,virt09)
100:vm-121-disk-1/0 Connected(2*) Secondary(2*) UpToDa/UpToDa
103:vm-176-disk-1/0 Connected(3*) Prim(virt07)/Seco(virt09,virt08) UpTo(virt07)/UpTo(virt08)/Disk(virt09)
104:vm-176-disk-2/0 Connected(3*) Prim(virt07)/Seco(virt08,virt09) UpTo(virt07)/UpTo(virt08)/Disk(virt09)
106:vm-121-disk-2/0 Connected(2*) Secondary(2*) UpToDa/UpToDa
Was haben wir falsch gemacht? Oder lautet die Antwort: "In dem alten Artikel zu DRBD8 im Wiki wird darauf hingewiesen, dass man die lvm.conf anpassen sollte. Dieser Abschnitt fehlt in dem DRBD9-Artikel."
Es ist auf jeden Fall auch ein Timing-Problem. Wir haben noch weitere DRBD9-Pools bei denen das bisher nicht passiert ist.
Viele Grüße!