[nova][neutron][ptg] How to increase the minimum bandwidth guarantee of a running instance
Balázs Gibizer
balazs.gibizer at est.tech
Tue May 19 14:08:18 UTC 2020
Hi,
[This is a topic from the PTG etherpad [0]. As the PTG time is
intentionally kept short, let's try to discuss it or even conclude it
before the PTG]
As a next step in the minimum bandwidth QoS support I would like to
solve the use case where a running instance has some ports with minimum
bandwidth but then user wants to change (e.g. increase) the minimum
bandwidth used by the instance.
I see two generic ways to solve the use case:
Option A - interface attach
---------------------------
Attach a new port with minimum bandwidth to the instance to increase
the instance's overall bandwidth guarantee.
This only impacts Nova's interface attach code path:
1) The interface attach code path needs to read the port's resource
request
2) Call Placement GET /allocation_candidates?in_tree=<compute RP of the
instance>
3a) If placement returns candidates then select one and modify the
current allocation of the instance accordingly and continue the
existing interface attach code path.
3b) If placement returns no candidates then there is no free resource
left on the instance's current host to resize the allocation locally.
Option B - QoS rule update
--------------------------
Allow changing the minimum bandwidth guarantee of a port that is
already bound to the instance.
Today Neutron rejects such QoS rule update. If we want to support such
update then:
* either Neutron should call placement allocation_candidates API and
the update the instance's allocation. Similarly what Nova does in
Option A.
* or Neutron should tell Nova that the resource request of the port has
been changed and then Nova needs to call Placement and update
instance's allocation.
The Option A and Option B are not mutually exclusive but still I would
like to see what is the preference of the community. Which direction
should we move forward?
Both options have the limitation that if the instance's current host
does not have enough free resources for the requested change then Nova
will not do a full scheduling and move the instance to another host
where resource is available. This seems a hard problem to me.
Do you have any idea how can we remove / ease this limitation without
boiling the ocean?
For example: Does it make sense to implement a bandwidth weigher in the
scheduler so instances can be spread by free bandwidth during creation?
Cheers,
gibi
[0] https://etherpad.opendev.org/p/nova-victoria-ptg
More information about the openstack-discuss
mailing list