Chapter 10. Example: Configuring OVS-DPDK and SR-IOV with VXLAN tunnelling
This section describes how to deploy Compute nodes with both OVS-DPDK and SR-IOV interfaces. The cluster will be installed with ML2/OVS and VXLAN tunnelling.
You must determine the best values for the OVS-DPDK parameters that you set in the network-environment.yaml file to optimize your OpenStack network for OVS-DPDK. See Deriving DPDK parameters with workflows for details.
10.1. Configuring roles Copy linkLink copied to clipboard!
Configure a custom role by copying and editing the default roles_data.yaml file found in /usr/share/openstack-tripleo-heat-templates.
For the purposes of this example, the ComputeOvsDpdkSriov role is created. For information on creating roles in Red Hat OpenStack Platform, see Advanced Overcloud Customization. For details on the specific role used for this example, see roles_data.yaml.
10.2. Configuring OVS-DPDK parameters Copy linkLink copied to clipboard!
You must determine the best values for the OVS-DPDK parameters that you set in the network-environment.yaml file to optimize your OpenStack network for OVS-DPDK. See Network Functions Virtualization Planning and Configuration for details.
Add the custom resources for OVS-DPDK under
resource_registry:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Under
parameter_defaults, set the tunnel type and network type tovxlan.:NeutronTunnelTypes: 'vxlan' NeutronNetworkType: 'vxlan'
NeutronTunnelTypes: 'vxlan' NeutronNetworkType: 'vxlan'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Under
parameters_defaults, set the bridge mapping:# The OVS logical->physical bridge mappings to use. NeutronBridgeMappings: - dpdk-mgmt:br-link0
# The OVS logical->physical bridge mappings to use. NeutronBridgeMappings: - dpdk-mgmt:br-link0Copy to Clipboard Copied! Toggle word wrap Toggle overflow Under
parameter_defaults, set the role-specific parameters for theComputeOvsDpdkSriovrole:Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteTo prevent failures during guest creation, assign at least one CPU with sibling thread on each NUMA node. In the example, the values for the OvsPmdCoreList parameter denote cores 2 and 22 from NUMA 0, and cores 3 and 23 from NUMA 1.
NoteHuge pages are consumed by virtual machines, as well as OVS-DPDK using the
OvsDpdkSocketMemoryparameter. To calculate the number of huge pages available to the virtual machine, subtract theOvsDpdkSocketMemoryvalue from the boot parameter value. You must also addhw:mem_page_size=1GBto the flavor you associate with the DPDK instance.NoteOvsDPDKCoreListandOvsDpdkMemoryChannelsare required settings for this procedure and must be set correctly to prevent failures.Configure the role-specific parameters for SR-IOV:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.3. Configuring the Controller node Copy linkLink copied to clipboard!
Create the control plane Linux bond for an isolated network.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Assign VLANs to this Linux bond.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the OVS bridge for access to neutron-dhcp-agent and neutron-metadata-agent services.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4. Configuring the Compute node for DPDK and SR-IOV Copy linkLink copied to clipboard!
Create the computeovsdpdksriov.yaml file from the default compute.yaml file and make the following changes:
Create the control plane Linux bond for an isolated network.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Assign VLANs to this Linux bond.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Set a bridge with a DPDK port to link to the controller.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteTo include multiple DPDK devices, repeat the
typecode section for each DPDK device you want to add.NoteWhen using OVS-DPDK, all bridges on the same Compute node should be of type
ovs_user_bridge. The director may accept the configuration, but Red Hat OpenStack Platform does not support mixingovs_bridgeandovs_user_bridgeon the same node.
10.5. Deploying the overcloud Copy linkLink copied to clipboard!
Run the overcloud_deploy.sh script to deploy the overcloud.