VM not able to migrate to another node

Ayush

Member
Oct 27, 2023
70
2
8
Hello Team,

We have a simple setup of 3 nodes running proxmox 8.1.4 with under ceph quency 17.2.7 as shared storage. All three node have same processor E5-2696 v4 . We have created a vm but when we defined its processor as 2 socket 4 cores Westmere-IBRS.
When we try to migrate this vm to another node we are getting error as follows ;'-

QEMU: kvm: warning: host doesn't support requested feature: CPUID.07H:EDX.spec-ctrl [bit 26]
QEMU: kvm: Host doesn't support requested features

TASK ERROR: start failed: QEMU exited with code 1

Which Indirectly specify that it is something related to CPU.
My question is that :-

1) Even with same processor architecture why we are getting CPU error ?
2) What is the best way to avoid such error in future ?
3) Which one should I choose QEMU or KVM as cpu in virtualisation and is there any recommendation in case if in future hardware is upgraded ?
 
check that all nodes have the same microcode version installed..
 
check that all nodes have the same microcode version installed..

Node1
# dmesg | grep microcode
[ 2.613702] microcode: Microcode Update Driver: v2.2.

Node2
dmesg |grep microcode
[ 2.596188] microcode: Microcode Update Driver: v2.2.

Node3

dmesg | grep microcode
[ 0.679181] [Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0xb000020 (or later)
[ 1.579857] MDS: Vulnerable: Clear CPU buffers attempted, no microcode
[ 1.579858] TAA: Vulnerable: Clear CPU buffers attempted, no microcode
[ 1.579859] MMIO Stale Data: Vulnerable: Clear CPU buffers attempted, no microcode
[ 2.744031] microcode: Microcode Update Driver: v2.2.
 
Hello Fabian ,

I can see difference between the 2

Node to which it is not able to migrate

cpuid | grep microcode
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false
VERW MD_CLEAR microcode support = false


Node to which it is able to migrate.
show cpuid | grep microcode
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
VERW MD_CLEAR microcode support = true
 
please just ensure that microcode updates are installed and that all nodes are on the same revision - the link I posted has all the required information..
 
  • Like
Reactions: Kingneutron
Hello Fabian,

I have 2 more questions :-

2) What is the best way to avoid such error in future ? This is because if we use different architecture .
3) Which one should I choose QEMU or KVM as cpu in virtualisation and is there any recommendation in case if in future hardware is upgraded ?
 
you should use a common CPU type across all the nodes you want to migrate to. you selected a CPU type that requires a certain CPU/microcode feature, but didn't verify that all your nodes support that.
 
  • Like
Reactions: Kingneutron

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!