使用编译的 NVIDIA 网络 DPDK PMD 构建 Docker 镜像的快速入门指南
创建于 2019 年 7 月 11 日。本文介绍如何使用编译的 NVIDIA 网络 DPDK PMD 构建 Docker 容器。
文档目录
创建于 Jul 11, 2019

本文介绍如何使用编译的 NVIDIA 网络 DPDK PMD 构建 Docker 容器。
参考
- NVIDIA 网络 MOFED
- Docker 安装参考 - 安装 Docker | Docker 文档
虚拟机管理程序前提条件
- 安装 Docker 版本 >= 1.9。
- 安装 NVIDIA 网络 rdma-core 软件包:
CLI 命令
yum install -y rdma-core-devel
创建 Docker 容器镜像
从 Github 下载 Dockerfile 并在虚拟机管理程序上本地构建镜像。
CLI 命令
git clone https://github.com/Mellanox/mlnx_docker_dpdk
cd mlnx_docker_dpdk/
## 示例:操作系统:CentOS-7.7.1908 DPDK 版本:20.02 MOFED 版本:5.1-2.3.7.1 ##
docker build --build-arg OS_VER=7.7.1908 --build-arg DPDK_VER=20.02 --build-arg OFED_VER=5.1-2.3.7.1 -t centos/<image_name>:<version_name> .
- OS_VER - CentOS 镜像版本
- DPDK_VER - DPDK 版本
- OFED_VER - NVIDIA OFED 版本。不指定 MOFED 版本将安装默认的 MOFED 上游软件包。
- <image_name> 和 <version_name> - 可以是任何用户定义的名称
注意:默认 master 分支仅支持 CentOS 基础操作系统。 ubuntu18.04、ubuntu14.04、ubuntu16.04、rhel7.2、rhel7.3 可以使用此 git 项目中不同分支下的 Dockerfile。
使用 NVIDIA 网络 DPDK PMD 运行 Docker 容器
在虚拟机管理程序上定义并挂载巨页
分配 1G 大小的巨页:
CLI 命令
echo 4 > /sys/devices/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages
或者
分配 2Mb 大小的巨页:
CLI 命令
echo 2048 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
挂载巨页:
mount -t hugetlbfs -o pagesize=1G none /dev/hugepages
mkdir -p /mnt/huge_c0
mount -t hugetlbfs -o pagesize=1G none /mnt/huge_c0/
此示例展示了为 2Mb 和 1Gb 巨页大小总共分配 4Gb 巨页。您可以根据虚拟机管理程序上的空闲内存量定义不同的数量。
为容器定义网络
推荐的网络连接类型是 SRIOV。
有关如何在 K8 集群中将 SRIOV 与挂载巨页结合使用的更多信息,请参阅:
另一种快速启动容器的方法是使用下一步中指定的 "host" 网络连接。
运行容器
查找新创建的 Docker 镜像名称:
CLI 命令
docker image list
运行 Docker 镜像:
CLI 命令
docker run -itd --privileged -v /mnt/huge_c0/:/dev/hugepages/ --net=host --name=<container_name> <docker_image_name>
DPDK 库位于容器内的 /usr/src/dpdk-/ 目录下。此目录包含编译的 NVIDIA PMD 以及默认应用程序(如 testpmd)。
![]() |
Amir Zeidner 多年来,Amir 一直担任解决方案架构师,主要专注于电信领域,领导先进解决方案以满足 5G、NFV 和 SDN 网络基础设施需求。Amir 在数据平面加速技术(如加速交换和网络处理 (ASAP²) 和 DPDK)方面的专业知识,加上对开源云基础设施的深入了解,使他能够在电信领域推广和交付独特的端到端 NVIDIA 网络解决方案。 |


