DPDK系列之四:在docker容器(CentOS 7.2.1511)中编译和运行DPDK(17.08.1)
一、前言在当前云计算的发展趋势中,容器以其特殊的优势,成文云计算平台中非常重要的一个分支,所以DPDK开发社区也在对容器的支持方面有大量的投入。比如DPDK summit上面的这个演讲《Dataplane Networking journey in Containers》就对不同容器应用环境中DPDK解决方案进行了探讨。...
一、前言
在当前云计算的发展趋势中,容器以其特殊的优势,成文云计算平台中非常重要的一个分支,所以DPDK开发社区也在对容器的支持方面有大量的投入。比如DPDK summit上面的这个演讲《Dataplane Networking journey in Containers》就对不同容器应用环境中DPDK解决方案进行了探讨。
本文将就如何在容器中编译和运行DPDK进行展示。
转载自https://blog.csdn.net/cloudvtech
二、DPDK容器编译环境配置
2.1 操作系统和docker engine版本
2.2 基础镜像
docker pull centos:7.2.1511
2.3 运行docker容器
docker run -it --privileged -v /sys/bus/pci/drivers:/sys/bus/pci/drivers -v /sys/kernel/mm/hugepages:/sys/kernel/mm/hugepages -v /sys/devices/system/node:/sys/devices/system/node -v /dev:/dev -v /root/container-dpdk/yum.repos.d:/etc/yum.repos.d/ centos:7.2.1511 bash
将DPDK所需要的宿主机资源挂载进去
2.4 在容器内安装软件包
yum makecache
yum install -y make gcc gcc-c++ kernel-devel kernel-headers kernel.x86_64 net-tools
yum install -y numactl-devel.x86_64 numactl-libs.x86_64
yum install -y libpcap.x86_64 libpcap-devel.x86_64
yum install -y pciutils wget xz htop
2.5 查看系统状态
2.6 配置大页内存
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
mkdir /mnt/huge
chmod 777 /mnt/huge
mount -t hugetlbfs nodev /mnt/huge
mount
cat /proc/meminfo | grep Huge
ls /sys/kernel/mm/hugepages -l
查看配置结果
转载自https://blog.csdn.net/cloudvtech
三、在容器内编译DPDK
3.1 下载和patch
patch的内容可以参见https://www.cnblogs.com/zzqcn/p/4024205.html
wget http://fast.dpdk.org/rel/dpdk-17.08.1.tar.xz
xz -d dpdk-17.08.1.tar.xz
tar -xvf dpdk-17.08.1.tar
mv dpdk-stable-17.08.1 /root
cd dpdk-stable-17.08.1/
patch file lib/librte_eal/linuxapp/igb_uio/igb_uio.c
3.2 编译DPDK
export RTE_SDK=/root/dpdk-stable-17.08.1
export RTE_TARGET=x86_64-native-linuxapp-gcc
make config T=x86_64-native-linuxapp-gcc
sed -ri 's,(PMD_PCAP=).*,\1y,' build/.config
make
cd $RTE_SDK
make install T=x86_64-native-linuxapp-gcc
make -C examples RTE_SDK=$(pwd) RTE_TARGET=build O=$(pwd)/build/examples
转载自https://blog.csdn.net/cloudvtech
四、宿主机设置DPDK运行环境
4.1 在宿主机上加载内核模块
lsmod | grep uio
modprobe uio_pci_generic
modprobe uio
modprobe vfio-pci
insmod build/kmod/igb_uio.ko
lsmod | grep uio
4.2 在宿主机上绑定网卡
ifconfig eno33554960 down
ifconfig eno50332184 down
./usertools/dpdk-devbind.py --bind=igb_uio 02:02.0
./usertools/dpdk-devbind.py --bind=igb_uio 02:03.0
usertools/dpdk-devbind.py --status
转载自https://blog.csdn.net/cloudvtech
五、在容器内运行DPDK测试
5.1 运行DPDK helloworld
5.2 运行PMD测试
状态数据
转载自https://blog.csdn.net/cloudvtech
更多推荐
所有评论(0)