The following logic is added to the ComputeManager attach_interface flow: * gather the resource request of the port from neutron * query allocation candidates restricted to the current compute node from placement * extend the existing allocation of the instance with one of the allocation candidates in placement * update the InstancePCIRequest (if any) to ensure that the PCI claim only allocates VF from the PF the placement resources are allocated from * ensure that during port binding neutron gets the RP UUID, the resources are allocated from, in the allocation key of the binding profile This patch bumps the compute service version to indicate that QoS interface attach is supported. Also the check that was so far rejected such attach is now updated to only reject it if the compute service version is too old. The "scheduling" during interface attach for PCI backed ports has the same limitation as normal scheduling for such ports. It always selects the first allocation candidate returned by placement even if later in the process it turns out that such allocation candidate points to a PCI PF that has no free VFs left. Blueprint: support-interface-attach-with-qos-ports Change-Id: Id4684093e8bdf3b61667490443e3d2f6ed65f4b3
1.9 KiB
Using ports with resource request
Starting from microversion 2.72 nova supports creating servers with
neutron ports having resource request visible as a admin-only port
attribute resource_request
. For example a neutron port has
resource request if it has a QoS minimum bandwidth rule attached.
Deleting such servers or detaching such ports works since Stein version
of nova without requiring any specific microversion.
However the following API operations are still not supported in nova:
- Creating servers with neutron networks having QoS minimum bandwidth rule is not supported. The user needs to pre-create the port in that neutron network and create the server with the pre-created port.
- Attaching Neutron ports and networks having QoS minimum bandwidth rule is not supported.
Also the following API operations are not supported in the 19.0.0 (Stein) version of nova:
- Moving (resizing, migrating, live-migrating, evacuating, unshelving after shelve offload) servers with ports having resource request is not yet supported.
As of 20.0.0 (Train), nova supports cold migrating and resizing
servers with neutron ports having resource requests if both the source
and destination compute services are upgraded to 20.0.0 (Train) and the
[upgrade_levels]/compute
configuration does not prevent the
computes from using the latest RPC version. However cross cell resize
and cross cell migrate operations are still not supported with such
ports and Nova will fall back to same-cell resize if the server has such
ports.
As of 21.0.0 (Ussuri), nova supports evacuating, live migrating and unshelving servers with neutron ports having resource requests.
As of 23.0.0 (Wallaby), nova supports attaching neutron ports having QoS minimum bandwidth rules.
See the admin guide <admin/port_with_resource_request.html>
for administrative details.