我正在尝试使用连接到OVS(openvswitch)和ubuntu 18.04(VMWare工作站)上的DPDK的Iperf3(任何吞吐量测试器应用程序)来测试两个docker容器之间的吞吐量。这样做的目的是比较 OVS-DPDK 与 Linux 内核在某些场景下的性能。
我找不到合适的解决方案,它解释了如何将 OVS+DPDK 连接到 docker 容器,以便容器可以相互传递 TCP/UDP 流量。
感谢您帮助解释如何使用 OVS+DPDK 连接两个 docker 容器。需要在 docker 容器中完成的配置,以及需要在主机操作系统中完成的配置。
顺便说一句,我没有来自外面的交通。
谢谢
编辑
- DPDK 版本为 20.11.0
- OVS 版本为 2.15.90
- Iperf3
以下是我采取的步骤:
我使用 apt 安装 dpdk:
sudo apt install openvswitch-switch-dpdk
将替代设置为:
sudo update-alternatives --set OvS-vswitchd /usr/lib/openvswitch-switch -dpdk/OvS-vswitchd-dpdk
分配大页面并更新 grub。
挂载大页面
将 NIC 绑定到 DPDK:
sudo dpdk-devbind --bind=vfio-pci ens33
. 虽然我不需要这一步,因为如果我不绑定我的网卡,我就没有来自外部的流量,但sudo service openvswitch-switch restart
失败了。我创建了一座桥梁:
ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev
我为我的容器创建了两个端口:
ovs-vsctl add-port br0 client -- set Interface client type=dpdk options:dpdk-devargs=<binded_nic_pci_addr>
和ovs-vsctl add-port br0 server -- set Interface server type=dpdk options:dpdk-devargs=<binded_nic_pci_addr>
. (服务器端口号:1,客户端端口号:2)打开端口之间的双向流:
sudo ovs-ofctl del-flows br0
sudo ovs-ofctl add-flow br0 in_port=1,action=output:2
ovs-ofctl add-flow br0 in_port=2,action=output:1
在第 8 步之后,我不知道如何连接我的 iperf3 docker 容器以使用这些端口。感谢您帮助我了解如何将容器连接到端口并测试网络。
编辑 2
根据 Vipin 的回答,考虑到我的要求,这些步骤将不起作用。