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

Chris Dent cdent+os at anticdent.org
Fri Feb 17 13:12:07 UTC 2017



Thanks to edleafe for doing last week's resource providers and placement update. This one will try to situate things for next week's PTG. Because of the PTG there will be no update next week. If everything goes to plan there should be a wealth of etherpads and some summaries which will be further summarized in the following week.

# What Matters Most

To make sure we address all the most relevant stuff next week, it would be useful for anyone interested or invested in placement to have a review of some etherpads, even if you aren't going to be at the PTG.

The overarching nova etherpad for the PTG is at:

     https://etherpad.openstack.org/p/nova-ptg-pike

The list of things related to placement is long enough to get its own:

     https://etherpad.openstack.org/p/nova-ptg-pike-placement

There's an also an etherpad for doing a retrospective on the ocata cycle. That has some placement related things on it. If you have some things to say on how placement development went this cycle, good or bad, please add them to:

     https://etherpad.openstack.org/p/nova-ocata-retrospective

# What's Changed

In the last week or so the main things to have changed are merges to master and backports of tweaks to status checks and deployment ordering (in systems like TripleO) and a fair number of bugs (for example, two fixes to generated SQL to make it work with postgresql). Master is now pike, so the functionality that didn't make it into ocata is once again being actively worked on (see lots of links below).

The full extent of the "Placement API Developer Notes" has merged. It's at:

     https://docs.openstack.org/developer/nova/placement_dev.html

If you're working on placement and have not read that, it's probably worth reading. If you find that something is missing, please say so so we can figure out how to fix it.

# Main Themes

The first two items listed below are the immediate feature priorities for placement.

## Custom Resource Classes (Ironic Inventories)

https://review.openstack.org/#/q/status:open+topic:bp/custom-resource-classes

We hoped to get this into Ocata but we didn't manage to bring it together in a way that was comprehensible and tested enough to be confident. There's since been some adjustments that should help with that but there remain some concerns on where in the layers of code the inventory handling should happen.

## Real use of Shared Resource Providers

https://review.openstack.org/#/q/status:open+topic:bp/shared-resources-pike

One of the big payoffs of the resource providers concept is that we'll finally be able to allocate use of shared resources (such as farms of disk) in a rational fashion. The changes at the topic above start that work. There's also an etherpad where discussion of some of
the options is in progress:

     https://etherpad.openstack.org/p/decision-finding-shared-inventory

You'll see from that we've still got some distance to go before we're all on the same page about how this is supposed to work.

## Resource Provider Traits

https://review.openstack.org/#/q/status:open+topic:bp/resource-provider-traits
https://review.openstack.org/#/q/status:open+topic:bp/resource-provider-tags

(We should decide on just one bp name here.)

This is the qualitative aspect of resource providers (e.g., disk which is SSD) and will allow requests to express preferences or requirements for types of things, not just quantities of things.

## Nested Resource Providers

https://review.openstack.org/#/q/status:open+topic:bp/nested-resource-providers

How to represent resources that are within other resources. Mostly to do with things like NUMA functionality and PCI devices hosted on a compute node.

## Docs

https://review.openstack.org/#/q/topic:cd/placement-api-ref

The start of creating an API ref for the placement API. Not a lot there yet as I haven't had much of an opportunity to move it along. There is, however, enough there for content to be started, if people have the opportunity to do so. Check with me to divvy up the work if you'd like to contribute.

## Claims into the Scheduler

This is something that will be talked about at the PTG as part of long term placement planning. Eventually requesting and claiming resources will be a single request to the placement API. We need to figure out the flow of how that is going to work.

# Other Code/Specs

Miscellaneous changes in progress. Bugs fixes, cleanups, leftovers. These need review and eventual merging.

* https://review.openstack.org/#/c/428612/
   Better exception and response message when failing to create a
   resource class.

* https://bugs.launchpad.net/nova/+bug/1635182
   Fixing it so we don't have to add json_error_formatter everywhere.
   There's a collection of related fixes attached to that bug report.

   Pushkar, you might want to make all of those have the same topic, or
   put them in a stack of related changes.

* https://review.openstack.org/#/q/status:open+topic:valid_inventories
   Fixes that ensure that we only accept valid inventories when setting
   them.

* https://review.openstack.org/#/c/416751/
   Removing the Allocation.create() method which was only ever used in
   tests and not in the actual, uh, creation of allocations.

* https://review.openstack.org/#/c/427330/
   Avoid deprecation warnings from oslo_context.

* https://review.openstack.org/#/q/topic:bp/delete-inventories-placement-api
   We need to be able to delete all the inventory hosted by one
   resource provider in one request. Right now you need one delete for
   each class of resource.

* https://review.openstack.org/#/c/418393/
   A spec for improving the level of detail and structure in placement
   error responses so that it is easier to distinguish between
   different types of, for example, 409 responses.

* https://review.openstack.org/#/c/423872/
   Spec for versioned-object based notification of events in the
   placement API.

* https://review.openstack.org/#/c/392891/
   CORS support in the placement API. We'll need this for browser-side
   clients.

* https://review.openstack.org/#/c/382613/
   A little demo script for showing how a cronjob to update inventory
   on a shared resource provider might work. This has been around for a
   long time, I created it because it seemed like having a sort of demo
   would be good, but it's been sitting around for a long time. It may
   not be aligned with what we need. If so I'd like to abandon it.

# Other Things

We started two etherpads to discuss plans for pike and the need for greater functional testing, but didn't make a ton of progress on either:

* https://etherpad.openstack.org/p/nova-scheduler-pike
* https://etherpad.openstack.org/p/nova-placement-functional

# End Matter

Thanks for reading this far. If you will be at the PTG next week, see you there. If you won't, we'll miss you and we'll make sure there's
information available that reflects what happened.

-- 
Chris Dent                 ¯\_(ツ)_/¯           https://anticdent.org/
freenode: cdent                                         tw: @anticdent


More information about the OpenStack-dev mailing list