searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

在Mellanox网卡环境生成F-STACK镜像

2023-05-24 03:22:37
40
0

1       部署环境

  • 操作系统:CentOs7.9
  • 内核:4.18.0-3.0.el7.x86_64
  • 网卡:Mellanox Technologies MT27710 Family [ConnectX-4 Lx]
  • 网卡驱动版本:MLNX_OFED_LINUX-5.5-1.0.3.2-rhel7.9-x86_64
  • F-STACK选择版本:v1.22

宿主机需要升级内核、安装内核开发库、Mellanox网卡的驱动。 安装过程详见另一篇文章: 《使用 Mellanox网卡部署F-STACK》

https://www.ctyun.cn/developer/article/419208028528709

 

2       Dockerfile编写

2.1     依赖库的安装

依赖于Centos基础镜像,在生成镜像过程中按提示调整即可。笔者安装的依赖库如下:

RUN yum -y install gcc make expat-devel gcc-c++ net-tools numactl  &&\

yum -y install numactl numactl-devel numactl-libs pciutils wget xz &&\

yum -y install curl-devel expat-devel gettext-devel openssl openssl-devel zlib-devel perl-ExtUtils-MakeMaker iproute bc&&\

yum -y install meson python3 perl-ExtUtils-MakeMaker iproute bc &&

yum install createrepo gcc-gfortran fuse-libs tcsh tk libnl3 libnl3-devel -y &&\    yum install pciutils numactl-libs openssl-libs lsof expat ethtool libstdc++ systemd-libs python pkgconfig -y  &&\    yum install make glib2 libnl3 libmnl tcl tk expect -y

 

另外可能还需要安装pkg-config,笔者是下载rpm包安装的。

 

2.2     安装内核和内核版本

RUN rpm -ivh --nodeps kernel-devel-4.18.0-3.0.el7.x86_64.rpm &&\

rpm -ivh --nodeps kernel-4.18.0-3.0.el7.x86_64.rpm

 

2.3     网卡驱动安装

驱动安装过程同《使用 Mellanox网卡部署F-STACK》。

差异点:

  • 不升级固件
  • 指定内核和linux版本

如下所示:

RUN ./mlnxofedinstall --kernel 4.18.0-3.0.el7.x86_64 --distro rhel7.9 --upstream-libs --dpdk --without-fw-update

 

 

2.4        dpdk和F-stack编译和安装

安装过程同《使用 Mellanox网卡部署F-STACK》

2.5     应用编译和安装

链接库选项除添加dpdk、f-stack库之外,还要添加俩选项:“-libverbs -lmlx5

 

3       容器启动

 

容器启动脚本要对F-Stack运行环境进行初始化,初始化包括:

  • 加载内核模块
  • 初始化大页内存

/usr/local/bin/dpdk-hugepages.py --setup 2G

modprobe -a ib_uverbs mlx5_core mlx5_ibinsmod /root/sh/rte_kni.ko carrier=on

容器运行可携带网卡名,容器启动后启动脚本自动配置f-stack.conf中ifname参数。当然也可以容器运行后人工配置。

注意:网卡不能卸载到用户态

4       总结

在Mellanox网卡生成F-STACK应用的镜像过程比较复杂,主要注意事项总结如下:

  • 宿主机Mellanox网卡dpdk驱动环境要装好
  • Dockerfile中安装网卡驱动时不需要升级固件,安装的目的是为了获得网卡所需的各种库文件

由于Mellanox网卡驱动文件较大(300M+),安装后更大了,所以镜像文件很大。后续会研究如何减小镜像文件。另外,研究如何在ARM64环境生成Mellanox网卡的f-stack应用的镜像。

0条评论
0 / 1000
候日出
5文章数
1粉丝数
候日出
5 文章 | 1 粉丝
原创

在Mellanox网卡环境生成F-STACK镜像

2023-05-24 03:22:37
40
0

1       部署环境

  • 操作系统:CentOs7.9
  • 内核:4.18.0-3.0.el7.x86_64
  • 网卡:Mellanox Technologies MT27710 Family [ConnectX-4 Lx]
  • 网卡驱动版本:MLNX_OFED_LINUX-5.5-1.0.3.2-rhel7.9-x86_64
  • F-STACK选择版本:v1.22

宿主机需要升级内核、安装内核开发库、Mellanox网卡的驱动。 安装过程详见另一篇文章: 《使用 Mellanox网卡部署F-STACK》

https://www.ctyun.cn/developer/article/419208028528709

 

2       Dockerfile编写

2.1     依赖库的安装

依赖于Centos基础镜像,在生成镜像过程中按提示调整即可。笔者安装的依赖库如下:

RUN yum -y install gcc make expat-devel gcc-c++ net-tools numactl  &&\

yum -y install numactl numactl-devel numactl-libs pciutils wget xz &&\

yum -y install curl-devel expat-devel gettext-devel openssl openssl-devel zlib-devel perl-ExtUtils-MakeMaker iproute bc&&\

yum -y install meson python3 perl-ExtUtils-MakeMaker iproute bc &&

yum install createrepo gcc-gfortran fuse-libs tcsh tk libnl3 libnl3-devel -y &&\    yum install pciutils numactl-libs openssl-libs lsof expat ethtool libstdc++ systemd-libs python pkgconfig -y  &&\    yum install make glib2 libnl3 libmnl tcl tk expect -y

 

另外可能还需要安装pkg-config,笔者是下载rpm包安装的。

 

2.2     安装内核和内核版本

RUN rpm -ivh --nodeps kernel-devel-4.18.0-3.0.el7.x86_64.rpm &&\

rpm -ivh --nodeps kernel-4.18.0-3.0.el7.x86_64.rpm

 

2.3     网卡驱动安装

驱动安装过程同《使用 Mellanox网卡部署F-STACK》。

差异点:

  • 不升级固件
  • 指定内核和linux版本

如下所示:

RUN ./mlnxofedinstall --kernel 4.18.0-3.0.el7.x86_64 --distro rhel7.9 --upstream-libs --dpdk --without-fw-update

 

 

2.4        dpdk和F-stack编译和安装

安装过程同《使用 Mellanox网卡部署F-STACK》

2.5     应用编译和安装

链接库选项除添加dpdk、f-stack库之外,还要添加俩选项:“-libverbs -lmlx5

 

3       容器启动

 

容器启动脚本要对F-Stack运行环境进行初始化,初始化包括:

  • 加载内核模块
  • 初始化大页内存

/usr/local/bin/dpdk-hugepages.py --setup 2G

modprobe -a ib_uverbs mlx5_core mlx5_ibinsmod /root/sh/rte_kni.ko carrier=on

容器运行可携带网卡名,容器启动后启动脚本自动配置f-stack.conf中ifname参数。当然也可以容器运行后人工配置。

注意:网卡不能卸载到用户态

4       总结

在Mellanox网卡生成F-STACK应用的镜像过程比较复杂,主要注意事项总结如下:

  • 宿主机Mellanox网卡dpdk驱动环境要装好
  • Dockerfile中安装网卡驱动时不需要升级固件,安装的目的是为了获得网卡所需的各种库文件

由于Mellanox网卡驱动文件较大(300M+),安装后更大了,所以镜像文件很大。后续会研究如何减小镜像文件。另外,研究如何在ARM64环境生成Mellanox网卡的f-stack应用的镜像。

文章来自个人专栏
服务部署
5 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0