CocoSketch源码环境配置【DPDK+OVS安装配置】

Cocosketch

版本要求

DPDK18.11.10
Open vSwitch 2.12.1
linux kernel:3.10.0-1160.6.1.el7.x86_64(可使用CentOS7.7 搭载的内核版本完全一致)

(对于DPDK和OVS的版本,两者的版本是要对应的,不能随便搭配,具体的可以自行搜索。)

对于CentOs内核版本的说明

可以先进入这个网站找到要求的内核版本对应的release版本号
在这里插入图片描述

再进入这个网站找到对应的Archived Versions,点击后面的Tree即可下载对应的CentOs
在这里插入图片描述

编译安装DPDK

先做一下准备工作,以防后面会遇到一些问题

  1. 安装相关依赖
$ yum install numactl
$ yum install numactl-devel
$ yum install gcc
$ yum install gcc kernel-devel-$(uname -r)
  1. 查看内核
cd /usr/src/kernels/

我这里遇到的问题是,打开后,发现竟然是个空文件夹,原来是没有安装kernel-devel
解决方法:

$ yum install kernel-devel -y

然后查看一下内核ll
在这里插入图片描述
3. 进入/lib/modules/3.10.0-1062.el7.x86_64 查看

$ cd /lib/modules/3.10.0-1062.el7.x86_64
$ ll

如果有闪烁,且有红色的字体,则说明这里有问题,不然后面make时会出现make: *** /lib/modules/3.10.0-1062.el7.x86_64/build: No such file or directory.的问题
解决方法:

$ rm -rf build
$ ln -s  /usr/src/kernels/3.10.0-1160.49.1.el7.x86_64 /lib/modules/3.10.0-1062.el7.x86_64/build

正确的显示应该是这样的:
在这里插入图片描述
4. 安装DPDK

$ wget http://fast.dpdk.org/rel/dpdk-18.11.10.tar.gz
$ tar -zxvf  dpdk-18.11.10.tar.gz
$ cd dpdk-stable-18.11.10
$ mkdir -p /usr/src/dpdk
$ make config T=x86_64-native-linuxapp-gcc
*作为后面编译ovs使用的dpdk库*
$ make install T=x86_64-native-linuxapp-gcc DESTDIR=/usr/src/dpdk
$ make install T=x86_64-native-linuxapp-gcc DESTDIR=/usr   //将dpdk安装在当前系统内,可以在安装目录外使用dpdk的命令

因为DPDK需要绑定网卡、配置大页等操作,参考了别人的教程自己还是搞不明白,然后找到了下面的方式安装的过程可以一并解决。也可以参考其他教程,会比下面的方式更详细:基于DPDK的OVS安装与配置

$ 进入dpdk源码的文件夹
$ cd usertools
./dpdk-setup.sh

在这里插入图片描述
选择15 x86_64-native-linuxapp-gcc
在这里插入图片描述
选择18 insert IGB UIO module
在这里插入图片描述
选择22 Setup hugepafe mappings for NUMA systems
输入:1024
在这里插入图片描述
选择23 Display cuerrent Ethernrt/Crypto device settings
会显示挂载在kernel上的网卡信息

需要将你想挂载到DPDK上的网卡down掉$ ifconfig ens38 down ens38就是你想要的挂载的网卡(这里可能有人会和我一样,发现只有一个网卡,建议不要将这个网卡挂载到dpdk上,要提前添加一个新的空闲网卡,具体方法可以参考其他教程
后续实现应该是需要挂载两张网卡的,所以提前添加两个空闲网卡挂载到dpdk。

选择24 Bind Ethernet/Crypto device to IGB UIO module
输入ens38(即你刚才down掉的网卡)

选择35 退出

  1. 测试有没有安装成功
$ 还是回到dpdk的安装目录
$ cd examples/helloworld
$ make
$ cd build
$./helloworld

在这里插入图片描述

编译安装ovs

$ wget http://openvswitch.org/releases/openvswitch-2.12.1.tar.gz
$ tar -zxvf openvswitch-2.12.1.tar.gz
$ cd openvswitch-2.12.1/
$ ./boot.sh
  1. ./boot.sh报错./boot.sh:行2: autoreconf: 未找到命令
    解决:yum install autoconf automake libtool
$ ./configure --with-dpdk=/usr/src/dpdk
$ make 
$ make install
  1. 接下来,按照cocosketch实验指导中写的,将ovs-doif-netdev文件夹下的所有.h文件,复制到openvswitch-2.12.1/lib/下
  2. 将dpif-netdev.patch文件也复制到openvswitch-2.12.1/lib/下
$ patch dpif-netdev.c dpif-netdev.patch
  1. 重新编译ovs

如果在make时出现这样的报错:

lib/dpif-netdev.c:86:20:fatal error: rte_ip.h:No such file or directory
compilation terminated.

因为rte_ip.h是dpdk中的的库文件,所以一定是dpdk没有和ovs正确链接上,到这一步有什么补救措施我也不太清楚,我采取的方式是:从头再来一遍(尴尬)

参考:
网卡绑定和解绑
dpdk+ovs安装和编译
Ovs+Dpdk简单实践
openvswitch2.11.0修改源码后重新编译
虚拟机的ovs+dpdk搭建
Open vSwitch with DPDK(官网)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值