OpenStack 2023.1 (Antelope) introduced this issue [1][2] when
live-migrating instances, in which Nova uses getCapabilities() to
determine the host CPU model but use the model from the
domCapabilities for the guest VM using host-model [3].
According to the libvirt maintainers nova should never use
getCapabilities for anything any more.
A solution for this issue is being developed in main branch [4], but
taken as a medium priority since there is a workaround config option
already available [5] to avoid this situation.
Setting "skip_cpu_compare_on_dest" to True will, during live
migration, skip comparing guest CPU with the destination host.
When using QEMU >= 2.9 and libvirt >= 4.4.0, libvirt will do the
correct thing with respect to checking CPU compatibility on the
destination host during live migration.
StarlingX currently delivers QEMU 5.2 and stx-openstack uses a libvirt
on 7.0.0-3, therefore this can be safely used as part of our default
nova configuration updates.
TEST PLAN:
PASS - Build python3-k8sapp-openstack plugins
PASS - Build stx-openstack application
PASS - Upload/Apply/Remove stx-openstack
PASS - Live-migrate an instance
PASS - Manually reboot a compute node in which
an instance is running to ensure it is correctly evacuated to another compute
Reviewed: https:/ /review. opendev. org/c/starlingx /openstack- armada- app/+/900791 /opendev. org/starlingx/ openstack- armada- app/commit/ c1336173394040d 168963cae264750 36c107fe19
Committed: https:/
Submitter: "Zuul (22348)"
Branch: master
commit c1336173394040d 168963cae264750 36c107fe19
Author: Thales Elero Cervi <email address hidden>
Date: Mon Nov 13 09:25:40 2023 -0300
Skip destination CPU check during live-migration
OpenStack 2023.1 (Antelope) introduced this issue [1][2] when
live-migrating instances, in which Nova uses getCapabilities() to
determine the host CPU model but use the model from the
domCapabilities for the guest VM using host-model [3].
According to the libvirt maintainers nova should never use
getCapabilities for anything any more.
A solution for this issue is being developed in main branch [4], but
taken as a medium priority since there is a workaround config option
already available [5] to avoid this situation.
Setting "skip_cpu_ compare_ on_dest" to True will, during live
migration, skip comparing guest CPU with the destination host.
When using QEMU >= 2.9 and libvirt >= 4.4.0, libvirt will do the
correct thing with respect to checking CPU compatibility on the
destination host during live migration.
StarlingX currently delivers QEMU 5.2 and stx-openstack uses a libvirt
on 7.0.0-3, therefore this can be safely used as part of our default
nova configuration updates.
[1] https:/ /bugs.launchpad .net/nova/ +bug/2023035 /bugs.launchpad .net/nova/ +bug/2039803 /review. opendev. org/q/topic: fix_compareCPU_ usage /review. opendev. org/c/openstack /nova/+ /899185 /docs.openstack .org/nova/ latest/ configuration/ config. html#skip_ cpu_compare_ on_dest
[2] https:/
[3] https:/
[4] https:/
[5] https:/
Closes-bug: 2007303
TEST PLAN: k8sapp- openstack plugins
correctly evacuated to another compute
PASS - Build python3-
PASS - Build stx-openstack application
PASS - Upload/Apply/Remove stx-openstack
PASS - Live-migrate an instance
PASS - Manually reboot a compute node in which
an instance is running to ensure it is
Change-Id: Id7a93445af4115 ee81b035b4f9dc7 a6eb889555b
Signed-off-by: Thales Elero Cervi <email address hidden>