在Linux系统的ECS实例中,部署DPDK应用失败怎么办?

本文介绍使用ECS实例部署DPDK应用失败的解决方案。

问题现象

在Linux系统的ECS实例中,使用pktgen-dpdk对DPDK进行高速数据包测试时,检测不到绑定的igb_uio端口,提示以下信息。

EAL: eal_parse_sysfs_value(): cannot open sysfs value /sys/bus/pci/devices/0000:00:09.0/uio/uio0/portio/port0/start

详细信息如下所示。

问题原因

可能是由于该ECS实例规格不兼容当前DPDK版本。

说明

如果您在六代(g6、c6、r6等)及以后的实例规格上部署DPDK应用,运行DPDK应用时可能发生异常。

解决方案

DPDK类应用请优先选择g5ne实例规格进行部署,g5ne的详情信息请参见实例规格族

建议方案如下:

  • 将DPDK升级到21.05或者更高版本:适用于x86实例。更多DPDK的版本信息,请参见DPDK官网

  • 使用VFIO驱动替代UIO驱动:适用于x86实例和ARM实例。具体操作,请参见使用VFIO驱动替代UIO驱动