Document review priorities for Ocata
This is based on the review priorities session held at the Ocata summit in Barcelona. Change-Id: Idc1d5add88e2ed95a43e34ade526e25229fe2bb8
This commit is contained in:
parent
15a0da1190
commit
3d4418d40a
@ -4,4 +4,126 @@
|
||||
Ocata Project Priorities
|
||||
========================
|
||||
|
||||
TODO: fill this in after summit
|
||||
List of efforts the Nova development team is prioritizing for reviews in the
|
||||
Ocata release (in no particular order).
|
||||
|
||||
+-------------------------------------------+-----------------------+
|
||||
| Priority | Primary Contacts |
|
||||
+===========================================+=======================+
|
||||
| `Cells V2`_ | `Dan Smith`_ |
|
||||
| | `Melanie Witt`_ |
|
||||
+-------------------------------------------+-----------------------+
|
||||
| `Resource Providers`_ | `Jay Pipes`_ |
|
||||
| | `Sylvain Bauza`_ |
|
||||
| | `Chris Dent`_ |
|
||||
+-------------------------------------------+-----------------------+
|
||||
| `API Improvements`_ | `Alex Xu`_ |
|
||||
| | `Kevin Zheng`_ |
|
||||
+-------------------------------------------+-----------------------+
|
||||
| `Network Aware Scheduling`_ | `John Garbutt`_ |
|
||||
+-------------------------------------------+-----------------------+
|
||||
|
||||
.. _Dan Smith: https://launchpad.net/~danms
|
||||
.. _Melanie Witt: https://launchpad.net/~melwitt
|
||||
.. _Jay Pipes: https://launchpad.net/~jaypipes
|
||||
.. _Sylvain Bauza: https://launchpad.net/~sylvain-bauza
|
||||
.. _Chris Dent: https://launchpad.net/~cdent
|
||||
.. _Alex Xu: https://launchpad.net/~xuhj
|
||||
.. _Kevin Zheng: https://launchpad.net/~zhengzhenyu
|
||||
.. _John Garbutt: https://launchpad.net/~johngarbutt
|
||||
|
||||
Cells v2
|
||||
--------
|
||||
|
||||
A single cells v2 deployment was made possible in the Newton release, and CI
|
||||
testing was added, but cells v2 was still optional as of Newton.
|
||||
|
||||
In Ocata, the goal is to support multiple cells v2 cells in a deployment. There
|
||||
are several priority efforts to get us there.
|
||||
|
||||
* `Scheduler interaction for cells v2`_: This moves instance creation to the
|
||||
nova-conductor service so that when the scheduler picks a host, the instance
|
||||
is built in a specific cell. There are no plans in Ocata to support rebuilds
|
||||
or other instance move operations, i.e. migrations, between cells.
|
||||
* `Quotas in the API cell`_: The quotas tables have moved to the API database
|
||||
but we want to avoid an 'up-call' from the compute cells to the API when
|
||||
handling quota commits and rollbacks. With cells v2 we have an opportunity to
|
||||
rethink how Nova supports counting resources and tracking quota, so this
|
||||
effort aims to move quota handling to a more simplified solution which is
|
||||
more eventually consistent and avoids invalid over-quota failures by design.
|
||||
* Support a simple python merge operation when sorting and/or filtering a list
|
||||
of instances across multiple cells. Long-term this should be handled by
|
||||
`Searchlight`_ but for Ocata we will have a simple but albeit less performant
|
||||
solution.
|
||||
* Continuous integration testing with cells v2 enabled by default. We aim to
|
||||
make cells v2 required in Ocata deployments, and to get there we need to have
|
||||
the community CI jobs running with cells v2. This will require changes to
|
||||
grenade for upgrade testing and also testing multiple cells v2 cells with the
|
||||
multinode job.
|
||||
|
||||
.. _Scheduler interaction for cells v2: ../specs/ocata/approved/cells-scheduling-interaction.html
|
||||
.. _Quotas in the API cell: ../specs/ocata/approved/cells-count-resources-to-check-quota-in-api.html
|
||||
.. _Searchlight: http://docs.openstack.org/developer/searchlight/
|
||||
|
||||
Resource Providers
|
||||
------------------
|
||||
|
||||
* `Placement / Scheduler interaction`_: The Nova Filter Scheduler will make
|
||||
requests to the placement API for simple compute node resources such as VCPU,
|
||||
RAM and disk. This allows the scheduler to offload that work to the placement
|
||||
service rather than query all compute nodes from the Nova database and then
|
||||
iterate those potential hosts through all of the python filters. The
|
||||
placement service can optimize by performing the compute node resource
|
||||
provider filtering with SQL queries directly.
|
||||
* `Handle aggregate resources`_: This is continuing work from Newton where we
|
||||
need to be able to model resource provider aggregates for things like shared
|
||||
storage and IP allocation pools. Then the resource tracker in the compute
|
||||
nodes can pull this information from the placement service when a request is
|
||||
made for shared storage in a compute node within a particular aggregate. The
|
||||
allocation claim is then made on the resource provider rather than the
|
||||
compute node.
|
||||
* `Custom resource classes`_: A REST API will be provided for working with
|
||||
resource classes and creating custom resource classes which will be used when
|
||||
creating inventory and allocation records for Ironic nodes.
|
||||
|
||||
.. _Placement / Scheduler interaction: ../specs/ocata/approved/resource-providers-scheduler-db-filters.html
|
||||
.. _Handle aggregate resources: ../specs/newton/implemented/generic-resource-pools.html
|
||||
.. _Custom resource classes: ../specs/ocata/approved/custom-resource-classes.html
|
||||
|
||||
API Improvements
|
||||
----------------
|
||||
|
||||
These improvements are a priority because of their relation to being able to
|
||||
sort and filter instances across multiple cells.
|
||||
|
||||
* `Query parameter validation`_: The v2.1 API already uses json schema
|
||||
to validate request bodies but request parameters are validated in code,
|
||||
sometimes inconsistently, and without microversion support. This effort will
|
||||
add json schema validation to request query parameters and allow the schema
|
||||
to change with microversions over time.
|
||||
* `Limit instance sort/filter parameters`_: For administrators, sort and filter
|
||||
parameters are passed through to the DB API. This has a number of problems
|
||||
such as the filter parameters may be on columns that are not indexed and as
|
||||
such the query may have poor performance. The columns may also be on joined
|
||||
tables where sorting and filtering does not make sense. So this effort is to
|
||||
restrict the sort and filter parameters when listing instances to a known
|
||||
good set which could be expanded later if needed using microversions.
|
||||
|
||||
.. _Query parameter validation: ../specs/ocata/approved/consistent-query-parameters-validation.html
|
||||
.. TODO(mriedem): Replace the gerrit review link with a spec once merged.
|
||||
.. _Limit instance sort/filter parameters: https://review.openstack.org/#/c/393205/
|
||||
|
||||
Network Aware Scheduling
|
||||
------------------------
|
||||
|
||||
In Newton we started refactoring the internal Neutron v2 API code such that
|
||||
port create and update operations were decoupled. Port update is where the host
|
||||
binding happens. The `goal is to move`_ these operations out of the
|
||||
nova-compute service and into the nova-conductor service, where the placement
|
||||
service can eventually be used with IP allocation pools (for Neutron routed
|
||||
networks), and to also make a port binding or build failure less expensive from
|
||||
which to recover as it will be centrally managed in the conductor service
|
||||
rather than on each compute. Supporting Neutron routed networks is a dependency
|
||||
for using Neutron with multiple cells.
|
||||
|
||||
.. _goal is to move: ../specs/ocata/approved/prep-for-network-aware-scheduling-ocata.html
|
||||
|
Loading…
Reference in New Issue
Block a user