DPDK(Data Plane Development Kit)是一个开源的数据平面开发工具包,主要用于高性能数据包处理。它提供了一组优化的用户空间库和驱动程序,以帮助开发者构建高性能、低延迟的数据平面应用程序。DPDK广泛应用于网络功能虚拟化、云计算、边缘计算、高性能计算等领域,以满足对网络数据处理速度和效率的高要求。
以下为DPDK部署在VMware上ubuntu虚拟机的方法:
一、虚拟机配置
以下Linux虚拟机为ubuntu16.04版本
1. 在存放虚拟机的文件夹中找到.vmx文件,更改其中两处设置,使虚拟机支持多队列网卡。
ethernet0.virtualDev = "vmxnet3"
ethernet0.wakeOnPcktRcv = "TRUE"
2. 将虚拟机的配置调整为8核8G内存。
二、源码下载
在DPDK官网选择dpdk版本,下载源码压缩包
下载到Windows之后,一定要将压缩包转移到Linux系统下进行解压(不能在Windows系统下解压然后复制到Linux系统,复制的过程会报错)
使用tar命令解压压缩包到你想保存的位置
tar -xvf dpdk-19.02.8.tar -C /path/to/extract
三、基本环境配置
1. 进入dpdk-stable-19.02.8文件夹内。
cd /home/user/share/dpdk/dpdk-stable-19.08.2/
2. 执行指令进入dpdk设置界面,根据提示输入39,执行编译命令。
./usertools/dpdk-setup.sh
3. 遇到编译错误:缺少numa.h
头文件,这是由于DPDK需要NUMA(非统一内存访问)支持。
CC eal_memory.o /home/user/share/dpdk/dpdk-stable-19.08.2/lib/librte_eal/linux/eal/eal_memory.c:32:18: fatal error: numa.h: No such file or directory compilation terminated. /home/user/share/dpdk/dpdk-stable-19.08.2/mk/internal/rte.compile-pre.mk:114: recipe for target 'eal_memory.o' failed make[7]: *** [eal_memory.o] Error 1
解决方法:执行命令获取numa.h头文件
sudo apt-get update
sudo apt-get install -y libnuma-dev
下载完后,重新进行第2步再次编译
4. 等待片刻后,编译成功
5. 编译成功之后,输入60退出setup.sh。进入root权限,配置环境变量(重启需重新配置,路径自定义)。
sudo su
export RTE_SDK=/home/user/share/dpdk/dpdk-stable-19.08.2/
export RTE_TARGET=x86_64-native-linux-gcc
6. 选择一张网卡将其关闭,用于绑定dpdk(示例关闭ens160网卡)。
ifconfig -a
ifconfig ens160 down
7. 再次执行./usertools/dpdk-setup.sh进入配置界面,依次执行43~47、49号命令。
46.47号巨页大小设置为512,49号命令绑定网口选择上一步关闭的网口,输入其编号(图例为已经绑定好的界面)
至此,dpdk基础环境配置完成。