[openstack-dev] [nova] [placement] placement update 18-13

Chris Dent cdent+os at anticdent.org
Fri Mar 30 14:50:23 UTC 2018


This is an "expand" style update. Meaning I'm actively searching for
code and specs that didn't show up on last week's update (which was
a "contract").

# Most Important

What's pretty obvious from this expand session is we probably have
way too much work in progress for the number of people available to
review and write code.

There's been some extended discussion on how to manage various bits
of the interaction of Cyborg, Nova and Placement. It went kind of
all over the place. Eric tried to summarize some of the discussion
at:

     http://lists.openstack.org/pipermail/openstack-dev/2018-March/128888.html

That discussion (that is, the links from the summary) is probably
worth reviewing if you are evaluating doing "clever" things with
placement.

(There's also been a _lot_ of discussion around NUMA handling and
interactions between nova, neutron and placement. I hope someone
will summarize that at some point.)

Earlier in the week there was a spec review sprint and while some
things merged there are still plenty of outstanding sprints. This
week also saw the start of runways (which has an impact on when
specs are going to be evaluated):

     https://etherpad.openstack.org/p/nova-runways-rocky

Note that something _not_ being on a runway doesn't mean you
shouldn't review it, rather that if you're trying to decide what to
review, the runways help to indicate priorities and stuff that is
ready now. There is always plenty of other stuff that is ready.

Update provider tree and nested allocation candidates remain
critical basic functionality on which much else is based.

# What's Changed

A spec modification was merged: to allow multiple 'member_of'
parameters in resource provider and allocation candidated GET
requests. This supports the in progress request filter work.

'member_of' support (without the multi-handling above) for
allocation_candidates merged.

Functional db tests that are on the placement side of the
nova<->placement interaction have been moved under the placement
hierarchy.

Placement now uses microversion-perase 0.2.1, which extracted much
of the microversion middleware and related code from placement to
that library. So there's less code in placement now, and some code
that other folk can use if they like.

# Questions

* If a trait traits in placement and nobody sees it, is it state or
   status?

# Bugs

* Placement related bugs not yet in progress:  https://goo.gl/TgiPXb
   16, +1 on last week
* In progress placement bugs: https://goo.gl/vzGGDQ
   12, -1 on last week

# Specs

(There are too many of these)

* https://review.openstack.org/#/c/549067/
      VMware: place instances on resource pool
      (using update_provider_tree)

* https://review.openstack.org/#/c/418393/
      Provide error codes for placement API

* https://review.openstack.org/#/c/545057/
      mirror nova host aggregates to placement API

* https://review.openstack.org/#/c/552924/
     Proposes NUMA topology with RPs

* https://review.openstack.org/#/c/544683/
     Account for host agg allocation ratio in placement

* https://review.openstack.org/#/c/552927/
     Spec for isolating configuration of placement database

* https://review.openstack.org/#/c/552105/
     Support default allocation ratios

* https://review.openstack.org/#/c/438640/
     Spec on preemptible servers

* https://review.openstack.org/#/c/556873/
   Handle nested providers for allocation candidates

* https://review.openstack.org/#/c/556971/
   Add Generation to Consumers

* https://review.openstack.org/#/c/554305/
   Mention (no) granular support for image traits

* https://review.openstack.org/#/c/557912/
   Update the vGPU spec

* https://review.openstack.org/#/c/557065/
   Proposes Multiple GPU types

* https://review.openstack.org/#/c/555081/
   Standardize CPU resource tracking

* https://review.openstack.org/#/c/552722/
   NUMA-aware live migration

* https://review.openstack.org/#/c/502306/
   Network bandwidth resource provider

* https://review.openstack.org/#/c/509042/
   Propose counting quota usage from placement

* https://review.openstack.org/#/c/557580/
   Fix endpoint URI /allocation_requests
   (reality fix)

# 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. This is still trucking
along, is still critical:

        https://review.openstack.org/#/q/topic:bp/update-provider-tree

## Nested providers in allocation candidates

Representing nested provides in the response to GET
/allocation_candidates is required to actually make use of all the
topology that update provider tree will report.

      https://review.openstack.org/#/q/topic:bp/nested-resource-providers
      https://review.openstack.org/#/q/topic:bp/nested-resource-providers-allocation-candidates

## Request Filters

A generic mechanism to allow the scheduler to futher refine the
query made to /allocation_candidates to account for things like
aggregates.

     https://review.openstack.org/#/q/topic:bp/placement-req-filter

This drove the need for multiple member_of query params mentioned
above.

## 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
aggregates.

        https://review.openstack.org/#/q/topic:bp/placement-mirror-host-aggregates

It's part of what will make the req filters above useful.

## Forbidden Traits

A way of expressing "I'd like resources that do _not_ have trait X".
This is ready for review:

      https://review.openstack.org/#/q/topic:bp/placement-forbidden-traits

## Consumer Generations

There's a spec for this now:

     https://review.openstack.org/#/q/topic:bp/add-consumer-generation

# Extraction

No new code on the extraction front this week. Extraction related
things continue to be associated with this topic:

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

The spec for optional database handling got some review during the
spec sprint, but not from spec cores, so it still needs some
attention:

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

Jay has declared that he's going to start work on the
os-resources-classes library.

# Other

Since this is an expand week, I've tried to add whatever else I can
find to this list. Stuff that's already had at least a week on the
list is at the front of the list. It would be nice if those things
got some attention before the newer stuff (even if to say "no, kill
this").

There are 21 entries here +10 on last week.

* https://review.openstack.org/#/c/546660/
      Purge comp_node and res_prvdr records during deletion of
      cells/hosts

* https://review.openstack.org/#/q/topic:bp/placement-osc-plugin-rocky
      A huge pile of improvements to osc-placement

* https://review.openstack.org/#/c/546713/
      Add compute capabilities traits (to os-traits)

* https://review.openstack.org/#/c/524425/
      General policy sample file for placement

* https://review.openstack.org/#/c/546177/
      Provide framework for setting placement error codes

* https://review.openstack.org/#/c/527791/
     Get resource provider by uuid or name (osc-placement)

* https://review.openstack.org/#/c/533195/
     Fix comments in get_all_with_shared()

* https://review.openstack.org/#/q/topic:bug/1732731
     Fixes related to shared providers

* https://review.openstack.org/#/c/477478/
     placement: Make API history doc more consistent

* https://review.openstack.org/#/c/557355/
   Add to contributor docs about handler testing

* https://review.openstack.org/#/c/556631/
   doc: Upgrade placement first

* https://review.openstack.org/#/c/556669/
   Handle agg generation conflict in report client

* https://review.openstack.org/#/c/556628/
   Slugification utilities for placement names

* https://review.openstack.org/#/c/557086/
   Remove usage of [placement]os_region_name

* https://review.openstack.org/#/c/556633/
   Get rid of 406 paths in report client

* https://review.openstack.org/#/c/537614/
   Add unit test for non-placement resize

* https://review.openstack.org/#/c/554357/
   Address issues raised in adding member_of to GET /a-c

* https://review.openstack.org/#/c/533396/
   Fix allocation_candidates not to ignore shared RPs

* https://review.openstack.org/#/q/topic:bug/1724613
   Sharing-related bug fixes

* https://review.openstack.org/#/q/topic:bug/1732731
   More sharing related bug fixes

* https://review.openstack.org/#/c/493865/
   cover migration cases with functional tests

# End

Too much.

-- 
Chris Dent                       ٩◔̯◔۶           https://anticdent.org/
freenode: cdent                                         tw: @anticdent


More information about the OpenStack-dev mailing list