Merge "tripleo-ovs-hw-offload"
This commit is contained in:
commit
59005307be
|
@ -0,0 +1,141 @@
|
||||||
|
..
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||||
|
License.
|
||||||
|
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
==========================================
|
||||||
|
Adding OVS Hardware Offload to TripleO
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
https://blueprints.launchpad.net/tripleo/+spec/tripleo-ovs-hw-offload
|
||||||
|
|
||||||
|
OVS Hardware Offload leverages SR-IOV technology to control the SR-IOV
|
||||||
|
VF using VF representor port. OVS 2.8.0 supports the hw-offload option which
|
||||||
|
allows to offload OVS datapath rule to hardware using linux traffic control
|
||||||
|
tool and the VF representor port. This feature accelerates the OVS
|
||||||
|
with a SR-IOV NIC which support switchdev mode.
|
||||||
|
|
||||||
|
Problem Description
|
||||||
|
===================
|
||||||
|
|
||||||
|
Today the installation and configuration of OVS hardware offload feature is
|
||||||
|
done manually after overcloud deployment. It shall be automated via tripleo.
|
||||||
|
|
||||||
|
Proposed Change
|
||||||
|
===============
|
||||||
|
|
||||||
|
Overview
|
||||||
|
--------
|
||||||
|
|
||||||
|
* Configure the SR-IOV NIC to be in switchdev mode using the following
|
||||||
|
syntax <physical_interface>:<numvfs>:<mode> for NeutronSriovNumVFs.
|
||||||
|
mode can be legacy or switchdev
|
||||||
|
* Configure the OVS with other_config:hw-offload. The options can
|
||||||
|
be added for the cluster without side effects, because if then NIC doesn't
|
||||||
|
support OVS will fall-back to kernel datapath.
|
||||||
|
|
||||||
|
* Nova scheduler should be configured to use the PciPassthroughFilter
|
||||||
|
(same SR-IOV)
|
||||||
|
* Nova compute should be configured with passthrough_whitelist (same SR-IOV)
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Security Impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Other End User Impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Performance Impact
|
||||||
|
------------------
|
||||||
|
|
||||||
|
* OVS Hardware Offload leverage the SR-IOV technology to provides near
|
||||||
|
native I/O performance for each virtual machine that managed by OpenVswitch.
|
||||||
|
|
||||||
|
Other Deployer Impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
* The operator shall ensure that the BIOS supports VT-d/IOMMU virtualization
|
||||||
|
technology on the compute nodes.
|
||||||
|
|
||||||
|
* IOMMU needs to be enabled in the Compute+SR-IOV nodes. Boot parameters
|
||||||
|
(intel_iommu=on or amd_iommu=pt) shall be added in the grub.conf, using the
|
||||||
|
PreNetworkConfig.
|
||||||
|
|
||||||
|
* Post deployment, operator shall
|
||||||
|
|
||||||
|
* Create neutron ports prior to creating VM’s (nova boot)
|
||||||
|
openstack port create --vnic-type direct --binding-profile '{"capabilities": ["switchdev"]}' port1
|
||||||
|
|
||||||
|
* Create the VM with the required flavor and SR-IOV port id
|
||||||
|
openstack server create --image cirros-mellanox_sriov --port=port1 --flavor m1.tiny vm_a1
|
||||||
|
|
||||||
|
Developer Impact
|
||||||
|
----------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
waleedm (waleedm@mellanox.com
|
||||||
|
|
||||||
|
Other contributors:
|
||||||
|
moshele (moshele@mellanox.com)
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
* Update tripleo::host::sriov::numvfs_persistence to allow configure SR-IOV
|
||||||
|
in switchdev mode. extending the vf_defs to
|
||||||
|
<physical_interface>:<numvfs>:<mode>. Mode can be legacy which is default
|
||||||
|
SR-IOV or switchdev which is used for ovs hardware offload.
|
||||||
|
* Add a template parameter called NeutronOVSHwOffload to enable.
|
||||||
|
* provide environment YAML for OVS hardware offload in tripleo-heat-templates.
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
Testing
|
||||||
|
=======
|
||||||
|
|
||||||
|
* Since SR-IOV needs specific hardware support, this feature can be tested
|
||||||
|
under third party CI. We hope to provide Mellanox CI to SR-IOV and this
|
||||||
|
feature.
|
||||||
|
|
||||||
|
Documentation Impact
|
||||||
|
====================
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
|
||||||
|
* Introduction to SR-IOV
|
||||||
|
http://goo.gl/m7jP3
|
||||||
|
|
||||||
|
* SR-IOV OVS hardware offload netdevconf
|
||||||
|
http://netdevconf.org/1.2/papers/efraim-gerlitz-sriov-ovs-final.pdf
|
||||||
|
|
||||||
|
* OVS hardware offload in OpenVswitch
|
||||||
|
https://mail.openvswitch.org/pipermail/ovs-dev/2017-April/330606.html
|
||||||
|
|
||||||
|
* OpenStack OVS mechanism driver support in neutron/nova/os-vif
|
||||||
|
https://review.openstack.org/#/c/398265/
|
||||||
|
https://review.openstack.org/#/c/275616/
|
||||||
|
https://review.openstack.org/#/c/460278/
|
Loading…
Reference in New Issue