[openstack-dev] [nova] placement/resource providers update 23
cdent+os at anticdent.org
Fri May 19 13:15:42 UTC 2017
Here's your placement and resource providers update 23. There wasn't
one last week because of summit. As usual, please let me know if
there is anything incorrect or missing.
# From Summit
Placement was all over the place at summit, coming up as a relevant
piece of the puzzle in many sessions.
Jay's sessions were well attended and the questions seemed to
indicate that people understood the potential. Videos:
One (of three) of the VM and Baremetal sessions chose "cross project
placement" as a high priorty. See the "winners" section at the end
# What Matters Most
Claims against the placement API remain the highest priorty. There's
plenty of other work in progress too which needs to advance. Lots of
# What's Changed
Besides advancing some of the code (notably in claims and the
api-ref), and the additional of some alternate approaches on doing
claims, many people are still digesting summit.
"get providers sharing capacity"
https://review.openstack.org/#/c/460798/ merged just before summit.
This is the first in a stack of changes to allow selecting resource
providers based on association in aggregates where one of the
members has a trait of MISC_SHARES_VIA_AGGREGATE. This doesn't do
anything yet in part because it is big stack and in part because
nothing is yet managing the addition of the trait and aggregate
# Help Wanted
(This section not changed since last time)
Areas where volunteers are needed.
* General attention to bugs tagged placement:
* Helping to create api documentation for placement (see the Docs
* Helping to create and evaluate functional tests of the resource
tracker and the ways in which it and nova-scheduler use the
reporting client. For some info see
and talk to edleafe. He has a work in progress at:
that seeks input and assistance.
* Performance testing. If you have access to some nodes, some basic
benchmarking and profiling would be very useful.
# Main Themes
## Claims in the Scheduler
Work has started on placement-claims blueprint:
There are two different tracks of that work. One explores doing the
claims from the conductor, one from within the scheduler. There's a
related email thread about the summit session on this topic which is
worth reviewing (along with the dicussions on gerrit):
There's an interesting mix of trying to maintain sane code and
architecture while optimizing for common cases, preserving existing
(but not necessarily ideal) behaviors, and protecting against
pathology. Fun times.
The main API is in place. Debate raged on how best to manage updates
of standard os-traits. In the end a cache similar to the one used
for resource classes was created:
The code at that review needs some tweaks before it can be merged,
but is almost there.
Work will be required at some point on filtering resource providers
based on traits, and adding traits to resource providers from the
resource tracker. There's been some discussion on that in the
reviews of shared providers (below) because it will be a part of
the same mass (MASS!) of SQL.
## Shared Resource Providers
This work (when finished) makes it possible (amongst other things)
for use of shared disk resources to be tracked correctly.
Reviewers should be aware that the patches, at least as of today,
are structured in a way that evolves from the current state to the
eventual desired state in a way that duplicates some effort and
code. This was done intentionally by Jay to make the testing and
review more incremental. It's probably best to read through the
entire stack before jumping to any conclusions.
Several reviews are in progress for documenting the placement API.
This is likely going to take quite a few iterations as we work out
the patterns and tooling. But it's great to see the progress and
when looking at the draft rendered docs it makes placement feel like
a real thing™.
Find me (cdent) or Andrey (avolkov) if you want to help out or have
## Nested Resource Providers
(This section has not changed since last week)
On hold while attention is given to traits and claims. There's a
stack of code waiting until all of that settles:
## Ironic/Custom Resource Classes
(This section has not changed since last week)
There's a blueprint for "custom resource classes in flavors" that
describes the stuff that will actually make use of custom resource
The spec has merged, but the implementation has not yet started.
Over in Ironic some functional and integration tests have started:
There's also a spec in progress discussing ways to filter baremetal
nodes by tenant/project:
# Other Code/Specs
Work has started on an osc-plugin that can provide a command
line interface to the placement API.
It's quite likely that this code is going to need to be adopted by
Devstack change to install that plugin
Clean up the interface for getting inventory information from
Use DELETE inventories method in report client. This is proving
somewhat more complicated than initially expected. DELETE of
inventories doesn't give us a new generation for the associated
Use a specific error message for inventory in use, not just the db
exception. Jay has identified that this too is somewhat more
complicated than initially expected, because for the time being
the message is being parsed client-side.
Add a test to ensure that placement microversions have no gaps
when there is more than one handler for a URL. This ought to be a
quick and easy merge.
Add a status check for legacy filters in nova-status.
Start the removal of the can_host column from the resource
providers database table. We're no longer going to use it. A
trait will indicate shared providers.
Handle new hosts for updating instance info in scheduler
Currently in merge conflict.
Don't send instance updates from compute if not using filter
I've left a few items off the list that have not received attention
for a few months. If they are truly important they will rise back up
again like zombies from the grave.
Your reward is zombie protection spray.
Chris Dent ┬──┬◡ﾉ(° -°ﾉ) https://anticdent.org/
freenode: cdent tw: @anticdent
More information about the OpenStack-dev