Netzwerkstack einer VM stirbt seit QUEMU 8.1 bei Migration

Ralli

Member
Dec 4, 2022
49
10
13
Guten Tag zusammen,

seit dem Update von QEMU 8.0.x auf QEMU 8.1.x - auch mit heutigem Update auf QEMU 8.1.2 - "stirbt" bei einer Migration einer VM die Netzwerkverbindung einer VM. Mit 8.0.x war eine Migration problemlos zwischen mehreren Nodes möglich mit anschließender Erreichbarkeit im Netz. Mit 8.1.x ist die betroffene VM nicht mehr über Netzwerkverbindungen erreichbar; in der GUI sieht man, dass Ressourcen verbraucht werden, allerdings "Gast Agent läuft nicht" und IP wird nicht angezeigt. Auch ein Stoppen/Reboot über die bekannten Befehle bzw. über die GUI geht nicht, ich muss in der Proxmox-Shell die VM "killen".

Die VM hat folgende Konfiguration:

Code:
agent: 1
balloon: 0
boot: order=scsi0
cores: 2
memory: 2048
name: vRaspberryMatic
net0: e1000=00:0c:29:ba:e7:72,bridge=vmbr0,firewall=1
onboot: 1
scsi0: local-zfs:vm-201-disk-0,discard=on,iothread=1,size=64G
scsihw: virtio-scsi-single
smbios1: uuid=760d0d0c-
startup: order=3,up=180
vmgenid: cc2d954e-

Wo kann ich ansetzen, um das Problem zu lösen?
 
Hi,
könntest Du die Ausgabe von pveversion -v von Quell- und Zielrechner der Migration posten? Was ist die Ausgabe von qm status 201 --verbose nach der Migration? Gibt es in den Systemlogs/Journal irgendwelche Meldungen (Quelle oder Ziel)?

Ist es noch möglich über die Konsole auf die VM zuzugreifen? Falls nicht, bitte am Zielrechner mit apt install pve-qemu-kvm-dbgsym gdb Debugger und Debug-Symbole installieren. Nachher kannst Du dann mit gdb --batch --ex 't a a bt' -p $(cat /var/run/qemu-server/201.pid) Debug-Traces holen. Mit etwas Glück sieht man da, wo die VM steckt.
 
Hi Fiona,

vielen Dank für deine superschnelle Reaktion.

Generell: Grundsätzlich habe ich einen Cluster mit drei Nodes und die VM auf Host 1 (pve-n1) mit HA. Für eine Wartung starte ich immer mit Host 3, boote den durch, starte dann mit Host 2, boote den durch und mache als letzten den Host 1 und boote den durch. Grundsätzlich wird beim Reboot von Host 1 die VM auf Host 3 migriert und nach dem Restart von Host 1 wieder auf diesen zurück-migriert.

pveversion -v vom Host 1:

Code:
root@pve-n1:~# pveversion -v
proxmox-ve: 8.1.0 (running kernel: 6.5.11-4-pve)
pve-manager: 8.1.3 (running version: 8.1.3/b46aac3b42da5d15)
proxmox-kernel-helper: 8.0.9
pve-kernel-6.2: 8.0.5
pve-kernel-5.15: 7.4-4
proxmox-kernel-6.5.11-4-pve-signed: 6.5.11-4
proxmox-kernel-6.5: 6.5.11-4
proxmox-kernel-6.5.11-3-pve: 6.5.11-3
proxmox-kernel-6.2.16-19-pve: 6.2.16-19
proxmox-kernel-6.2: 6.2.16-19
pve-kernel-5.15.108-1-pve: 5.15.108-1
pve-kernel-5.15.30-2-pve: 5.15.30-3
ceph-fuse: 16.2.11+ds-2
corosync: 3.1.7-pve3
criu: 3.17.1-2
glusterfs-client: 10.3-5
ifupdown2: 3.2.0-1+pmx7
ksm-control-daemon: 1.4-1
libjs-extjs: 7.0.0-4
libknet1: 1.28-pve1
libproxmox-acme-perl: 1.5.0
libproxmox-backup-qemu0: 1.4.0
libproxmox-rs-perl: 0.3.1
libpve-access-control: 8.0.7
libpve-apiclient-perl: 3.3.1
libpve-common-perl: 8.1.0
libpve-guest-common-perl: 5.0.6
libpve-http-server-perl: 5.0.5
libpve-network-perl: 0.9.4
libpve-rs-perl: 0.8.7
libpve-storage-perl: 8.0.5
libspice-server1: 0.15.1-1
lvm2: 2.03.16-2
lxc-pve: 5.0.2-4
lxcfs: 5.0.3-pve3
novnc-pve: 1.4.0-3
proxmox-backup-client: 3.0.4-1
proxmox-backup-file-restore: 3.0.4-1
proxmox-kernel-helper: 8.0.9
proxmox-mail-forward: 0.2.2
proxmox-mini-journalreader: 1.4.0
proxmox-offline-mirror-helper: 0.6.2
proxmox-widget-toolkit: 4.1.3
pve-cluster: 8.0.5
pve-container: 5.0.8
pve-docs: 8.1.3
pve-edk2-firmware: 4.2023.08-1
pve-firewall: 5.0.3
pve-firmware: 3.9-1
pve-ha-manager: 4.0.3
pve-i18n: 3.1.2
pve-qemu-kvm: 8.1.2-4
pve-xtermjs: 5.3.0-2
qemu-server: 8.0.10
smartmontools: 7.3-pve1
spiceterm: 3.3.0
swtpm: 0.8.0+pve1
vncterm: 1.8.0
zfsutils-linux: 2.2.0-pve3

pveversion -v vom Host 3:

Code:
root@pve-n3:~# pveversion -v
proxmox-ve: 8.1.0 (running kernel: 6.5.11-4-pve)
pve-manager: 8.1.3 (running version: 8.1.3/b46aac3b42da5d15)
proxmox-kernel-helper: 8.0.9
pve-kernel-6.2: 8.0.5
proxmox-kernel-6.5.11-4-pve-signed: 6.5.11-4
proxmox-kernel-6.5: 6.5.11-4
proxmox-kernel-6.5.11-3-pve: 6.5.11-3
proxmox-kernel-6.2.16-19-pve: 6.2.16-19
proxmox-kernel-6.2: 6.2.16-19
pve-kernel-6.2.16-3-pve: 6.2.16-3
ceph-fuse: 17.2.6-pve1+3
corosync: 3.1.7-pve3
criu: 3.17.1-2
glusterfs-client: 10.3-5
ifupdown2: 3.2.0-1+pmx7
ksm-control-daemon: 1.4-1
libjs-extjs: 7.0.0-4
libknet1: 1.28-pve1
libproxmox-acme-perl: 1.5.0
libproxmox-backup-qemu0: 1.4.0
libproxmox-rs-perl: 0.3.1
libpve-access-control: 8.0.7
libpve-apiclient-perl: 3.3.1
libpve-common-perl: 8.1.0
libpve-guest-common-perl: 5.0.6
libpve-http-server-perl: 5.0.5
libpve-network-perl: 0.9.4
libpve-rs-perl: 0.8.7
libpve-storage-perl: 8.0.5
libspice-server1: 0.15.1-1
lvm2: 2.03.16-2
lxc-pve: 5.0.2-4
lxcfs: 5.0.3-pve3
novnc-pve: 1.4.0-3
proxmox-backup-client: 3.0.4-1
proxmox-backup-file-restore: 3.0.4-1
proxmox-kernel-helper: 8.0.9
proxmox-mail-forward: 0.2.2
proxmox-mini-journalreader: 1.4.0
proxmox-widget-toolkit: 4.1.3
pve-cluster: 8.0.5
pve-container: 5.0.8
pve-docs: 8.1.3
pve-edk2-firmware: 4.2023.08-1
pve-firewall: 5.0.3
pve-firmware: 3.9-1
pve-ha-manager: 4.0.3
pve-i18n: 3.1.2
pve-qemu-kvm: 8.1.2-4
pve-xtermjs: 5.3.0-2
qemu-server: 8.0.10
smartmontools: 7.3-pve1
spiceterm: 3.3.0
swtpm: 0.8.0+pve1
vncterm: 1.8.0
zfsutils-linux: 2.2.0-pve3

Nein, ein Zugriff mittels Konsole über die GUI ist dann ebenfalls nicht möglich.

Das ist im Journal von Host 1 zu sehen:

Code:
Nov 23 15:48:02 pve-n1 pve-ha-crm[1153]: service 'vm:201': state changed from 'started' to 'freeze'
Nov 23 15:48:28 pve-n1 systemd[1]: 201.scope: Deactivated successfully.
Nov 23 15:48:28 pve-n1 systemd[1]: Stopped 201.scope.
Nov 23 15:48:28 pve-n1 systemd[1]: 201.scope: Consumed 3h 13min 2.401s CPU time.
Nov 23 15:48:36 pve-n1 pve-ha-lrm[959158]: <root@pam> starting task UPID:pve-n1:000EA2BA:0103D8F3:655F6644:qmigrate:201:root@pam:
Nov 23 15:48:41 pve-n1 pve-ha-lrm[959158]: Task 'UPID:pve-n1:000EA2BA:0103D8F3:655F6644:qmigrate:201:root@pam:' still active, waiting
Nov 23 15:48:46 pve-n1 pve-ha-lrm[959158]: Task 'UPID:pve-n1:000EA2BA:0103D8F3:655F6644:qmigrate:201:root@pam:' still active, waiting
Nov 23 15:48:51 pve-n1 pve-ha-lrm[959158]: Task 'UPID:pve-n1:000EA2BA:0103D8F3:655F6644:qmigrate:201:root@pam:' still active, waiting
Nov 23 15:48:54 pve-n1 kernel: tap201i0: left allmulticast mode
Nov 23 15:48:54 pve-n1 kernel: fwbr201i0: port 2(tap201i0) entered disabled state
Nov 23 15:48:54 pve-n1 kernel: fwbr201i0: port 1(fwln201i0) entered disabled state
Nov 23 15:48:54 pve-n1 kernel: vmbr0: port 2(fwpr201p0) entered disabled state
Nov 23 15:48:54 pve-n1 kernel: fwln201i0 (unregistering): left allmulticast mode
Nov 23 15:48:54 pve-n1 kernel: fwln201i0 (unregistering): left promiscuous mode
Nov 23 15:48:54 pve-n1 kernel: fwbr201i0: port 1(fwln201i0) entered disabled state
Nov 23 15:48:54 pve-n1 kernel: fwpr201p0 (unregistering): left allmulticast mode
Nov 23 15:48:54 pve-n1 kernel: fwpr201p0 (unregistering): left promiscuous mode
Nov 23 15:48:54 pve-n1 kernel: vmbr0: port 2(fwpr201p0) entered disabled state
Nov 23 15:48:55 pve-n1 pve-ha-lrm[959158]: <root@pam> end task UPID:pve-n1:000EA2BA:0103D8F3:655F6644:qmigrate:201:root@pam: OK
Nov 23 15:50:09 pve-n1 qm[1432]: <root@pam> starting task UPID:pve-n1:000005AA:00000D37:655F66A1:qmstart:201:root@pam:
Nov 23 15:50:09 pve-n1 qm[1450]: start VM 201: UPID:pve-n1:000005AA:00000D37:655F66A1:qmstart:201:root@pam:
Nov 23 15:50:09 pve-n1 systemd[1]: Started 201.scope.
Nov 23 15:50:10 pve-n1 kernel: tap201i0: entered promiscuous mode
Nov 23 15:50:10 pve-n1 kernel: vmbr0: port 2(fwpr201p0) entered blocking state
Nov 23 15:50:10 pve-n1 kernel: vmbr0: port 2(fwpr201p0) entered disabled state
Nov 23 15:50:10 pve-n1 kernel: fwpr201p0: entered allmulticast mode
Nov 23 15:50:10 pve-n1 kernel: fwpr201p0: entered promiscuous mode
Nov 23 15:50:10 pve-n1 kernel: vmbr0: port 2(fwpr201p0) entered blocking state
Nov 23 15:50:10 pve-n1 kernel: vmbr0: port 2(fwpr201p0) entered forwarding state
Nov 23 15:50:10 pve-n1 kernel: fwbr201i0: port 1(fwln201i0) entered blocking state
Nov 23 15:50:10 pve-n1 kernel: fwbr201i0: port 1(fwln201i0) entered disabled state
Nov 23 15:50:10 pve-n1 kernel: fwln201i0: entered allmulticast mode
Nov 23 15:50:10 pve-n1 kernel: fwln201i0: entered promiscuous mode
Nov 23 15:50:10 pve-n1 kernel: fwbr201i0: port 1(fwln201i0) entered blocking state
Nov 23 15:50:10 pve-n1 kernel: fwbr201i0: port 1(fwln201i0) entered forwarding state
Nov 23 15:50:10 pve-n1 kernel: fwbr201i0: port 2(tap201i0) entered blocking state
Nov 23 15:50:10 pve-n1 kernel: fwbr201i0: port 2(tap201i0) entered disabled state
Nov 23 15:50:10 pve-n1 kernel: tap201i0: entered allmulticast mode
Nov 23 15:50:10 pve-n1 kernel: fwbr201i0: port 2(tap201i0) entered blocking state
Nov 23 15:50:10 pve-n1 kernel: fwbr201i0: port 2(tap201i0) entered forwarding state
Nov 23 15:50:10 pve-n1 qm[1432]: <root@pam> end task UPID:pve-n1:000005AA:00000D37:655F66A1:qmstart:201:root@pam: OK
Nov 23 15:51:10 pve-n1 pvedaemon[1150]: VM 201 qmp command failed - VM 201 qmp command 'guest-ping' failed - got timeout
Nov 23 15:51:30 pve-n1 pvedaemon[1148]: VM 201 qmp command failed - VM 201 qmp command 'guest-ping' failed - got timeout
Nov 23 15:51:34 pve-n1 kernel: tap201i0: left allmulticast mode
Nov 23 15:51:34 pve-n1 kernel: fwbr201i0: port 2(tap201i0) entered disabled state
Nov 23 15:51:34 pve-n1 kernel: fwbr201i0: port 1(fwln201i0) entered disabled state
Nov 23 15:51:34 pve-n1 kernel: vmbr0: port 2(fwpr201p0) entered disabled state
Nov 23 15:51:34 pve-n1 kernel: fwln201i0 (unregistering): left allmulticast mode
Nov 23 15:51:34 pve-n1 kernel: fwln201i0 (unregistering): left promiscuous mode
Nov 23 15:51:34 pve-n1 kernel: fwbr201i0: port 1(fwln201i0) entered disabled state
Nov 23 15:51:34 pve-n1 kernel: fwpr201p0 (unregistering): left allmulticast mode
Nov 23 15:51:34 pve-n1 kernel: fwpr201p0 (unregistering): left promiscuous mode
Nov 23 15:51:34 pve-n1 kernel: vmbr0: port 2(fwpr201p0) entered disabled state
Nov 23 15:51:34 pve-n1 systemd[1]: 201.scope: Deactivated successfully.
Nov 23 15:51:34 pve-n1 systemd[1]: 201.scope: Consumed 4.887s CPU time.
Nov 23 15:51:35 pve-n1 qmeventd[3057]: Starting cleanup for 201
Nov 23 15:51:35 pve-n1 qmeventd[3057]: Finished cleanup for 201
Nov 23 15:51:44 pve-n1 pve-ha-lrm[3125]: starting service vm:201
Nov 23 15:51:44 pve-n1 pve-ha-lrm[3126]: start VM 201: UPID:pve-n1:00000C36:00003240:655F6700:qmstart:201:root@pam:
Nov 23 15:51:44 pve-n1 pve-ha-lrm[3125]: <root@pam> starting task UPID:pve-n1:00000C36:00003240:655F6700:qmstart:201:root@pam:
Nov 23 15:51:44 pve-n1 systemd[1]: Started 201.scope.
Nov 23 15:51:44 pve-n1 kernel: tap201i0: entered promiscuous mode
Nov 23 15:51:44 pve-n1 kernel: vmbr0: port 2(fwpr201p0) entered blocking state
Nov 23 15:51:44 pve-n1 kernel: vmbr0: port 2(fwpr201p0) entered disabled state
Nov 23 15:51:44 pve-n1 kernel: fwpr201p0: entered allmulticast mode
Nov 23 15:51:44 pve-n1 kernel: fwpr201p0: entered promiscuous mode
Nov 23 15:51:44 pve-n1 kernel: vmbr0: port 2(fwpr201p0) entered blocking state
Nov 23 15:51:44 pve-n1 kernel: vmbr0: port 2(fwpr201p0) entered forwarding state
Nov 23 15:51:44 pve-n1 kernel: fwbr201i0: port 1(fwln201i0) entered blocking state
Nov 23 15:51:44 pve-n1 kernel: fwbr201i0: port 1(fwln201i0) entered disabled state
Nov 23 15:51:44 pve-n1 kernel: fwln201i0: entered allmulticast mode
Nov 23 15:51:44 pve-n1 kernel: fwln201i0: entered promiscuous mode
Nov 23 15:51:44 pve-n1 kernel: fwbr201i0: port 1(fwln201i0) entered blocking state
Nov 23 15:51:44 pve-n1 kernel: fwbr201i0: port 1(fwln201i0) entered forwarding state
Nov 23 15:51:44 pve-n1 kernel: fwbr201i0: port 2(tap201i0) entered blocking state
Nov 23 15:51:44 pve-n1 kernel: fwbr201i0: port 2(tap201i0) entered disabled state
Nov 23 15:51:44 pve-n1 kernel: tap201i0: entered allmulticast mode
Nov 23 15:51:44 pve-n1 kernel: fwbr201i0: port 2(tap201i0) entered blocking state
Nov 23 15:51:44 pve-n1 kernel: fwbr201i0: port 2(tap201i0) entered forwarding state
Nov 23 15:51:44 pve-n1 pve-ha-lrm[3125]: <root@pam> end task UPID:pve-n1:00000C36:00003240:655F6700:qmstart:201:root@pam: OK
Nov 23 15:51:44 pve-n1 pve-ha-lrm[3125]: service status vm:201 started

Dieser Journal-Auszug ist das Zurück-Migrieren von Host 3 auf Host 1 mit anschließendem Kill des Prozesses und automatischem VM-ReStart durch HA. Wahrscheinlich auch nicht vollständig, da ich das mit "journalctl | grep 201" herausgezogen habe.

Code:
apt install pve-qemu-kvm-dbgsym gdb
hatte ich noch nicht drauf, das ziehe ich jetzt für's nächste mal nach.

Hier noch "qm status 201 --verbose" - allerdings nicht direkt nach der Migration sondern nach dem Prozess-Kill und Restart der VM:

Code:
root@pve-n1:~# qm status 201 --verbose
blockstat:
        scsi0:
                account_failed: 1
                account_invalid: 1
                failed_flush_operations: 0
                failed_rd_operations: 0
                failed_unmap_operations: 0
                failed_wr_operations: 0
                failed_zone_append_operations: 0
                flush_operations: 134
                flush_total_time_ns: 247690829
                idle_time_ns: 15862313258
                invalid_flush_operations: 0
                invalid_rd_operations: 0
                invalid_unmap_operations: 0
                invalid_wr_operations: 0
                invalid_zone_append_operations: 0
                rd_bytes: 162649088
                rd_merged: 0
                rd_operations: 6876
                rd_total_time_ns: 1518915649
                timed_stats:
                unmap_bytes: 0
                unmap_merged: 0
                unmap_operations: 0
                unmap_total_time_ns: 0
                wr_bytes: 87240704
                wr_highest_offset: 63909896192
                wr_merged: 0
                wr_operations: 358
                wr_total_time_ns: 179994707
                zone_append_bytes: 0
                zone_append_merged: 0
                zone_append_operations: 0
                zone_append_total_time_ns: 0
cpus: 2
disk: 0
diskread: 162649088
diskwrite: 87240704
maxdisk: 68719476736
maxmem: 2147483648
mem: 1576168496
name: vRaspberryMatic
netin: 9147213
netout: 24349323
nics:
        tap201i0:
                netin: 9147213
                netout: 24349323
pid: 3148
proxmox-support:
        backup-max-workers: 1
        pbs-dirty-bitmap: 1
        pbs-dirty-bitmap-migration: 1
        pbs-dirty-bitmap-savevm: 1
        pbs-library-version: 1.4.0 (UNKNOWN)
        pbs-masterkey: 1
        query-bitmap-info: 1
qmpstatus: running
running-machine: pc-i440fx-8.1+pve0
running-qemu: 8.1.2
status: running
uptime: 4121
vmid: 201
 
Last edited:
Nein, ein Zugriff mittels Konsole über die GUI ist dann ebenfalls nicht möglich.
Dann könnte es ein Problem mit dem QEMU-Prozess selbst sein. Und da wäre die Debug-Ausgabe hilfreich.

Dieser Journal-Auszug ist das Zurück-Migrieren von Host 3 auf Host 1 mit anschließendem Kill des Prozesses und automatischem VM-ReStart durch HA. Wahrscheinlich auch nicht vollständig, da ich das mit "journalctl | grep 201" herausgezogen habe.
Sehe da nichts spannendes, aber mit dem Filtern könnten Fehlermeldungen natürlich verloren gegangen sein.

Welche CPU-Modelle haben die Nodes im Cluster?
 
pve-n1:

8 x 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz (1 Socket)

pve-n3:

8 x Intel(R) Core(TM) i7-6700T CPU @ 2.80GHz (1 Socket)
 
Hi Fiona,

so wie es aussieht, wurde das Problem durch das Kernel-Update auf 6.5.11-5-pve behoben. Außer der von dir empfohlenen Einstellung x86-64-v2-AES, welche zu keinem geänderten Verhalten geführt hatte, wurden keine Änderungen am PVE oder an der VM-Konfiguration vorgenommen.

Seit Verwendung des Kernels 6.5.11-5-pve klappt die Live-Migration der VM wieder problemlos.
 
  • Like
Reactions: tom
  • Like
Reactions: Ralli

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!