Handling Reshaped Provider Trees

Registered by Eric Fried on 2018-06-05

Virt drivers need to be able to change the structure of the provider trees they expose. When moving existing resources, existing allocations need to be moved along with the inventories. And this must be done in such a way as to avoid races where a second entity can create or remove allocations against the moving inventories.

Blueprint information

Status:
Started
Approver:
Matt Riedemann
Priority:
Essential
Drafter:
Eric Fried
Direction:
Needs approval
Assignee:
None
Definition:
Pending Approval
Series goal:
Accepted for train
Implementation:
Needs Code Review
Milestone target:
None
Started by
Matt Riedemann on 2018-06-19

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/reshape-provider-tree,n,z

Addressed in nova-specs by: https://review.openstack.org/572583
    Spec: Handling Reshaped Provider Trees

Gerrit topic: https://review.openstack.org/#q,topic:cd/placement-librarize,n,z

Addressed by: https://review.openstack.org/572576
    Provide a direct interface to placement

Gerrit topic: https://review.openstack.org/#q,topic:placement-direct-as-adapter,n,z

Addressed by: https://review.openstack.org/576236
    WIP: Compute: Handle reshaped provider trees

Approved for Rocky. -- mriedem 20180619

Addressed by: https://review.openstack.org/576927
    WIP: [placement] Add /reshaper handler for POST

Addressed by: https://review.openstack.org/577200
    [placement] Extract create_allocation_list

Addressed by: https://review.openstack.org/582350
    Make reshape-provider-tree reflect reality

Addressed by: https://review.openstack.org/582382
    do not assume 1 consumer in AllocList.delete_all()

Addressed by: https://review.openstack.org/582383
    perform reshaper operations in single transaction

Addressed by: https://review.openstack.org/582663
    PoC: reshaper guts with inventory two-step

Addressed by: https://review.openstack.org/584598
    Make get_allocations_for_resource_provider raise

Addressed by: https://review.openstack.org/584599
    Report client: Real get_allocs_for_consumer

Addressed by: https://review.openstack.org/584648
    WIP: get_allocations_for_provider_tree

Addressed by: https://review.openstack.org/585033
    reshaper: Look up provider if not in inventories

Addressed by: https://review.openstack.org/585034
    Report client: _reshape helper, placement min bump

Addressed by: https://review.openstack.org/585049
    WIP: Report client: update_from_provider_tree w/reshape

We're past feature freeze for Rocky, so this must be deferred. Please re-propose the spec for Stein if you'd like to work on it next cycle. -- melwitt 20180727

Addressed by: https://review.openstack.org/588094
    WIP: only _init_compute_node on startup

Gerrit topic: https://review.openstack.org/#q,topic:bug/1758057,n,z

Addressed by: https://review.openstack.org/592650
    Repropose reshaper spec for Stein

Re-approved for Stein. -- mriedem 20180824

Addressed by: https://review.openstack.org/597218
    Do test_reshape with an actual startup

Addressed by: https://review.openstack.org/597220
    reshaper gabbit: Nix comments re doubled max_unit

Addressed by: https://review.openstack.org/597301
    Other host allocs may appear in gafpt during evac

Addressed by: https://review.openstack.org/598330
    Fix reshaper report client functonal test nits

Addressed by: https://review.openstack.org/598387
    Fix nits: Compute: Handle reshaped provider trees

Addressed by: https://review.openstack.org/599208
    libvirt: implement reshaper for vgpu

Gerrit topic: https://review.openstack.org/#q,topic:bp/vgpu-stein,n,z

Addressed by: https://review.openstack.org/520313
    xenapi(N-R-P): Add API to support vgpu resource provider create

Gerrit topic: https://review.openstack.org/#q,topic:bp/vgpu-rocky,n,z

Addressed by: https://review.openstack.org/521717
    xenapi(N-R-P):Get vgpu info from `allocations`

Addressed by: https://review.openstack.org/521041
    xenapi(N-R-P): support compute node resource provider update

Gerrit topic: https://review.openstack.org/#q,topic:powervm-parity,n,z

Addressed by: https://review.openstack.org/614643
    PowerVM upt parity for reshaper, DISK_GB reserved

Addressed by: https://review.openstack.org/631559
    Add functional test for libvirt vgpu reshape

Addressed by: https://review.openstack.org/636591
    WIP: Use the correct mdev allocated from the pGPU

Addressed by: https://review.openstack.org/639647
    FUP: docs nit

Addressed by: https://review.openstack.org/639854
    Test proper allocation of devices during reshape

Addressed by: https://review.openstack.org/639974
    handle mdev_type device in fakelibvirt

I'm deferring this to Train because although the libvirt driver implemented reshapes for VGPU inventory and allocations, the xenapi driver did not and there is no FFU support. -- mriedem 20190311

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.