宿主机要求
vpp对虚拟机或者物理机的cpu、内存均有要求,CPU最好用intel系列,内存给到4G左右,系统推荐用ubuntu16.04以上。
本文是基于ubuntu16.04,Intel(R) Xeon(R) CPU,内存4g的环境基础
安装:
一,通过fd.io官网源码下载编译
下载源码:git clone https://gerrit.fd.io/r/vpp
安装依赖:apt-get install -y python-cffi python-pycparser iproute iproute2 libc-ares2 libudev-dev numactl wget
注:各个版本的编译方法都不一样,列举两个版本的编译方法如下
#18.04的vpp编译:
cd vpp
git checkout v18.04
make install-dep #下载vpp编译所需的依赖
sed -i '/RTE_EAL_IGB_UIO/ {s/n/y/g;}' dpdk/Makefile #打开IGB_UIO驱动选项(有些虚拟机使用默认驱动会看不到网卡)
cd build-root
make V=0 PLATFORM=vpp TAG=vpp_debug install-deb #编译出来的是debug版本,适合开发过程但会影响性能,正常版本去掉TAG=vpp_debug
#18.10的vpp编译:
cd vpp
git checkout v18.10
make install-dep
sed -i '/RTE_EAL_IGB_UIO/ {s/n/y/g;}' build/external/packages/dpdk.mk
cd build-root
make V=0 PLATFORM=vpp TAG=vpp_debug install-deb
编译大概20分钟左右,完成后会生成一堆deb包解压即可。
二,通过源apt或yum下载
参考官网:https://wiki.fd.io/view/VPP/Installing_VPP_binaries_from_packages
运行
1, 设置巨页
mkdir /mnt/huge
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
mount -t hugetlbfs nodev /mnt/huge
2 ,加载驱动
modprobe uio
insmod /vpp/build-root/build-vpp_debug-native/dpdk/dpdk-stable-18.02.1/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
3 ,修改vpp配置文件
首先查看网卡pci,指定哪几个网卡被dpdk接管
注:官网对startup.conf的介绍:https://wiki.fd.io/view/VPP/Command-line_Arguments
https://fdio-vpp.readthedocs.io/en/latest/gettingstarted/users/configuring/startup.html
修改/etc/vpp/startup.conf
unix {
nodaemon
log /tmp/vpp.log
full-coredump
#exec /tmp/up_interface //开启vpp执行的配置脚本
cli-listen /run/vpp/cli.sock //或者cli-listen 0:5002,可以使其他设备通过telnet ip 5002 登录
gid vpp
}
api-trace {
on
}
api-segment {
gid vpp
}
cpu {
main-core 1
corelist-workers 0,2,3 //在使用QAT的时候,并不是工作线程越多性能越好
//详细配置:https://zhaozhanxu.com/2016/04/26/VPP/2016-04-26-VPP-Work-Mode/
}
dpdk {
dev 0000:02:01.0 {
num-rx-queues 2
}
dev 0000:02:02.0 {
num-rx-queues 2
}
uio-driver igb_uio
#vdev crypto_aesni_mb0 //开启crypto加解密引擎,用于提升ipsec加解密效率
#vdev crypto_aesni_mb1
#num-mbufs 128000
#socket-mem 2048,2048
#no-multi-seg
}
4、 启动vpp
三种方式:
1:service vpp restart
2:vpp -c /etc/vpp/startup.conf
3: telnet x:x:x:x 5002
使用
简单命令行操作参考官网:https://wiki.fd.io/view/VPP/Command-line_Interface_(CLI)_Guide