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

Chris Dent cdent+os at anticdent.org
Fri Mar 16 11:23:12 UTC 2018

Here's a placement update!

# Most Important

While work has started on some of the already approved specs, there
are still a fair few under review, and a couple yet to be written.
Given the number of specs we've got going it's entirely likely we've
bitten off more than we can chew, but we'll see. Getting specs
landed early makes it easier to get the functionality merged sooner,
so: review some specs.

In active code reviews, the update provider tree stuff remains very
important as it's the keystone in getting the nova-side of placement
interaction working best.

# What's Changed

All the resource provider objects (the file resource_provider.py)
have moved under nova/api/openstack/placement and now inherit
directly of OVO. This is to harden and signal the boundary between
nova and placement, helping not just in the eventual extraction of
placement, but also in making placement lighter.  More on related
code in the extraction section below.

Standard resource class fields have been moved to a top level file,
rc_fields.py. This is a stopgap until os-resource-classes is

A series of conversations, nicely summarized by Eric on this list


, showed that the way we are managing the addition and removal of
traits and aggregates in the compute environment needs some tweaks
to control how and by whom changes can be made. Code is in progress
to deal with that, but the posting is worth a read to catch up on
the reasoning. It's not simple, but neither is the situation.

Aggregates can be managed with a generation now and probably today
code will merge that allows a generation in the a response when
POSTing to create a resource provider.

The nova-scheduler process can run with multiple workers if the
driver is the filter scheduler. It will be run that way in devstack,

# Questions

[Add yours here?]

# Bugs

* Placement related bugs without owners:  https://goo.gl/TgiPXb
   15, +1 on last week
* In progress placement bugs: https://goo.gl/vzGGDQ
   11, no data for last week (because I only realized today I should
   do this)

# Specs

* https://review.openstack.org/#/c/550244/
    Propose standardized provider descriptor file

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

* https://review.openstack.org/#/c/549184/
    Spec: report client placement version discovery

* https://review.openstack.org/#/c/548237/
    Update placement aggregates spec to clarify generation handling

* 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/4
   Spec on preemptible servers

# 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:


There's new stuff in here for the add/remove traits and aggregates
stuff discussed above.

## Request Filters

These are a way for the nova scheduler to doctor the request being
sent to placement, using a sane interface.


That is waiting on the member_of functionality to merge:


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


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".
Spec for this has been approved, but the code hasn't been started

## Consumer Generations

In discussion yesterday it was agreed that edleafe will start the
ball rolling on this and I (cdent) will be his virtual pair.

# Extraction

As mentioned above there's been some progress here: objects have
moved under the placement hierarchy. The next patch in that stack is
to move some exceptions


followed by code to use a different configuration setting and setup
for the placement database connection. This has an old -2 on it,
requesting a spec to describe what's going on. That spec is here:


There's work in progress to move some of the resource provider
db-related functional tests to a more placement-ish location:


At some point we'll need to start the process of creating
os-resource-classes. Are there any volunteers for this?

# Other

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

* https://review.openstack.org/#/c/547812/
    Migrate legacy-osc-placement-dsvm-functional job in-tree

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

* https://review.openstack.org/#/c/548983/
    report client: placement API version discovery

* 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/495356/
   These are changes to microversion-parse to move the placement
   microversion handling into a library usable by others.

* 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/513264/
   Add more functional test for placement.usage

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

[Add yours here?]

# End

/me blinks

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

More information about the OpenStack-dev mailing list