[placement] update 18-49 - aggregate allocation ratios

Matt Riedemann mriedemos at gmail.com
Fri Dec 7 17:08:59 UTC 2018


On 12/7/2018 6:58 AM, Chris Dent wrote:
> * <https://review.openstack.org/#/c/544683/>
>    Account for host agg allocation ratio in placement
>    (Still in rocky/)

Given https://bugs.launchpad.net/nova/+bug/1804125 and the discussion 
with the operator in there, I've been thinking about this again lately. 
We will soon [1] at least have the restriction documented but the 
comment from the operator in that bug is painful:

"""
What's more distressing is that this appears to have produced a schism 
between the intended, documented functions of Nova scheduler and the 
actual operation of those functions on several consecutive releases of 
OpenStack.

If the Aggregate* filters are no longer functional, and are no longer 
intended to be so, then I would think they should reasonably have been 
removed from the documentation and from the project so that deployers 
wouldn't expect to rely on them.
"""

With https://review.openstack.org/#/q/topic:bp/initial-allocation-ratios 
we at least have some sanity in nova-compute and you can control the 
allocation ratios per-compute (resource provider) either via nova config 
(the CERN use case) or the placement API using RBAC (the mgagne 
scenario, with placement RBAC added in Rocky).

What is missing is something user-friendly for those that want to 
control allocation ratios in aggregate from the API. In Dublin we said 
we'd write an osc-placement CLI to help with this:

https://etherpad.openstack.org/p/nova-ptg-rocky-placement ~L37

But that didn't happen unfortunately. It doesn't mean we couldn't still 
easily add that. That solution does require tooling changes from 
deployers though.

The other alternative is Jay's spec which is to have nova-api 
mirror/proxy allocation ratio information from the compute host 
aggregates API to the placement API. Since Rocky the compute API already 
mirrors aggregate information to placement, so this would be building on 
that to also set allocation ratio information on each resource provider 
within said aggregate in placement.

Part of me doesn't like that proxy work given our stance on no more 
proxies [2] but on the other hand we definitely regressed our own 
compute API (and scheduler) in Ocata, so it seems on us to provide the 
most user-friendly (no upgrade impact) way to solve that.

Either way we go, at this point, doesn't it mean we can deprecate the 
Aggregate* filters since they are essentially useless when using the 
FilterScheduler and placement (remember the CachingScheduler is gone now)?

[1] 
https://review.openstack.org/#/q/Ifaf596a8572637f843f47daf5adce394b0365676
[2] 
https://docs.openstack.org/nova/latest/contributor/project-scope.html#api-scope

-- 

Thanks,

Matt



More information about the openstack-discuss mailing list