[openstack-dev] [nova] [placement] placement update 18-11
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,
[Add yours here?]
* 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
Propose standardized provider descriptor file
VMware: place instances on resource pool
Spec: report client placement version discovery
Update placement aggregates spec to clarify generation handling
Provide error codes for placement API
mirror nova host aggregates to placement API
Proposes NUMA topology with RPs
Account for host agg allocation ratio in placement
Spec for isolating configuration of placement database
Support default allocation ratios
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.
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?
Purge comp_node and res_prvdr records during deletion of
Migrate legacy-osc-placement-dsvm-functional job in-tree
A huge pile of improvements to osc-placement
report client: placement API version discovery
Add compute capabilities traits (to os-traits)
General policy sample file for placement
Provide framework for setting placement error codes
These are changes to microversion-parse to move the placement
microversion handling into a library usable by others.
Get resource provider by uuid or name (osc-placement)
Fix comments in get_all_with_shared()
Fixes related to shared providers
Add more functional test for placement.usage
placement: Make API history doc more consistent
[Add yours here?]
Chris Dent ٩◔̯◔۶ https://anticdent.org/
freenode: cdent tw: @anticdent
More information about the OpenStack-dev