Add possibility to specify physnet name per NIC

Adds possibility to specify physical network name for
`pci_passthrough_whitelist` configuration in Nova per each NIC
with SR-IOV. Update affected parts of the spec accordingly.

Change-Id: I55238e71b39b42ae1e55ff57a6f970030d6421af
Implements: blueprint support-sriov
This commit is contained in:
Aleksandr Didenko 2016-02-26 15:29:51 +01:00
parent e59bde7037
commit 9da2fd456a
2 changed files with 29 additions and 33 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

@ -51,20 +51,29 @@ On Nodes tab, in Interfaces configuration dialog for every interface should be:
* Information whether interface is SR-IOV capable
* Visual controls to enable SR-IOV, and to input how much virtual functions
should be initialized on the interface
* Visual controls to enable SR-IOV and configure additional parameters:
* Input how many virtual functions should be initialized on the interface
* Input physical network name for `pci_passthrough_whitelist` configuration
in Nova. Defaults to `physnet2`
The following validation should be done in both UI and API:
* In case of VLAN segmentation it should be possible to assign Private network
to any NIC (with or without SR-IOV support).
* In case of tunneling segmentation it should be possible to assign Private
(mesh) network only to NIC where SR-IOV is not enabled.
* SR-IOV can be enabled on SR-IOV capable interfaces where no networks are
assigned. In such case a warning should be shown that only NIC with Private
network on it is going to be configured in Nova.
assigned. Physical network name could be set to any name on per interface
basis, defaults to `physnet2` on each interface
* It should not be allowed to assign any network (or network role) to SR-IOV
enabled interface
* SR-IOV enabled interface(s) cannot be part of a bond
The following validation is needed in UI only:
* In case Operator specifies physical network name not equal to `physnet2`, a
warning should be shown that only `physnet2` is going to be configured by
Fuel in Neutron. Configuration of other physical networks is up to Operator
or plugin. Fuel will just configure appropriate `pci_passthrough_whitelist`
option in nova.conf for such interface and physical networks
The proposed change to Node Interfaces configuration screen will look like this:
.. image:: ../../images/9.0/support-sriov/sriov-ui.png
@ -121,7 +130,7 @@ Information from the nailgun-agent and user input should be stored in
* Number of available virtual functions (`sriov_totalvfs`)
* SR-IOV availability (IOMMU groups should be checked)
* SR-IOV availability
* PCI-ID of NIC virtual functions of this NIC (it's same for all VFs)
@ -152,8 +161,8 @@ When operator configures interface as SR-IOV:
enabled SR-IOV. If this parameter is empty, it means SR-IOV is not enabled at
all.
When Private network is assigned to SR-IOV enabled interface, deployment
information (astute.yaml) will be extended and will look like this:
For each SR-IOV enabled interface deployment information (astute.yaml) will be
extended and will look like this:
::
@ -164,28 +173,13 @@ information (astute.yaml) will be extended and will look like this:
provider: sriov
vendor_specific:
sriov_numvfs: <NUM>
physnet: physnet2
physnet: <PHYSNET>
quantum_settings:
supported_pci_vendor_devs:
- <PCI-ID>
where <NUM> is number and <PCI-ID> is string like "8086:1515".
When no network is assigned to SR-IOV enabled interface, deployment
information (astute.yaml) will be extended and will look like this:
::
network_scheme:
transformations:
- action: add-port
name: enp1s0f0
provider: sriov
vendor_specific:
sriov_numvfs: <NUM>
quantum_settings:
supported_pci_vendor_devs:
- <PCI-ID>
where <NUM> is number, <PCI-ID> is string like "8086:1515" and <PHYSNET> is
string with specified physical network name (defaults to `"physnet2"`).
REST API
--------
@ -285,10 +279,12 @@ Performance impact
Deployment impact
-----------------
* Fuel supports configuration of SR-IOV in OpenStack services only when VLAN
segmentation is in use and Private network is assigned to SR-IOV capable
network interface. Handling SR-IOV enabled interfaces which are not in use
for Private networks is up to cloud operators or plugin developers.
* Fuel will configure SR-IOV on enabled interfaces and add appropriate
`pci_passthrough_whitelist` configuration option to nova.conf file:
::
pci_passthrough_whitelist=[{"devname":"enp1s0f0","physical_network":"physnet2"},{"devname":"enp1s0f1","physical_network":"physnet3"}]
* VM Live Migration with SR-IOV attached instances is not supported.