Migration zwischen Zen1/2 und Zen3 kernel panic mit CPU=kvm64

Andreas Pflug

Active Member
Nov 13, 2019
32
2
28
Unsere PVE-Hosts laufen mit Linux 5.15.104-1-pve und 7.4. Demnächst steht der Upgrade an. Natürlicherweise wird dazu jeweils ein Host evakuiert, alle VMs per Live-Migration auf andere Hosts verteilt. Das hatte allerdings beim letzten Upgrade zu allerlei Streß geführt, viele VMs waren nach der Migration abgestürzt. Ich habe daher jetzt erst mal mit einer VM (Debian 10) eine Testserie durchgeführt.

Alle VMs sind mit CPU-Typ EPYC konfiguriert, die Hosts eine bunte Mischung von Epyc Zen1/2/3. Demnach funktioniert die Migration fehlerfrei zwischen Epyc 1+2 hin und her, und von Epyc 1/2 nach Epyc3, oder zwischen Epyc3, jedoch nicht von Epyc3 nach 1 oder 2. Dabei ist es egal, auf welchem Host die VM gestartet worden war.

Eigentlich sollte qemu doch die CPU-Flags und Features auf "Ur-Epyc" (Zen1 Naples) beschränken. Offenbar gibts da noch weitere CPU-Eigenschaften, die nicht beim Start der VM durch den aktuellen Host oder die cfg festgelegt werden.

Kann ich da was gegen tun? Ist vielleicht mit neuem Kernel alles noch viel besser?
 
Hi Andreas,

leider musst du selbst testen welche Features es sind. Du kannst zu der Maskierung auf Zen1 auch noch weitere Maskierungen hinzufügen. Eventuell haben die Zen3 ein Feature nicht mehr, was die Zen1+2 haben.
Das sollte man in den Specs der CPUs finden. Bei Intel hatte ich das auch schon, dann muss auch das fehlende Feature zusätzlich maskiert werden.
 
Die Flags in den VMs sind identisch, egal auf welchem Host ich die VM gestartet habe. Insofern wüßte ich auch nicht was ich da noch weiter ausfiltern soll.
Ich habe jetzt mal den Default CPU-Typ kvm64 ausprobiert, der ja selbst über Herstellergrenzen hinweg funktionieren soll, und bekommen den gleichen Kernel Panic.
Ich hab versucht den Panic per NetConsole zu loggen, dann friert die VM allerdings einfach nur ein.
 
Last edited:
Hast du auch einmal die Security Mitigations geprüft?
Sind eventuell im BIOS noch Einstellungen anders?
 
Die CPUs stecken in unterschiedlichen Mainboards, insofern sind die BIOS-Einstellungen sicherlich anders. Dies und die Security Mitigations sollte qemu sicherlich virtualisieren, mindestens für kvm_64 CPUs.
 
Gerade die Security Mitigations sind so ein heikles Thema. qemu emuliert dir was du willst, aber manche Flags muss man explizit manuell maskieren.
Ich hatte schon einmal, dass ein Server die Virtualisierungsfeatures der CPU im BIOS abgeschaltet hatte. Virtualisieren ging trotzdem, aber nicht so performant und kein live migration. Daher auch mal das BIOS checken. Bei manchen Servern, wie z.B. DELL kann man im IPMI die Biossettings angucken.
 

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!