[placement] update 19-20
cdent+os at anticdent.org
Fri May 24 12:09:43 UTC 2019
Placement update 19-20. Lots of cleanups in progress, laying in the
groundwork to do the nested magic work (see themes below).
The poll to determine [what to do with the
will close at the end of today. Thus far the leader is
office hours. Whatever the outcome, the meeting that would happen
this coming Monday is cancelled because many people will be having a
# Most Important
The [spec for nested magic](https://review.opendev.org/658510) is
ready for more robust review. Since most of the work happening in
placement this cycle is described by that spec, getting it reviewed
well and quickly is important.
Generally speaking: review things. This is, and always will be, the
most important thing to do.
# What's Changed
* os-resource-classes 0.4.0 was released, promptly breaking the
placement gate (tests are broken not os-resource-classes).
* [Null root provider
protections](https://review.opendev.org/657716) have been removed
and a blocker migration and status check added. This removes a few
now redundant joins in the SQL queries which should help with our
ongoing efforts to speed up and simplify getting allocation
* I had suggested an additional core group for os-traits and
os-resource-classes but after discussion with various people it
was decided it's easier/better to be aware of the right subject
matter experts and call them in to the reviews when required.
Support Consumer Types. This is very close with a few details to
work out on what we're willing and able to query on. It's a week
later and it still only has reviews from me so far.
Spec for Nested Magic. Un-wipped.
Resource provider - request group mapping in allocation candidate.
This spec was copied over from nova. It is a requirement of the
overall nested magic theme. While it has a well-defined and
refined design, there's currently no one on the hook implement
These and other features being considered can be found on the
Some non-placement specs are listed in the Other section below.
(Numbers in () are the change since the last pupdate.)
There are 20 (-3) stories in [the placement
0 are [untagged](https://storyboard.openstack.org/#!/worklist/580).
2 (-2) are [bugs](https://storyboard.openstack.org/#!/worklist/574). 5 are
(-1) are [rfes](https://storyboard.openstack.org/#!/worklist/594).
2 are [docs](https://storyboard.openstack.org/#!/worklist/637).
If you're interested in helping out with placement, those stories
are good places to look.
* Placement related nova [bugs not yet in progress](https://goo.gl/TgiPXb)
on launchpad: 16 (0).
* Placement related nova [in progress bugs](https://goo.gl/vzGGDQ) on
launchpad: 7 (+1).
osc-placement is currently behind by 11 microversions. No change
since the last report.
Add 'resource provider inventory update' command (that helps with
aggregate allocation ratios).
Add support for 1.22 microversion
Provide a useful message in the case of 500-error
# Main Themes
## Nested Magic
At the PTG we decided that it was worth the effort, in both Nova and
Placement, to make the push to make better use of nested providers —
things like NUMA layouts, multiple devices, networks — while keeping
the "simple" case working well. The general ideas for this are
described in a [story](https://storyboard.openstack.org/#!/story/2005575)
and an evolving [spec](https://review.opendev.org/658510).
Some code has started, mostly to reveal issues:
Changing request group suffix to string
WIP: Allow RequestGroups without resources
Add NUMANetworkFixture for gabbits
Gabbi test cases for can_split
## Consumer Types
Adding a type to consumers will allow them to be grouped for various
purposes, including quota accounting. A
[spec](https://review.opendev.org/654799) has started. There are
some questions about request and response details that need to be
resolved, but the overall concept is sound.
As we explore and extend nested functionality we'll need to do some
work to make sure that the code is maintainable and has suitable
performance. There's some work in progress for this that's important
enough to call out as a theme:
Some work from Tetsuro exploring ways to remove redundancies in
the code. There's a [stack of good improvements](https://review.opendev.org/658778).
WIP: Optionally run a wsgi profiler when asked.
This was used to find some of the above issues. Should we make it
generally available or is it better as a thing to base off when
Avoid traversing summaries in _check_traits_for_alloc_request
Ed Leafe has also been doing some intriguing work on using graph
databases with placement. It's not yet clear if or how it could be
integrated with mainline placement, but there are likely many things
to be learned from the experiment.
# Other Placement
Miscellaneous changes can be found in [the usual
There are several [os-traits
# Other Service Users
New discoveries are added to the end. Merged stuff is removed.
Starting with the next pupdate I'll also be removing anything that
has had no reviews and no activity from the author in 4 weeks.
Otherwise these lists get too long and uselessly noisy.
Nova: Spec: Proposes NUMA topology with RPs
Nova: Spec: Virtual persistent memory libvirt driver
Nova: Check compute_node existence in when nova-compute reports
info to placement
Nova: spec: support virtual persistent memory
Workaround doubling allocations on resize
Nova: Pre-filter hosts based on multiattach volume support
Nova: Add flavor to requested_resources in RequestSpec
Blazar: Retry on inventory update conflict
Nova: count quota usage from placement
Nova: nova-manage: heal port allocations
Nova: Spec for a new nova virt driver to manage an RSD
Cyborg: Initial readme for nova pilot
Tempest: Add QoS policies and minimum bandwidth rule client
Nova-spec: Add PENDING vm state
nova-spec: Allow compute nodes to use DISK_GB from shared storage RP
nova-spec: RMD Plugin: Energy Efficiency using CPU Core P-State control
nova-spec: Proposes NUMA affinity for vGPUs. This describes a
legacy way of doing things because affinity in placement may be a
ways off. But it also [may not
Nova: heal allocations, --dry-run
Watcher spec: Add Placement helper
Cyborg: Placement report
Nova: Spec to pre-filter disabled computes with placement
rpm-packaging: placement service
Delete resource providers for all nodes when deleting compute service
nova fix for: Drop source node allocations if finish_resize fails
neutron: Add devstack plugin for placement service plugin
ansible: Add playbook to test placement
nova: WIP: Hey let's support routed networks y'all!
As indicated above, I'm going to tune these pupdates to make sure
they are reporting only active links. This doesn't mean stalled out
stuff will be ignored, just that it won't come back on the lists
until someone does some work related to it.
Chris Dent ٩◔̯◔۶ https://anticdent.org/
More information about the openstack-discuss