Add support for PCI passthrough and SR-IOV

Registered by Vladimir Popovski

Add ability for VMs to access PCI devices directly.

Some implementation details:
- add new params into instance type's extra-data, specifying type/class of pci_passthrough device, possibility to use SR-IOV and number of devices to associate
- on each compute node specify list of devices available for PCI passthrough
- libvirt & other compute drivers to be modified and perform following:
  * find list of available (non-used) PCI devices or VFs
  * assign device to instance (modify template & xml dict)
  * store (in instance meta-data?) information about used devices

Blueprint information

Status:
Complete
Approver:
Vish Ishaya
Priority:
Low
Drafter:
Vladimir Popovski
Direction:
Approved
Assignee:
Zadara Storage
Definition:
Obsolete
Series goal:
None
Implementation:
Slow progress
Milestone target:
None
Started by
Vladimir Popovski
Completed by
Vish Ishaya

Related branches

Sprints

Whiteboard

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

Addressed by: https://review.openstack.org/776
    Adds support for PCI-passthrough. Implements blueprint pci-passthrough.

Gerrit topic: https://review.openstack.org/#q,topic:pci-passthrough,n,z

Addressed by: https://review.openstack.org/137530
    pci resize

Addressed by: https://review.openstack.org/131321
    do not reserve pci devices while VM not in BUILDING

Addressed by: https://review.openstack.org/139927
    Fake libvirt for testing feature need real HW

Addressed by: https://review.openstack.org/141270
    test cases for third party CI

Addressed by: https://review.openstack.org/190065
    Allocate least feature device to user

(?)

Work Items