[openstack-dev] [nova] [placement] placement update 18-10
cdent+os at anticdent.org
Fri Mar 9 12:46:12 UTC 2018
Welcome back to your regularly scheduled placement update. I'm still
gathering loose ends from the PTG, so plenty of this will be context
setting, but I'll try to provide the usual too many links.
As mentioned in the last update I'm going to adjust these reports a
bit to make them a bit more focused and also (I hope) shrink the
amount of time it takes to create them. The main visible changes
* The name: it will just be "placement update" now as resource
providers doesn't really cover it.
* I'm going to focus more on reviews and specs that are directly
focused on how placement is changing or used, and less on those
that are "nova using placement as it is". This is not to suggest
that that work is in any way less important, simply an acceptance
that there's a lot of work in progress and this can't cover all of
it. Also there's a useful boundary there that we want to keep as
strong as possible. So, for example, the way in which minimum
bandwidth requirements will use traits is not in, but the fact
that that work may require a way to merge traits is.
* I'm adding a section on placement extraction. This is one of my
primary occupations at the moment, so I'd like to keep track of
it somewhere, here seems good. That work also informs the "useful
boundary" stuff above.
* A questions section has been added for things that seem important
but I don't know about, discovered while creating these things.
# Most Important
Jay posted a good review of what happened at the PTG and how it will
There are few specs that came out of that, or were already in
progress, listed below.
Some of the items in Jay's message are TODOs that need a volunteer
to blueprint and spec.
In the meantime many things are dependent on the update provider
tree work, so getting that merged sooner than later is important.
# What's Changed
A big new concept from the PTG is the idea of consumer uuid's
getting a generation so that allocations for a single consumer can
be managed from multiple parties and those parties can "confirm
There's also code in progress such that a generation is available
immediately when first creating a resource provider. And code to
ensure that generations are used when managing aggregates.
There's a bit of theme here.
What's the status of shared resource providers? Did we even talk
about that in Dublin?
* Placement related bugs without owners: https://goo.gl/TgiPXb
* In progress placement bugs: https://goo.gl/vzGGDQ
Report CPU features to placement service by traits API
Return Generation from Resource Provider Creation
Propose standardized provider descriptor file
Express forbidden traits in placement API
VMware: place instances on resource pool
Spec: report client placement version discovery
Update placement aggregates spec to clarify generation handling
Provide error codes for placement API
WIP:Specification for using cache as a resource using cache
(This is something that probably should be more placement oriented
than it currently is.)
mirror nova host aggregates to placement API
Support traits in Glance
# Main Themes
## Update Provider Tree
The ability of virt drivers to represent what resource providers
they know about--whether that be numa, or clustered resources--is
supported by the update_provider_tree method. Part of it is done,
but some details remain:
## Request Filters
These are a way for the nova scheduler to doctor the request being
sent to placement, using a sane interface.
## Mirror nova host aggregates to placement
This makes it so some kinds of aggregate filtering can be done
"placement side" by mirroring nova host aggregates into placement
## Forbidden Traits
A way of expressing "I'd live resources that do _not_ have trait X".
Just a spec so far:
## Consumer Generations
Not yet started.
I wrote up an email with the current state of and plan for
extracting placement to its own project:
There's plenty of volunteer opportunities in there. One fairly major
task is to create an os-resource-classes lib, akin to os-traits.
* move resource provider objects
(The base of that stack needs to be split into smaller pieces.)
Purge comp_node and res_prvdr records during deletion of
Scheduler multiple workers support
Migrate legacy-osc-placement-dsvm-functional job in-tree
A huge pile of improvements to osc-placement
Get a generation when posting to create a new rp
placement: generation in provider aggregate APIs
report client: placement API version discovery
Add compute capabilities traits (to os-traits)
Add HW_NIC_SRIOV_TRUSTED trait
Add default values for allocation ratios
General policy sample file for placement
Provide framework for setting placement error codes
Feh, that certainly didn't end up any smaller. Mostly because of
specs. Go read some specs!
Chris Dent (⊙＿⊙') https://anticdent.org/
freenode: cdent tw: @anticdent
More information about the OpenStack-dev