[openstack-dev] [nova] placement/resource providers update 35

Chris Dent 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:

     http://lists.openstack.org/pipermail/openstack-dev/2017-September/122233.html

# 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

     https://developer.openstack.org/api-ref/placement/

and making any necessary tweaks would be great.

# Bugs

I'm going to skip the bugs section this week, other than to say there
are 26 pending bugs tagged with "placement":

     https://bugs.launchpad.net/nova/+bugs?field.tag=placement

Please have a look.

# Docs

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:

     https://review.openstack.org/#/c/498830/

There's also a spec for the concept of alternate hosts:

     https://review.openstack.org/#/c/504275/

(Not sure if both of these are relevant or the former supersedes the
latter?)

The implementation starts at:

     https://review.openstack.org/#/c/486215/

## Migration UUID allocation handling

See https://review.openstack.org/#/q/topic:bp/migration-allocations
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
single request).

## Nested Providers

https://review.openstack.org/#/q/topic:bp/nested-resource-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:

   resources=<classes>&required=<traits>&resource1=<classes>&required1=<traits>

http://lists.openstack.org/pipermail/openstack-dev/2017-September/122158.html

The spec for nested work has been re-proposed for queens:

     https://review.openstack.org/#/c/505209/

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
in Denver.

## Traits

Work continues apace on getting filtering by traits working:

     https://review.openstack.org/#/c/489206/

## Placement osc-plugin

There's renwed interest in having the placement osc plugin be
available and useful. That work is in progress at

     https://review.openstack.org/#/q/topic:bp/placement-osc-plugin

# Other Codes/Specs/Stuff

* https://review.openstack.org/#/c/469048/
     Update the placement deployment instructions
     This has been around for nearly 4 months.

* https://review.openstack.org/#/q/topic:bug/1702420
   Fixes for bad mappings of shared providers

* https://review.openstack.org/#/c/504540/
   Spec for limiting /allocation_candidates

* https://review.openstack.org/#/q/topic:bug/1714237
   Tests for live migration delete

* https://review.openstack.org/#/q/topic:bug/1712045
   Tests for migration force_complete

* https://review.openstack.org/#/c/493865/
     functional tests for live migrate

* https://review.openstack.org/#/c/494136/
     Allow shuffling of best weighted hosts

* https://review.openstack.org/#/c/495159/
     tests for resource allocation during soft delete

* https://review.openstack.org/#/c/485209/
     gabbi tests for shared custom resource class

* https://review.openstack.org/#/c/496853/
     Spec for minimal cache-headers in placement
     poc: https://review.openstack.org/#/c/495380/

* https://review.openstack.org/#/c/489633/
     Update RT aggregate map less frequently

* https://review.openstack.org/#/c/494206/
     Remove the Pike migration code for flavor migration

* https://review.openstack.org/#/c/468797/
     Spec for requesting traits in flavors

* https://review.openstack.org/#/c/428481/
     Request zero root disk for boot-from-volume instances
     (Relevant for making sure that disk allocations are correct.)

* https://review.openstack.org/#/c/452006/
     Add functional test for two-cell scheduler behaviors

* https://review.openstack.org/#/c/497399/
     Extend ServerMovingTests with custom resources

* https://review.openstack.org/#/c/497733/
     WIP spec Report CPU features to placement service by traits API

* https://review.openstack.org/#/c/496847/
     Add missing tests for _remove_deleted_instances_allocations

* https://review.openstack.org/#/c/492247/
     Use ksa adapter for placement conf & requests

* https://review.openstack.org/#/c/492571/
     Make compute log less verbose with allocs autocorrection

* https://review.openstack.org/#/c/499826/
    Include /resource_providers/uuid/allocations link
    (controversy around this one!)

* https://review.openstack.org/#/q/topic:bug/1718455
   Fix moving a single instance when it was created as part of a
   multiple

(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.)

# End

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
schedule.

-- 
Chris Dent                      (⊙_⊙')         https://anticdent.org/
freenode: cdent                                         tw: @anticdent


More information about the OpenStack-dev mailing list