系统版本

[root@controller ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

DPDK版本:

dpdk-18.02

硬件支持检查:

$grep hpet/proc/timer_list   //需支持hpet

如无显示,需设置BIOS:Advanced -> PCH-IO Configuration -> High Precision Timer ->(Change from Disabled to Enabled if necessary)

[root@controller ~]# grep hpet /proc/timer_list
Clock Event Device: hpet
set_next_event: hpet_legacy_next_event
set_mode: hpet_legacy_set_mode

安装必要软件:

yum install -y lrzsz gcc make  numactl-devel  pciutils

安装kernel-devel和kernel-headers 需要跟自己的内核版本对应上,我的是3.10.0-693.el7.x86_64(centos7.4),那就需要安装对应的的kernel-devel-3.10.0-693.el7.centos.x86_64.rpm,kernel-headers-3.10.0-693.el7.centos.x86_64.rpm

用yum info kernel-headers检查当前yum源中的kernel信息,如果对不上大家可以自行下载src包进行编译

我也是编译好的这里就直接安装了

yum localinstall kernel-devel-3.10.0-693.el7.centos.x86_64.rpm

yum localinstall kernel-headers-3.10.0-693.el7.centos.x86_64.rpm

编译DPDK的时候需要用到这个目录

ln -sf /usr/src/kernels/3.10.0-693.el7.centos.x86_64/ /lib/modules/3.10.0-693.el7.x86_64/build

配置hugepages页

mkdir -p /dev/hugepages

mount -t hugetlbfs none /dev/hugepages -o pagesize=2MB

echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages

echo 1024 > /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages

查看hugepages页

[root@controller ~]# cat /proc/meminfo |grep Huge

AnonHugePages: 1781760 kB
HugePages_Total: 2048
HugePages_Free: 2048
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB

开机挂载hugepages页目录

[root@controller ~]# egrep -v "^#|^$" /etc/fstab
/dev/mapper/centos-root / xfs defaults 0 0
UUID=f3da6cd0-9c70-4683-be74-265a8ffe3e92 /boot xfs defaults 0 0
nodev /dev/hugepages hugetlbfs pagesize=1GB 0 0

赋予权限(正常下载dpdk的这个过程可以不用看,我是从别的机器上cp安装文件的有些文件没有执行权限)

chmod +x /root/dpdk-18.02/x86_64-native-linuxapp-gcc/app/dpdk-pmdinfogen

chmod +x /root/dpdk-18.02/buildtools/*

开始安装DPDK,cd到dpdk目录执行:

make install T=x86_64-native-linuxapp-gcc DESTDIR=/usr/src/dpdk

T就是你的机器架构,dpdk官方上有解释。

DESTDIR 就是dpdk安装目录

正常情况不会有报错的按照上面的方法。

根据需要导入对应的模块,当然也可以全部导入

1、UIO

一个用于设置设备的小内核模块,将设备内存映射到用户空间并注册中断。在许多情况下,Linux内核中包含的标准uio_pci_generic模块可以提供uio功能。

该模块可以使用以下命令加载:

modprobe uio_pci_generic

2、对于一些不支持传统中断的设备,例如虚拟功能(VF)设备,可能需要使用igb_uio模块来代替uio_pci_generic。

modprobe uio

insmod kmod/igb_uio.ko  #kmod路径在/root/dpdk-18.02/x86_64-native-linuxapp-gcc/kmod,在dpdk源码文件的地方

3、VFIO

依靠IOMMU保护,与UIO相比,它是更强大,更安全的驱动程序。要使用VFIO,必须加载vfio-pci模块:
注意:内核必须版本必须>=v3.6.0,必须支持硬件IO虚拟化(如 Intel® VT-d)

绑定网卡测试:

cd /root/dpdk-18.02/usertools

查看网卡绑定状态:

[root@controller usertools]# ./dpdk-devbind.py --status

Network devices using DPDK-compatible driver这栏中为<none>就是还没有绑定的网卡, 紫色框中就是可以绑定的网卡的名称

绑定网卡:

[root@controller usertools]# ./dpdk-devbind.py --bind=uio_pci_generic  02:00.1

--bind=可以改成上面说到的三种模块

02:00.1 网卡的设备号,这里也可以时候网卡的名字

查看下绑定情况

取消绑定:

./dpdk-devbind.py --bind=igb  02:00.1  #igb就是普通的网卡或者ixgbe都行

DPDK+OpenvSwitch-centos7.4安装的更多相关文章

  1. 在centos7上安装Jenkins

    在centos7上安装Jenkins 安装 添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins ...

  2. CentOS7 Jenkins安装

    CentOS7 Jenkins安装 CentOS7 Jenkins安装 Download 从Jenkins下载apache-tomcat-8.0.18.tar.gz Install 安装 上传RPM文 ...

  3. 在 CentOS7 上安装 zookeeper-3.4.9 服务

    在 CentOS7 上安装 zookeeper-3.4.9 服务 1.创建 /usr/local/services/zookeeper 文件夹: mkdir -p /usr/local/service ...

  4. 在 CentOS7 上安装 MongoDB

    在 CentOS7 上安装 MongoDB 1 通过 SecureCRT 连接至 CentOS7 服务器: 2 进入到 /usr/local/ 目录: cd /usr/local 3 在当前目录下创建 ...

  5. 在 CentOS7 上安装 MySQL5.7

    在 CentOS7 上安装 MySQL5.7 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建 ...

  6. 在 CentOS7 上安装 Tomcat9

    在 CentOS7 上安装 Tomcat9 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建目 ...

  7. 在CentOS7上安装JDK1.8

    在CentOS7上安装JDK1.8 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建目录 to ...

  8. centos7.0 安装字体库

    最近在centos7.0下用itextpdf将word文档转成pdf时出现字体丢失的情况.网上找了很多资料,各式各样的原因和解决方法.后来经过一番测试发现是centos7.0 minimal没有安装相 ...

  9. 在centos7中安装Robot Framework

    安装前景介绍: 最初,我们是在Windows环境下搭建Robot Framework来对我们的服务进行接口测试的(想知道如何在Windows下安装Robot Framework,可以参考我同事的博客h ...

  10. CentOS7 yum 安装git

    1.查看系统是否已经安装git git --version 2.CentOS7 yum 安装git yum install -y git 3.安装成功 4.卸载git yum remove git

随机推荐

  1. Python案例

    我感觉好方啊,Python和C语言不一样啊....写了几个例子... 变量    变量的占位后面没有逗号啊啊啊啊 name='张泉' age=22 tel=110 print ('姓名:%s,年龄:% ...

  2. python获取指定目录下所有文件名os.walk和os.listdir

    python获取指定目录下所有文件名os.walk和os.listdir 觉得有用的话,欢迎一起讨论相互学习~Follow Me os.walk 返回指定路径下所有文件和子文件夹中所有文件列表 其中文 ...

  3. C语言复习---获取矩阵的对角和

    #include <stdio.h> #include <stdlib.h> #include <math.h> #define MAX 5 int main() ...

  4. SQL记录-PLSQL异常

    PL/SQL异常   程序执行过程中出现错误情况被称为在PL/SQL异常. PL/SQL支持程序员在程序中使用异常块捕获这样的条件并采取适当的动作应对错误情况.有两种类型的异常: 系统定义的异常 用户 ...

  5. bzoj千题计划269:bzoj2655: calc (拉格朗日插值)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2655 f[i][j] 表示[1,i]里选严格递增的j个数,序列值之和 那么ans=f[A][n] * ...

  6. bzoj千题计划240:bzoj3900: 交换茸角

    http://www.lydsy.com/JudgeOnline/problem.php?id=3900 dp[i]表示让状态为i的鹿满足要求的最少交换次数 不能枚举两头鹿交换,因为一头鹿可能交换多次 ...

  7. 浅谈fhq treap

    一.简介 fhq treap 与一般的treap主要有3点不同 1.不用旋转 2.以merge和split为核心操作,通过它们的组合实现平衡树的所有操作 3.可以可持久化 二.核心操作 代码中val表 ...

  8. [转]C++11 随机数学习

    相对于C++ 11之前的随机数生成器来说,C++11的随机数生成器是复杂了很多.这是因为相对于之前的只需srand.rand这两函数即可获取随机数来说,C++11提供了太多的选择和东西. 随机数生成算 ...

  9. Javascript - Vue - 过滤器

    过滤器 输出的数据由vue对象提供,但它的数据可能需要做进一步的处理才适合展示给用户看,为此,可以在静态的Vue上定义一个过滤器对实例vue对象的data数据进行过滤处理. //调用过滤器//msg是 ...

  10. 基于Disruptor并发框架的分类任务并发

    并发的场景 最近在编码中遇到的场景,我的程序需要处理不同类型的任务,场景要求如下: 1.同类任务串行.不同类任务并发. 2.高吞吐量. 3.任务类型动态增减. 思路 思路一: 最直接的想法,每有一个任 ...