CentOS DPDK安装

作者: 景山道人 | 来源:发表于2019-01-12 02:37 被阅读0次

    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,所以至少要有两个


    2. 下载解压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


    3. 安装支持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吧。


    4. 安装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

    不然……

    不然死给你看咯

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


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

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

    贴个testpmd运行的结果:

    结果

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

    相关文章

      网友评论

        本文标题:CentOS DPDK安装

        本文链接:https://www.haomeiwen.com/subject/gflqdqtx.html