VM not able to migrate to another node

Ayush

Member
Oct 27, 2023
81
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