[Openstack] Live Migration and LibVirt CPU Mode

Oisin O'Malley oisin.omalley at iocane.com.au
Wed Jul 5 04:05:26 UTC 2017


Hi,

Thanks for the suggestion, but it’s still not working. I have changed both nodes to use the Westmere CPU model, which is the lowest common CPU instruction set. The following is in the nova.conf on both nodes;

cpu_mode = custom
cpu_model = Westmere
libvirt_cpu_mode = custom
libvirt_cpu_model = Westmere

I'm beginning to suspect that because the VM has "cpu mode='host-model'" in its xml CPU definition, libvirt is incorrectly comparing the current host CPU to the target host instead of comparing the guest CPU to the target host CPU. This would be consistent with the error message which states that target host (Westmere) isn't compatible with the 'Broadwell-noTSX' CPU model, even though the VM is configured as Westmere (<model fallback='allow'>Westmere</model>).

Original Error Message;
Host CPU does not provide required features: fma, x2apic, movbe, tsc-deadline, xsave, osxsave, avx, f16c, rdrand, fsgsbase, tsc_adjust, bmi1, hle, avx2, smep, bmi2, erms, invpcid, rtm, rdseed, adx, smap, xsaveopt, abm, 3dnowprefetch; try using 'Broadwell-noTSX' CPU model

As  mentioned previously, when the VM is booted on a compute node with "cpu_model = Westmere" in its nova.conf, the VMs XML CPU definition contains the following and DOES live migrate;

<cpu mode='custom' match='exact'>
    <model fallback='allow'>Westmere</model>

Therefore it appears if  a VM XML CPU definition contains "cpu mode='host-model'" the cpu model is ignored and the 2 host CPU models are compared. And if  "cpu mode='custom'", guest and target CPU models are compared. This would also be consistent with the fact I can migrate from a Westmere to a Broadwell, as Broadwell is a superset of Westmere but not the other way around.

Any suggestions with dealing with this? Rebooting all hosted instances isn't really an option for us.

Regards,
Oisin




>From: rag.open.net at openmailbox.org [mailto:rag.open.net at openmailbox.org]
>Sent: Tuesday, 4 July 2017 9:41 AM
>To: Oisin O'Malley <oisin.omalley at iocane.com.au>
>Subject: Re: [Openstack] Live Migration and LibVirt CPU Mode
>
>Hello Malley, excuse me for delay...
>
>for resolve your problem consider change architecture in 2 compute nodes..
>
>compute1
>
>cat /proc/cpuinfo
>compute2
>
>cat /proc/cpuinfo
>
>search middle architecture for this processor..
>my example in my situation
>
>1º compute
>model name    : AMD Phenom(tm) II X6 1090T Processor
>2º compute
>model name    : AMD A8-7600 Radeon R7, 10 Compute Cores 4C+6G
>
>and de nova in 2 compute:
>libvirt_cpu_mode = custom
>cpu_mode = custom
>libvirt_cpu_model=Opteron_G3
>cpu_model=Opteron_G3
>
>Custom:
>
>If your nova.conf file contains cpu_mode=custom, you can explicitly specify one of the supported named models using the cpu_model configuration option. For example, to configure the KVM guests to expose >Nehalem CPUs, your nova.conf file should contain
>
>Nova cpu
>
>that's all. Search compatible architecture


Oisin O'Malley
Systems Engineer
Iocane Pty Ltd
763 South Road
Black Forest SA 5035

Office:+61 (8) 8413 1010
Fax:+61 (8) 8231 2050
Email:oisin.omalley at iocane.com.au
Web:www.iocane.com.au

Better for business



More information about the Openstack mailing list