[openstack-dev] [nova] placement/resource providers update 35
cdent+os at anticdent.org
Fri Sep 22 11:53:37 UTC 2017
Update 35, after a hiatus for travel and the PTG, is playing catchup.
# Most Important
There was a great deal of discussion about many placement things at
the PTG, some near term, some very long term. The most important stuff
was that we adjusted some priorities and attitudes so that we're able
get stuff done. We're focused on three main priorities, concurrently:
* tracking allocations using migration record
* nested resource providers
* getting alternate destinations landed
The intent is to get these things done as early in the cycle as
possible to avoid the chaos we've experienced at the end of cycles for
a while now and gives us plenty of time to catch the fallout from the
changes (which history has shown will accumulate).
Naturally, the 3 priorities end up having lots of wayward children and
dependencies, so though that list looks short, it isn't really. For
example nested resource providers aren't much use without traits, so
finishing up the pending work on that still matters.
However some stuff, such as shared resource providers, modeling
distance for affinity, capturing every single use case for generic
device handling, and extracting placement to its own thing have been
punted to later.
See Matt's ptg placement summary for more on this stuff:
# What's Changed
Other than the stuff mentioned above, all the objects in in
nova/objects/resource_provider.py have been de-registered and
un-versioned. This was done because they are not used over RPC and we
want to enforce that they will never be used over RPC.
There's renewed interest in the osc-plugin for placement, I've added
it as a Theme.
# Help Wanted
Now that the placement api-ref has been published it's easy to review
as a whole. It's very likely it is incomplete or confusing, so having
a look at
and making any necessary tweaks would be great.
I'm going to skip the bugs section this week, other than to say there
are 26 pending bugs tagged with "placement":
Please have a look.
Nothing pending at this point, but the main priorities will require
changes to the api-ref and overview docs, eventually.
# Main Themes
## Alternate Destinations
We decided that a object is needed to represent the alternate
destinations so there's a spec pending for that:
There's also a spec for the concept of alternate hosts:
(Not sure if both of these are relevant or the former supersedes the
The implementation starts at:
## Migration UUID allocation handling
for the stack of changes that adjust move-related allocation handling
to use the migration uuid.
And https://review.openstack.org/#/q/topic:bp/post-allocations for a
spec and partial implementation of a method to make the above a bit
less racey (by allowing allocations from more than one consumer in a
## Nested Providers
That stack has been recently rebased and gets the initial bits for
being able to report and store nested providers to placement. Being
able to query for and represent those relationships in
/allocation_candidates will come soon, presumably.
The short term proposal for how to representing needing two of the
same thing, with different traits is to use numbered query strings:
The spec for nested work has been re-proposed for queens:
Because the query parameter adjustment is a microversion change either
the existing spec will need to be modified for the new query parameters,
or a separate spec for that will be needed. Jay volunteered for that
Work continues apace on getting filtering by traits working:
## Placement osc-plugin
There's renwed interest in having the placement osc plugin be
available and useful. That work is in progress at
# Other Codes/Specs/Stuff
Update the placement deployment instructions
This has been around for nearly 4 months.
Fixes for bad mappings of shared providers
Spec for limiting /allocation_candidates
Tests for live migration delete
Tests for migration force_complete
functional tests for live migrate
Allow shuffling of best weighted hosts
tests for resource allocation during soft delete
gabbi tests for shared custom resource class
Spec for minimal cache-headers in placement
Update RT aggregate map less frequently
Remove the Pike migration code for flavor migration
Spec for requesting traits in flavors
Request zero root disk for boot-from-volume instances
(Relevant for making sure that disk allocations are correct.)
Add functional test for two-cell scheduler behaviors
Extend ServerMovingTests with custom resources
WIP spec Report CPU features to placement service by traits API
Add missing tests for _remove_deleted_instances_allocations
Use ksa adapter for placement conf & requests
Make compute log less verbose with allocs autocorrection
Include /resource_providers/uuid/allocations link
(controversy around this one!)
Fix moving a single instance when it was created as part of a
(There's probably more, but I reckon that's plenty. Some of the things
on this list have been around a long time. Let's flush them through or
reject them please.)
There's been some discussion about avoiding placement-related topics
at the forum, to give other issues, notably feedback from ops and
users a greater opportunity. I think this is a great idea, we've
already got plenty queued up.
This week's prize for reading this far is a less encumbered Forum
Chris Dent (⊙＿⊙') https://anticdent.org/
freenode: cdent tw: @anticdent
More information about the OpenStack-dev