如何在VMWare虚拟机里把DPDK跑起来?


一、环境准备

VMware + Ubuntu 16.04 Server版本


二、DPDK环境搭建

2.1 vmware 添加两块网卡

在这里插入图片描述
要把DPDK运行起来,需要两块网卡,因此我们需要查看我们的虚拟机是否已经有了两块网卡,如果没有则添加;添加网卡的时候建议把网卡网络连接设置为“桥接模式(B)”。

桥接网卡作为 DPDK运行的网卡。 NAT网卡作为ssh连接的网卡。


2.2 修改网卡配置信息

在这里插入图片描述
1)找到我们虚拟机上的.vmx文件,并打开文件;
2)把ethernet0.virtualDev由e1000修改为vmxnet3,因为VMware的vmxnet3支持多队列网卡;
3)把ethernet0.vwakeOnPcktRcv修改为TRUE。


修改完成后,我们使用 ifconfig来查看添加的网卡是否已经在列表中:
在这里插入图片描述

如果不在,我们需要在文件中添加新增的网卡信息,使用命令vim /etc/network/interfaces打开文件添加:
在这里插入图片描述

interfaces文件,只有一个网卡时默认只有eth0,如果新增后,需要添加新的配置,比如上图增加了3块网卡就需要配置eth1,eth2,eth3。

说明:如果使用 ifconfig命令查看网卡信息的时候,显示的不是eth0,而是es33(或者是其他名字),那么我们可以通过修改配置文件把es33改为eth0。

具体操作为:
1)使用 vim /etc/default/grub打开grub文件;
2)在 GRUB_CMDLINE_LINUX参数,添加 net.ifnames=0 biosdevname=0,使得网卡名称从0开始命名。

在这里插入图片描述


2.3 修改 ubuntu 系统的启动参数

在这里插入图片描述
1)物理机

default_hugepages=1G hugepagesz=1G hugepages=20 isolcpus=0-7


2)虚拟机

default_hugepages=1G hugepagesz=2M hugepages=1024 isolcpus=0-2


2.4 查看系统是否支持多队列网卡

可以通过执行cat /proc/interrupts查看系统是否支持多队列网卡。
在这里插入图片描述
如果有看到类似上图红框内的eth1列表,表示支持多队列网卡。


三、编译DPDK

1)DPDK下载网址: https://core.dpdk.org/download/
在这里插入图片描述

2)随便挑选版本,不同版本直接子系统接口会有差异,这里我们建议选择 dpdk 19.08.2。不过,需要注意的是,DPDK不同版本间的接口差异还是比较大的。
在这里插入图片描述


3)可以通过 ./usertools/dpdk-setup.sh进行编译
在这里插入图片描述
64 位系统选择 39.
在这里插入图片描述
编译完会多出 x86_64-native-linux-gcc 的文件夹。


四、设置DPDK的环境变量

#export RTE_SDK=/home/dpdk
#export RTE_TARGET=x86_64-native-linux-gcc


五、执行testpmd测试

执行:# /usertools/dpdk-setup.sh
在这里插入图片描述
然后:
1)选择 43 插入 IGB_UIO 模块, 选择网卡为 vmxnet3 会加载此模;
2)选择 44 插入 VFIO 模块,选择网卡为 e1000 会加载此模块;
3)选择 49 绑定 igb_uio 模块, 也可以退出;

如果执行49的时候,提示如下图信息:
在这里插入图片描述
在这里插入图片描述

可以通过后面的命令来解决:

# ifconfig eth0 down
# /usertools/dpdk-devbind.py --bind=igb_uio eth0

4)选择 53 运行 testpmd
在这里插入图片描述
> show port info 0
**加粗样式**


六、编译DPDK程序

1)进入example/helloworld;
2)可以直接执行 make进行编译,也可以通下面的gcc命令编译:

# gcc -o helloword main.c -I /usr/local/include/dpdk/ -ldpdk -lpthread -lnuma -ldl

在这里插入图片描述
编译后,直接执行 ./helloworld 就可以把程序跑起来了。

七、运行DPDK案例

Kni 运行:

./build/kni -l 4-7 -n 4 -- -P -p 0x3 -m --config="(0, 4, 6),(1, 5, 7)"

L3fwd 运行

# ./build/l3fwd -l 4-7 -n 4 -- -p 0x3 --config="(0, 0, 4),(1, 0, 5)" --parse-ptype

在这里插入图片描述

八、常见错误

错误信息:
在这里插入图片描述
原因:没有设置环境变量;请查看本篇《设置 dpdk 的环境变量》
在这里插入图片描述
bitmask 请选择 7, bit:111
在这里插入图片描述

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值