VPP-20.09版本安装教程(联网版)

一、环境

操作系统: Centos7.4

VPP版本: 20.09

设置阿里云镜像源

注:由于centos官方源下载rpm太慢,vpp依赖的rpm包有几百个,所以选择阿里云镜像源

更新centos-base源参考

https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11gE0rea

更新epel源参考

https://developer.aliyun.com/mirror/epel?spm=a2c6h.13651102.0.0.3e221b11gE0rea

都选择RHEL 7版本

二、安装vpp

1.下载vpp-20.09版本

git clone -b stable/2009 https://github.com/FDio/vpp.git

如果速度太慢可以先把vpp从github上导入到码云,然后从码云下载

2.安装vpp依赖包

cd vpp-20.09
make install-dep

全部选y,安装完成后重启机器,这里重启是因为vpp会更新kernel到最新版本,可以通过 uname -a命令查看,不更新会影响dpdk编译安装

3.编译igb_uio驱动

这里是可选项,vpp利用dpdk收包,需要编译igb_uio这个网卡驱动,但是不做vpp也可以运行

有两种方式编译igb_uio驱动

方式一是手动编译安装dpdk的时候编译igb_uio驱动

方式二是修改配置文件,让vpp编译安装dpdk时编译igb_uio驱动,这里采用方式二,方式一可以自行百度,网上有很多教程

cd /home/vpp-20.09/build/external/packages
vi dpdk.mk
# 找到 $(call set,RTE_EAL_IGB_UIO,n)
# 把 n 改成 y 并保存退出

4.安装vpp相关依赖

make install-ext-deps

这里vpp会下载几个依赖的程序,例如dpdk

下载目录是 vpp-20.09/build/external/downloads 可以查看

vpp会把下载的程序压缩包解压编译安装并且制作成一个rpm包,安装包名称是 vpp-ext-deps-20.09-13.x86_64, 这里20.09-13会根据版本有变化

5.编译安装vpp

make build      #编译debug版本
make build-release    #编译发布版本

三、配置大页内存

大页内存不配置也可以运行,但是配置可以提高程序性能

这里只是举例,如果服务器内存很多那么配置越多越好,例如32G内存可以配置16个

vim /etc/default/grub
# 修改 GRUB_CMDLINE_LINUX 这一行并保存退出
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet default_hugepagesz=1G hugepagesz=1G hugepages=1"
# 在尾部添加了 default_hugepagesz(默认大页大小) hugepagesz(大页大小) hugepages(大页个数)
# 这里是设置了1个大页内存 大页内存大小是1G linux还支持2M的大页
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
# 通过/proc/meminfo 查看大页内存情况
cat /proc/meminfo

情况如图所示

总大页个数是1 剩余大页个数是1

四、运行VPP

运行vpp前需要了解vpp的可执行程序和配置文件,其次还有vpp运行时会遇到的错误和警告,这里以make build方式举例说明

1.vpp相关文件

编译过后会生成一些可执行程序和依赖的动态库

可执行程序在目录vpp-20.09/build-root/build-vpp_debug-native/vpp/bin

动态库在目录vpp-20.09/build-root/build-vpp_debug-native/vpp/lib

默认配置文件在目录vpp-20.09/build-root/install-vpp_debug-native/vpp/etc/vpp,名称为startup.conf

2.运行vpp

这里举例运行vpp并且指出运行vpp会遇到的问题和解决方法

2.1修改环境变量

vi /etc/profile
在尾部添加
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/include:/usr/local/include
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64
export CC=/opt/rh/devtoolset-9/root/bin/gcc
export CXX=/opt/rh/devtoolset-9/root/bin/g++
保存退出后执行 source /etc/profile

这里主要是主要是C_INCLUDE_PATHLD_LIBRARY_PATH,指定程序默认搜索头文件和动态库的路径

CC和CXX是指定gcc和g++版本,这里是因为Centos7安装的gcc是4.8.5,通过更改环境变量CC和CXX可以更换gcc版本

2.2运行vpp

cd vpp-20.09/build-root/build-vpp_debug-native/vpp/bin #切换到vpp可执行程序目录
./vpp -c /home/vpp-20.09/build-root/install-vpp_debug-native/vpp/etc/vpp/startup.conf

这里是默认配置文件运行vpp

2.3动态库找不到错误解决

找不到是因为vpp生成的动态库不在程序搜索的目录下

cd vpp-20.09/build-root/build-vpp_debug-native/vpp/lib
cp -r * /usr/local/lib    # 拷贝所有动态库到系统默认目录下

2.4vpp用户组不存在错误

添加vpp用户组即可

groupadd vpp

2.5vpp日志文件创建失败

原因是因为/var/log/vpp目录不存在

mkdir -p /var/log/vpp

2.6vpp证书警告

这个只是警告,不影响运行,但是还是消除掉比较好

cd /etc/ssl/certs/
./make-dummy-cert ca-certificates.crt

2.7运行vpp命令行界面

vpp通过命令行界面与vpp进行交互,可以查看和设置各种内容,留着以后讲解

前提是vpp已经运行了,新开一个终端

cd vpp-20.09/build-root/build-vpp_debug-native/vpp/bin
./vppctl -s /run/vpp/cli.sock

出现这个界面就算成功了

至此vpp已经算是安装好了,并且可以运行,后期将会讲解vpp配置文件

猜你喜欢

转载自blog.csdn.net/wh_computers/article/details/113753840