libvirt: Add Support for live migration with neutron sriov vnic types

Registered by sean mooney on 2018-09-25

This blueprint aims to address a parity gap between instance booted with vnic type normal and an sriov vnic type
by adding support for sriov live migration.

live migration with sriov devices has some limitations.
when the neutron vnic type is macvtap live migration is supported
by qemu nativly as the macvtap layer hids the hardware from the guest
meaning no hardware state has to be migrated.

when using a direct mode (or direct physical) vnic type
the vf is directly attached to the guest. in this mode it is
not possible for qemu to copy the device state.
to address this gap this blueprint suggests using the
the same mechanisium we used to suspend to disk.

on live migration all sriov port in direct mode will be detached
from the guest and reattached on the destination node.
if this is combined with a bond in the guest between the
direct mode port and a macvtap port connectivity will not be lost
but the performace will be reduced to that of macvtap sriov for the duration.

Blueprint information

Status:
Complete
Approver:
Jay Pipes
Priority:
Medium
Drafter:
sean mooney
Direction:
Approved
Assignee:
sean mooney
Definition:
Approved
Series goal:
Accepted for train
Implementation:
Implemented
Milestone target:
milestone icon train-1
Started by
melanie witt on 2019-01-10
Completed by
sean mooney on 2019-06-07

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/libvirt-neutron-sriov-livemigration,n,z

Addressed by: https://review.openstack.org/605116
    Add spec for sriov live migration

Addressed by: https://review.openstack.org/607365
    propagate vnic_type and profile on create port bindings

Addressed by: https://review.openstack.org/608788
    [DNM] stub out sriov live migration

Addressed by: https://review.openstack.org/609166
    add get_pci_requests_from_vifs to request.py

Addressed by: https://review.openstack.org/616120
    Add free for claimed, allocated devices

Addressed by: https://review.openstack.org/619929
    Add get_instance_pci_request_from_vif

Addressed by: https://review.openstack.org/620115
    SR-IOV Live migration indirect port support

Addressed by: https://review.openstack.org/629589
    [WIP] libvirt: auto detach/attach sriov ports on migration

Spec has merged, approved for Stein. -- melwitt 20190110

Addressed by: https://review.openstack.org/624842
    Libvirt: do not set mac when unplugging macvtap vf

This did not complete in the Stein release so I am deferring to the Train release. Remember to re-propose the spec for Train as necessary: https://specs.openstack.org/openstack/nova-specs/readme.html#previously-approved-specifications -- mriedem 20190311

Addressed by: https://review.openstack.org/647582
    forward port sriov live migration spec to train

efried 20190326: reapproving for train

Gerrit topic: https://review.openstack.org/#/q/topic:bp/libvirt-neutron-sriov-livemigration

Gerrit topic: https://review.opendev.org/#/q/topic:bp/libvirt-neutron-sriov-livemigration

Addressed by: https://review.opendev.org/620115
    SR-IOV Live migration indirect port support

Addressed by: https://review.opendev.org/629589
    libvirt: auto detach/attach sriov ports on migration

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.