可以在单网卡的服务器中使用 DPDK 吗?

可以在单网卡的服务器中使用 DPDK 吗?

我有一台单网卡服务器,有 4 个 pci 端口。我已经尝试过 DPDK 绑定,因此在绑定之前“dpdk-devbind.py -s”返回以下内容:

Network devices using kernel driver
0000:01:00.0 'OneConnect NIC (Skyhawk) 0720' if=eth0 drv=be2net unused=vfio-pci *Active*
0000:01:00.1 'OneConnect NIC (Skyhawk) 0720' if=eth1 drv=be2net unused=vfio-pci
0000:01:00.2 'OneConnect NIC (Skyhawk) 0720' if=eth2 drv=be2net unused=vfio-pci
0000:01:00.3 'OneConnect NIC (Skyhawk) 0720' if=eth3 drv=be2net unused=vfio-pci

虽然我找不到网卡型号DPDK 官方支持的硬件列表,提供商说它与 DPDk 兼容。我的“ifconfig”返回:

eth0: **some stuffs*** <IP>
lo: **some stuff**

现在,由于我只暴露了 1 个 IP,我该如何使用 DPDK?为了绑定 DPDK,我必须从 ifconfig 关闭 PCI 端口,这样我就会失去 SSH。我可以看到其他未使用的 3 个 pci 端口,如何使用它们?我将 DPDK 与 01:00.1 PCI 端口绑定,该端口在 DPDK 兼容驱动程序列表中列出,但之后呢?由于无法通过 kernel/ifconfig 访问(未分配 IP/接口),现在如何从服务器外部使用它,或者是否可以使用单个 NIC?如果可以,那么如何操作。

答案1

DPDK 是一个用户空间进程,它允许使用 UIO 驱动程序访问用户空间中的 NIC 端口,而不是由内核或普通套接字应用程序访问的内核网络链接设备。因此,期望通过套接字或内核网络链接设备访问与内核空间中的 UIO 驱动程序绑定的 DPDK 端口是不切实际且不正确的。

现在如何从服务器外部使用它,或者甚至可以使用单个 NIC 来使用它?

请使用示例应用程序来testpmd, l2fwd, l3fwd开始探索带有 NIC 的 DPDK。

请参考

  1. 测试pmd
  2. 前向
  3. 前锋

相关内容