supporting virtual persistent memory

Registered by Rui Zang

Persistent memory (pmem) devices had already been enabled in both QEMU-KVM and libvirt. This blueprint is seeking the support for such kind of devices in Nova.

Blueprint information

Status:
Complete
Approver:
John Garbutt
Priority:
Low
Drafter:
Rui Zang
Direction:
Approved
Assignee:
Rui Zang
Definition:
Approved
Series goal:
Accepted for train
Implementation:
Implemented
Milestone target:
None
Started by
Rui Zang
Completed by
Eric Fried

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:topic/pmem-specs,n,z

Addressed by: https://review.openstack.org/601596
    support virtual persistent memory

Addressed by: https://review.openstack.org/622893
    Virtual persistent memory libvirt driver implementation

Gerrit topic: https://review.openstack.org/#q,topic:bp/virtual-persistent-memory,n,z

Gerrit topic: https://review.openstack.org/#q,topic:bp/supporting,n,z

Addressed by: https://review.openstack.org/634547
    object: Add pmem_namespaces field to the NUMACell obj

Addressed by: https://review.openstack.org/634548
    object: Add virtual_pmems fields to the InstanceNUMACell obj

Addressed by: https://review.openstack.org/634549
    libvirt: Enable driver configures PMEM namespace when initiating libvirt driver

Addressed by: https://review.openstack.org/634550
    libvirt: Update PMEM namespaces info and usage

Addressed by: https://review.openstack.org/634551
    libvirt: report pmem namespaces resources by provider tree

Addressed by: https://review.openstack.org/634552
    API: parse pmem related flavor extra spec

Addressed by: https://review.openstack.org/634553
    scheduler: translate virtual pmems request to placement request group

Addressed by: https://review.openstack.org/634554
    update _numa_fit_instance_cell for the support of virtual_pmems

Addressed by: https://review.openstack.org/634555
    libvirt: boot VM with vpmems and cleanup vpmems when destroying

Addressed by: https://review.openstack.org/634556
    support VM resizing with vpmem data migration

Gerrit topic: https://review.opendev.org/#/q/topic:bp/virtual-persistent-memory

Addressed by: https://review.opendev.org/601596
    support virtual persistent memory

Addressed by: https://review.opendev.org/622893
    Virtual persistent memory libvirt driver implementation

Addressed by: https://review.opendev.org/662697
    db: Add vpmems to instance_extra

Addressed by: https://review.opendev.org/634548
    object: Add VirtualPMEM and VirtualPMEMList objs

Addressed by: https://review.opendev.org/634549
    libvirt: Enable driver configures PMEM namespace

Addressed by: https://review.opendev.org/634551
    libvirt: report pmem namespaces resources by provider tree

Addressed by: https://review.opendev.org/634552
    API: parse pmem related flavor extra spec

Addressed by: https://review.opendev.org/634553
    scheduler: translate vpmems request to placement request group

Addressed by: https://review.opendev.org/634555
    libvirt: boot VM with vpmems and cleanup vpmems when destroying

Addressed by: https://review.opendev.org/662702
    compute: update pmem allocation to instance

Addressed by: https://review.opendev.org/662709
    update migrations_context to support migration with vpmems

Addressed by: https://review.opendev.org/634556
    support VM resizing with vpmem data migration

Addressed by: https://review.opendev.org/669970
    update spec: virtual persistent memory

Addressed by: https://review.opendev.org/672956
    Indroduce new LibvirtConfigGuestPMEM

Addressed by: https://review.opendev.org/672957
    Populates existing pmems in libvirt device manager

Addressed by: https://review.opendev.org/672958
    Support instance creation and resize with pmems

Addressed by: https://review.opendev.org/675592
    Add functional tests for persistent memory

Addressed by: https://review.opendev.org/670782
    Add the virt driver interface for claim and unclaim the devices

Addressed by: https://review.opendev.org/670783
    Moves the allocation retrieving early

Addressed by: https://review.opendev.org/670784
    Calling the virt driver's claim/unclaim_for_instance in resource tracker

Addressed by: https://review.opendev.org/671388
    Add DeviceManager to the libvirt virt driver

Addressed by: https://review.opendev.org/670787
    Populates the existing mediated devices in the libvirt device manager

Addressed by: https://review.opendev.org/671222
    Using the claim/unclaim_for_instance for mdevs

Addressed by: https://review.opendev.org/671398
    Adds functional test for creating the instance with vgpus

Addressed by: https://review.opendev.org/675106
    Add functional tests for resize with VGPU

Addressed by: https://review.opendev.org/678447
    db: Add resources column in instance_extra table

Addressed by: https://review.opendev.org/678448
    object: Introduce Resource and ResouceList objs

Addressed by: https://review.opendev.org/678449
    Add resources dict into _Provider

Addressed by: https://review.opendev.org/678450
    Retrive the allocations early

Addressed by: https://review.opendev.org/678451
    Track orphan instances and error migrations in resource tracker

Addressed by: https://review.opendev.org/678452
    Claim resources in resource tracker

Addressed by: https://review.opendev.org/678453
    libvirt: Enable driver configuring PMEM namespaces

Addressed by: https://review.opendev.org/678454
    libvirt: report VPMEM resources by provider tree

Addressed by: https://review.opendev.org/678455
    libvirt: Support VM creation with vpmems and vpmems cleanup

Addressed by: https://review.opendev.org/678456
    Parse vpmem related flavor extra spec

Addressed by: https://review.opendev.org/678470
    Add functional tests for virtual persistent memory

Addressed by: https://review.opendev.org/679640
    libvirt: Enable driver configuring PMEM namespaces

Addressed by: https://review.opendev.org/680300
    doc: attaching virtual persistent memory to guests

Addressed by: https://review.opendev.org/681122
    DNM: uncover func tests with mismatched allocations

Gerrit topic: https://review.opendev.org/#/q/topic:virtual-persistent-memory-nonuma-v7

Gerrit topic: https://review.opendev.org/#/q/topic:virtual-persistent-memory-nonuma-v9

Gerrit topic: https://review.opendev.org/#/q/topic:vpmem_with_numa

Gerrit topic: https://review.opendev.org/#/q/topic:virtual-persistent-memory-nonuma-v10

Addressed by: https://review.opendev.org/681397
    objects: use all_things_equal from objects.base

Gerrit topic: https://review.opendev.org/#/q/topic:bp/cpu-resources

Gerrit topic: https://review.opendev.org/#/q/topic:AEP-upstream

[efried 20190923] marking complete - only docs remain.

Addressed by: https://review.opendev.org/687856
    support live migration with vpmems

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.