We are amped to announce the release of: nova 25.1.0: Cloud computing fabric controller This release is part of the yoga stable release series. The source is available from: https://opendev.org/openstack/nova Download the package from: https://tarballs.openstack.org/nova/ Please report issues through: https://bugs.launchpad.net/nova/+bugs For more details, please see below. 25.1.0 ^^^^^^ Known Issues ************ * Nova's use of libvirt's compareCPU() API served its purpose over the years, but its design limitations break live migration in subtle ways. For example, the compareCPU() API compares against the host physical CPUID. Some of the features from this CPUID aren not exposed by KVM, and then there are some features that KVM emulates that are not in the host CPUID. The latter can cause bogus live migration failures. With QEMU >=2.9 and libvirt >= 4.4.0, libvirt will do the right thing in terms of CPU compatibility checks on the destination host during live migration. Nova satisfies these minimum version requirements by a good margin. So, this workaround provides a way to skip the CPU comparison check on the destination host before migrating a guest, and let libvirt handle it correctly. This workaround will be deprecated and removed once Nova replaces the older libvirt APIs with their newer counterparts. The work is being tracked via this blueprint cpu-selection-with-hypervisor- consideration. (https://blueprints.launchpad.net/nova/+spec/cpu-selection-with- hypervisor-consideration) Bug Fixes ********* * As a fix for bug 1942329 (https://bugs.launchpad.net/neutron/+bug/1942329) nova now updates the MAC address of the "direct-physical" ports during mova operations to reflect the MAC address of the physical device on the destination host. Those servers that were created before this fix need to be moved or the port needs to be detached and the re- attached to synchronize the MAC address. * Bug #1978444 (https://bugs.launchpad.net/nova/+bug/1978444): Now nova retries deleting a volume attachment in case Cinder API returns "504 Gateway Timeout". Also, "404 Not Found" is now ignored and leaves only a warning message. * Bug #1981813 (https://bugs.launchpad.net/nova/+bug/1981813): Now nova detects if the "vnic_type" of a bound port has been changed in neutron and leaves an ERROR message in the compute service log as such change on a bound port is not supported. Also the restart of the nova-compute service will not crash any more after such port change. Nova will log an ERROR and skip the initialization of the instance with such port during the startup. * If compute service is down in source node and user try to stop instance, instance gets stuck at powering-off, hence evacuation fails with msg: Cannot 'evacuate' instance <instance-id> while it is in task_state powering-off. It is now possible for evacuation to ignore the vm task state. For more details see: bug 1978983 (https://bugs.launchpad.net/nova/+bug/1978983) * When vDPA was first introduced move operations were implemented in the code but untested either in a real environment or in functional tests. Due to this gap nova elected to block move operations for instance with vDPA devices. All move operations except for live migration have now been tested and found to indeed work so the API blocks have now been removed and functional tests introduced. Other operations such as suspend and live migration require code changes to support and will be enabled as new features in the future. Other Notes *********** * A workaround has been added to the libvirt driver to catch and pass migrations that were previously failing with the error: "libvirt.libvirtError: internal error: migration was active, but no RAM info was set" See bug 1982284 for more details. (https://bugs.launchpad.net/nova/+bug/1982284) Changes in nova 25.0.1..25.1.0 ------------------------------ 516f0de1f6 [stable-only][cve] Check VMDK create-type against an allowed list a28c827195 Gracefully ERROR in _init_instance if vnic_type changed 4954f99368 Reproduce bug 1981813 in func env 4a2b44c7cf Adapt websocketproxy tests for SimpleHTTPServer fix 041939361e enable blocked VDPA move operations f98858aa77 Add compute restart capability for libvirt func tests 69667a817c Remove double mocking... again b40bd1bf52 Remove double mocking 813377077b Record SRIOV PF MAC in the binding profile 683cbd0633 refactor: remove duplicated logic 17ae907569 [compute] always set instance.host in post_livemigration 71e5a1dbcc Adds a repoducer for post live migration fail 4316234e63 Handle "no RAM info was set" migration case 2738317167 nova-live-migration tests not needed for Ironic 6d61fccb84 For evacuation, ignore if task_state is not None 6bd0bf00fc add regression test case for bug 1978983 b94ffb1123 Retry attachment delete API call for 504 Gateway Timeout 0f6c0cd2e4 Fix typos in help messages 277f88e387 libvirt: Add a workaround to skip compareCPU() on destination 6f32b11864 neutron: Unbind remaining ports after PortNotFound Diffstat (except docs and test files) ------------------------------------- .zuul.yaml | 19 +- nova/compute/api.py | 12 +- nova/compute/manager.py | 60 +- nova/compute/resource_tracker.py | 2 +- nova/conf/compute.py | 11 +- nova/conf/hyperv.py | 2 +- nova/conf/libvirt.py | 4 +- nova/conf/neutron.py | 2 +- nova/conf/quota.py | 2 +- nova/conf/scheduler.py | 4 +- nova/conf/workarounds.py | 8 + nova/network/neutron.py | 90 ++- nova/objects/pci_device.py | 19 + nova/test.py | 15 +- .../functional/compute/test_resource_tracker.py | 10 - .../libvirt/test_device_bus_migration.py | 8 +- .../functional/libvirt/test_numa_live_migration.py | 12 +- .../functional/libvirt/test_pci_sriov_servers.py | 743 +++++++++++++++++++-- .../functional/regressions/test_bug_1628606.py | 60 ++ .../functional/regressions/test_bug_1781286.py | 30 +- .../functional/regressions/test_bug_1896463.py | 8 - .../functional/regressions/test_bug_1978983.py | 71 ++ .../api/openstack/compute/test_create_backup.py | 4 - .../unit/api/openstack/compute/test_hypervisors.py | 394 +++++------ .../unit/api/openstack/compute/test_limits.py | 164 +++-- .../api/openstack/compute/test_migrate_server.py | 3 +- .../unit/api/openstack/compute/test_quotas.py | 5 +- .../api/openstack/compute/test_server_actions.py | 38 +- .../openstack/compute/test_server_group_quotas.py | 7 +- .../unit/api/openstack/compute/test_servers.py | 30 +- .../unit/api/openstack/compute/test_volumes.py | 10 +- nova/virt/fake.py | 35 + nova/virt/images.py | 31 + nova/virt/libvirt/driver.py | 19 +- nova/virt/libvirt/guest.py | 7 + nova/virt/libvirt/host.py | 15 + nova/volume/cinder.py | 18 +- .../notes/bug-1942329-22b08fa4b322881d.yaml | 9 + .../notes/bug-1978444-db46df5f3d5ea19e.yaml | 7 + ...-1981813-vnic-type-change-9f3e16fae885b57f.yaml | 9 + ...andle-no-ram-info-was-set-99784934ed80fd72.yaml | 11 + ...task-state-for-evacuation-e000f141d0153638.yaml | 11 + .../skip-compare-cpu-on-dest-6ae419ddd61fd0f8.yaml | 24 + .../notes/vdpa-move-ops-a7b3799807807a92.yaml | 11 + 82 files changed, 2930 insertions(+), 1167 deletions(-)
participants (1)
-
no-reply@openstack.org