2024.2 Series Release Notes

30.0.0

Prelude

The OpenStack 2024.2 (Nova 30.0.0) release includes many new features and bug fixes. Please be sure to read the upgrade section which describes the required actions to upgrade your cloud from 29.0.0 (2024.1) to 30.0.0 (2024.2). As a reminder, OpenStack 2024.2 is not a Skip-Level-Upgrade Release (starting from now, we name it a SLURP release) meaning that you can’t do rolling-upgrade from 2023.2, you first need to upgrade to 2024.1.

There are a few major changes worth mentioning. This is not an exhaustive list:

  • The latest Compute API microversion supported for 2024.2 is v2.96.

  • With the libvirt driver and libvirt version 7.3.0 or newer, mediated devices for vGPUs are now persisted across reboots of a compute host.

  • Instances with UEFI firmware can now be launched with stateless firmware if their image has the hw_firmware_stateless property and if the compute services have libvirt 8.6.0 or later.

  • Nova now automatically detects vTPM support for compute services if libvirt version is above 8.0.0 and if swtpm is installed on the node. It will also automatically get the TPM models that are supported.

  • You can now require TLS connections for SPICE consoles if you set the [spice]/require_secure configuration option to True.

  • AggregateMultitenancyIsolation scheduler filter now supports multiple aggregate keys prefixed by filter_tenant_id which removes the limitation on the number of tenants an aggregate of hosts can relate to.

  • A couple of other improvements target reducing the number of bugs we have: one is changing how the Ironic driver sends metadata to the Ironic API, and another one created a new nova.wsgi WSGI module that allows different WSGI servers to set their WSGI application the same way (using module instead of a binary).

새로운 기능

  • A new module, nova.wsgi, has been added as a place to gather WSGI application objects. This is intended to ease deployment by providing a consistent location for these objects. For example, if using uWSGI then instead of:

    [uwsgi]
    wsgi-file = /bin/nova-api-wsgi
    

    You can now use:

    [uwsgi]
    module = nova.wsgi.osapi_compute:application
    

    This also simplifies deployment with other WSGI servers that expect module paths such as gunicorn.

  • A new configuration option, [api] response_validation, has been added. This allows operators to configure the behavior of nova-api when a response fails schema validation.

  • Libvirt virt driver now supports launching instances with stateless firmware. The new hw_firmware_stateless image property can be used to enable this feature. Note that the feature can be used only for the instances with UEFI firmware. This feature requires libvirt v8.6.0 or later.

  • With the libvirt driver and libvirt version 7.3.0 or newer, mediated devices for vGPUs are now persisted across reboots of a compute host.

    참고

    After a compute host reboots, if you have a GPU that supports SR-IOV, then the virtual functions for the GPU must be enabled again before instances will be able to use their vGPUs. Please see https://docs.openstack.org/nova/latest/admin/virtual-gpu.html for more information.

  • This release removes the limit of the number of tenants that can be specified for an aggregate and honored by the AggregateMultitenancyIsolation filter. It now respects multiple keys prefixed by filter_tenant_id like the request filter implementation. You can use filter_tenant_id as a prefix to set an infinite number of properties for tenant IDs on the aggregate. This change has been implemented in a manner that preserves backward compatibility. Existing configurations using filter_tenant_id will continue to function as expected.

  • This release adds a new config option require_secure to the spice configuration group. Defaulting to false to match the previous behavior, if set to true the SPICE consoles will require TLS protected connections. Unencrypted connections will be gracefully redirected to the TLS port via the SPICE protocol.

Upgrade Notes

  • In the victoria release, the instance_numa_topology object was extended to enabled mix cpus (pinned and unpinned cpus) in the same instance. This change added a new field pcpuset to the instance_numa_topology object. While the change included object conversion code to handle the upgrade, it did not account for instances that have a numa_topology but were not pinned. i.e. a flavor with hw:mem_page_size or hw:numa_nodes set but without hw:cpu_policy set to dedicated. As a result, instances created between liberty and victoria releases with such a flavor cannot be started after upgrade to victoria. This has now been fixed. instances created post victoria are not affected by this issue. see: https://bugs.launchpad.net/nova/+bug/2080556 for more details.

지원 종료된 기능 노트

  • AMI, AKI, and ARI image formats are now deprecated in Nova. The special- case handling for them will be removed in a future release, and Nova will stop being able to boot from them at that time. The kernel-id and ramdisk-id linkages will continue to be honored from base images and are unaffecfted by this deprecation.

버그 수정

  • The libvirt driver now ensures the swtpm_ioctl binary, which is used to terminate swtpm processes, is present when [libvirt] swtpm_enabled is set to True.

  • Fixes a regression for live migration on shared storage that was removing the backing disk and instance folder during the cleanup of a virtual machine post live migration. bug 2080436 for details.

  • Before the Bug 2078999 was fixed, the nova-manage image_property set command would update the image properties embedded in the instance but would not update the ones in the request specs. This led to an unexpected rollback of the image properties that were updated by the command after an instance migration.

  • Bug #2035375: Fixed leftover NVMe-oF subsystems when disconnecting multiple NVMe-oF volumes on the same host from storage sharing the subsystem for different volumes.

  • Nova now ensures that an instance cannot move between availability zones when the host of the instance is added or removed to an aggregate that is part of another availability zone. Moving from or to the default availability zone is also rejected.

    This resolves bug 1907775 where after such move the instance become stuck in between availability zones.

  • Bug #2002606: Previously, server rescue in stable device mode had a dependency on the original image used to create or rebuild the server. If the original image was deleted from Glance, the server could not be rescued. The issue has been fixed by falling back to the instance image metadata if the original image is not found in Glance.

  • Introduced a new compute configuration option sharing_providers_max_uuids_per_request and applied a fix to handle the “Request-Too-Long” error that can occur when querying the placement API with a large number of aggregate UUIDs.