This page serves as a guide for how to use the OVS with DPDK datapath functionality available in the Networking service as of the Mitaka release.
Open vSwitch (OVS) provides support for a Data Plane Development Kit (DPDK)
datapath since OVS 2.2, and a DPDK-backed vhost-user
virtual interface
since OVS 2.4. The DPDK datapath provides lower latency and higher performance
than the standard kernel OVS datapath, while DPDK-backed vhost-user
interfaces can connect guests to this datapath. For more information on DPDK,
refer to the DPDK website.
OVS with DPDK, or OVS-DPDK, can be used to provide high-performance networking between instances on OpenStack compute nodes.
Using DPDK in OVS requires the following minimum software versions:
Multiqueue support is available if the following newer versions are used:
In both cases, install and configure Open vSwitch with DPDK support for each node. For more information, see the OVS-DPDK installation guide.
Once OVS is correctly configured with DPDK support, vhost-user
interfaces
are completely transparent to the guest. However, guests must request large
pages. This can be done through flavors. For example:
$ openstack flavor set m1.large --property hw:mem_page_size=large
For more information about the syntax for hw:mem_page_size
, refer to the
Flavors guide.
Note
vhost-user
requires file descriptor-backed shared memory. Currently, the
only way to request this is by requesting large pages. This is why instances
spawned on hosts with OVS-DPDK must request large pages. The aggregate
flavor affinity filter can be used to associate flavors with large page
support to hosts with OVS-DPDK support.
Create and add vhost-user
network interfaces to instances in the same
fashion as conventional interfaces. These interfaces can use the kernel
virtio-net
driver or a DPDK-compatible driver in the guest
$ openstack server create --nic net-id=$net_id ... testserver
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.