51bac7d227
Change-Id: I839a593df2116264112a6060f1f306910cfba197
84 lines
2.8 KiB
ReStructuredText
84 lines
2.8 KiB
ReStructuredText
Deploying with OVS DPDK Support
|
|
===============================
|
|
|
|
TripleO can deploy Overcloud nodes with OVS DPDK support. The following
|
|
changes are required:
|
|
|
|
- Environment File
|
|
- Parameters
|
|
- Network Config
|
|
|
|
Environment File
|
|
----------------
|
|
|
|
Deploy command should include the OVS DPDK environment file to override the
|
|
default neutron-ovs-agent service with neutron-ovs-dpdk-agent service. All the
|
|
required parameters are specified in this environment file as commented. The
|
|
parameters has to be configured according to the baremetal on which OVS DPDK
|
|
is enabled.
|
|
|
|
Also, OVS-DPDK requires mandatory kernel parameters to be set before
|
|
configuring the DPDK driver, like ``intel_iommu=on`` on Intel machines. In
|
|
order to enable the configuration of kernel parametres to the host, host-
|
|
config-pre-network environment file has to be added for the deploy command.
|
|
|
|
Adding the following arguments to the ``openstack overcloud deploy`` command
|
|
will do the trick::
|
|
|
|
-e /usr/share/openstack-tripleo-heat-templates/environments/neutron-ovs-dpdk.yaml \
|
|
-e /usr/share/openstack-tripleo-heat-templates/environments/host-config-pre-network.yaml \
|
|
|
|
|
|
Parameters
|
|
----------
|
|
The parameters ``NeutronDpdkCoreList`` and ``NeutronDpdkMemoryChannels`` are
|
|
mandatory for OVS-DPDK deployment. And other optional parameter to be
|
|
considered is ``NeutronDpdkSocketMemory``.::
|
|
|
|
NeutronDpdkCoreList: "'1,2,18,19'"
|
|
NeutronDpdkMemoryChannels: "4"
|
|
NeutronDpdkSocketMemory: "'1024,1024'"
|
|
|
|
|
|
The parameter ``ComputeKernelArgs`` should be provided in the deployment
|
|
environment file, with the set of kernel boot parameters to be applied on the
|
|
``Compute`` role where OVS DPDK is enabled::
|
|
|
|
ComputeKernelArgs: "default_hugepagesz=1GB hugepagesz=1G hugepages=64 intel_iommu=on"
|
|
|
|
.. note::
|
|
The parameter ``ComputeKernelArgs`` is specific to a role. In case of
|
|
introducing a new role like ``ComputeOvsDpdk``, the kernel args should be
|
|
given as ``ComputeOvsDpdkKernelArgs`` parameter.
|
|
|
|
Network Config
|
|
--------------
|
|
DPDK supported network interfaces should be specified in the network config
|
|
templates to configure OVS DPDK on the node. The following new network config
|
|
types have been added to support DPDK.
|
|
|
|
- ovs_user_bridge
|
|
- ovs_dpdk_port
|
|
- ovs_dpdk_bond
|
|
|
|
Example::
|
|
|
|
network_config:
|
|
-
|
|
type: ovs_user_bridge
|
|
name: br-link
|
|
use_dhcp: false
|
|
members:
|
|
-
|
|
type: ovs_dpdk_port
|
|
name: dpdk0
|
|
members:
|
|
-
|
|
type: interface
|
|
name: nic3
|
|
|
|
By default, the interface will be bound to ``vfio-pci`` DPDK driver. In case
|
|
of binding to a diffrenet driver, network config types ``ovs_dpdk_port`` and
|
|
``ovs_dpdk_bond`` each take an additional parameter ``driver`` to specify the
|
|
driver name.
|