DPDK

安装与踩雷

更新:新的一篇出来啦《DPDK简单介绍》,建议直接看这个。距离这篇隔了挺久了,更新了点别的内容,比这篇可能更与时俱进一点吧?关于DPDK,我个人研究其实根本没多少……以后再写相关内容可能就不知道猴年马月去了

下面是好几个月之前的内容了,dpdk都出到19了,回头新写一篇CentOS + Ubuntu两边的贴在这,不过可能得五月底了,因为我到时候如果交个论文上去查重查到自己写的博客,那估计想死的心都有了……总之敬请期待

下面是原文:


最近由于在学校有相关课题,所以花时间下载安装了一下dpdk

万万没想到dpdk这技术出来也挺久了,但是各种相关内容在网上实在不算很多,尤其是由于每个人配置不同,可能会碰到各种各样诡异的问题

我在这里大概记录一下我安装使用dpdk的过程以及过程中踩的坑,希望能帮到后面安装的人吧。

安装

这里注一下转载链接,我安装过程大致是参考这这个博客来的,虽然这个人写的看上去也很像转的,我也懒的去找他转的谁的了,好歹是解决了我的很多问题。

CentOS安装DPDK

那么正式开始:


  1. 介绍安装步骤之前自然要先给出一下配置:
属性 内容
平台 Linux
环境 vmware
系统 CentOS 7
CPU 4核(2个 * 2核)
内存 4G
网卡配置 2个以上的虚拟网卡

内存牵扯到大页内存分配的问题,所以最好是大一些,4G应该足够用了

CPU核数也会影响转发效率等因素,所以最好有2核及以上

网络接口由于要绑定IGB UIO,所以至少要有两个


  1. 下载解压dpdk

有图形化交互界面自然可以开浏览器上官网下,没有的话就用wget命令吧

注:个人推荐下18.11,因为以前用16.07时遭遇了谜之bug……

上面是以前写的,现在建议直接

git clone https://github.com/DPDK/dpdk.git

官网下载地址

wget http://fast.dpdk.org/rel/dpdk-18.11.tar.xz

下完了之后同样,有桌面就点extract选个地方解压,没有的话

tar xf dpdk-18.11.tar.xz


  1. 安装支持dpdk所需的软件等

来自我之前丢出来的博客:

配置 ifconfig:yum install net-tools.x86_64

安装 gcc:yum –y install

安装 gccc++:yum –y install gcc-c++
上面这玩意用不着,下面那个kernel-header实际上应该也不需要

numactl-devel这个是需要的,视情况python也是需要的

安装内核文件: yum install –y kernel-devel kernel-headers

然后:yum install kernel.x86_64 -y

内核文件不更新会出现挺麻烦的问题,如图:

麻烦的问题

这个主要就是build文件里面指向的内核路径和目前的内核头文件不匹配(说实在的我也不是很懂),按理说更新过内核头文件就不会有问题,出了问题的话解决起来主要就是修改build文件的指向路径,删除链接之类的,自行Google吧。


  1. 安装dpdk

初学者的话个人推荐脚本安装,反正我是初学者,所以就用脚本安装了。

cd Downloads/dpdk-18.11/usertools

这路径根据自己的安装路径自己改

./dpdk-setup.sh

跑之前记得开启root权限,不然可能编译不了

还有跑之前记得把ifconfig里面随便关两个接口,不关绑不上IGB UIO的

假设我的两个虚拟网卡是ens33, ens37,那么

ifconfig ens 33 down

自己虚拟机里面要关哪个用 ifconfig 查看就是了

不down的后果

不down掉的话,绑定会告诉你ok,然而实际上真相是上面那个not modifying,也就是失败了。

前面长这样
后面长这样

按照我给的这个图,操作顺序大概是15,18,22,24,即

build,插入IGB UIO模块,分配大页内存以及把网络接口绑到IGB UIO上

每次跑脚本都要全部跑一遍,最好按顺序来。

不按顺序的话

输入15编译时遭遇no numa.h

yum install numactl-devel即可

分配大页内存时可以先看看自己的系统是否是numa结构

我查到的方法是可以# grep -i numa /var/log/dmesg看看结果就知道是不是了

不是的话,那就是No NUMA configuration found

分配大页内存时存在虚拟机大页内存为1G或者2MB的差别

这个google一下就有辨别方法了,讲道理一般都是2MB

所以分配大页内存时最好至少输入512,即512 * 2MB

不然……

不然死给你看咯

这个会在跑例程时跳出来搞你,解决办法要么是大页内存开大点,要么是虚拟机内存开大点。


  1. 如果到这里都还顺利的话,可以跑28里面的历程测试一下效果

注意事项和可能遭遇的问题都写上面了,要是遇到我没提到的,那爱莫能助了,google吧。

贴个testpmd运行的结果:

结果

行啦,到这如果还没出问题,那么dpdk安装就算是圆满完成了。

文章来源于互联网,如有雷同请联系站长删除:CentOS DPDK安装

发表评论