基础
自OVS 2.2起,Open vSwitch(OVS)提供对数据平面开发工具包(DPDK)数据路径的支持,以及自OVS 2.4起支持DPDK的vhost用户虚拟接口。 DPDK数据路径提供比标准内核OVS数据路径更低的延迟和更高的性能,而DPDK支持的vhost用户接口可以将客户机连接到此数据路径。 有关DPDK的更多信息,请参阅DPDK网站。
具有DPDK的OVS或OVS-DPDK可用于在OpenStack计算节点上的实例之间提供高性能网络连接。
前提
在OVS中使用DPDK需要以下最低软件版本:
OVS 2.4
DPDK 2.0
QEMU 2.1.0
libvirt 1.2.13
如果使用以下较新版本,则可以使用多重支持:
OVS 2.5
DPDK 2.2
QEMU 2.5
libvirt 1.2.17
在这两种情况下,安装和配置为每个节点打开带有DPDK支持的vSwitch。
使用vhost-user接口
一旦OVS正确配置了DPDK支持,vhost用户界面对客户机完全透明。 但是,客人必须请求大页面。 这可以通过类型来完成。 例如:
$ openstack flavor set m1.large --property hw:mem_page_size=large
vhost-user需要以文件描述符为基础的共享内存。 目前,要求这一点的唯一方法是通过请求大页面。 这就是为什么在具有OVS-DPDK的主机上生成的实例必须请求大页面的原因。 聚合的flavor关联性过滤器可用于将flavor与大页面支持关联到具有OVS-DPDK支持的主机。
以与常规接口相同的方式为实例创建和添加vhost用户网络接口。 这些接口可以在guest虚拟机中使用内核virtio-net驱动程序或DPDK兼容驱动程序
$ openstack server create --nic net-id=$net_id ... testserver
已知限制
仅当使用libvirt计算驱动程序和KVM / QEMU虚拟机管理程序时才支持此功能。
对于在具有OVS-DPDK的主机上运行的每个实例,都需要大页面。 如果guest虚拟机中不存在大页面,则界面将显示,但不会运行。
预期使用分接设备的服务的性能下降:这些设备不支持DPDK。 示例服务包括DVR,FWaaS或LBaaS。