弹性RDMA(Elastic Remote Direct Memory Access,简称eRDMA)是阿里云提供的低延迟、大吞吐、高弹性的高性能RDMA网络服务。eRDMA是基于第四代神龙系统架构和云上VPC网络、100%兼容RDMA生态、提供超大规模网络部署的ECS普惠RDMA服务。本文介绍如何在ACK集群中配置和使用eRDMA。
前提条件
已创建ACK集群。请参见创建ACK托管集群。
步骤一:安装ACK eRDMA Controller组件
您可以参见如下流程安装ACK eRDMA Controller组件。
如果您的集群网络插件为Terway,还需要配置Terway的网卡白名单,避免Terway组件修改eRDMA的网卡。配置方式,请参见为弹性网卡(ENI)配置白名单。
当节点存在多张网卡时,ACK eRDMA Controller 为附加的eRDMA网卡配置路由时,采用比同网段网卡路由更低的优先级,默认采用
200
的路由优先级,如果你在安装ACK eRDMA Controller后需要手动配置网卡,注意避免路由冲突。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在组件管理页面,单击网络页签,定位ACK eRDMA Controller组件,按照页面提示配置组件并完成安装。
配置项
说明
preferDriver 驱动类型
选择集群节点上使用的eRDMA驱动类型。可选值:
default
:默认驱动模式。compat
:兼容RoCE驱动模式。ofed
:基于ofed的驱动模式,适用于GPU机型。
关于驱动类型的详细说明,请参见使用eRDMA。
是否为Pod分配节点全部eRDMA设备
可选值:
True(勾选):为Pod分配节点上所有的eRDMA设备。
False(不勾选):Pod根据NUMA拓扑分配一个eRDMA设备。节点需要开启CPU Static Policy才能保证Pod和设备的固定NUMA分配。关于如何配置CPU Policy,请参见创建节点池。
安装完成后,您可以在左侧导航栏,选择工作负载 >容器组,然后选择命名空间为ack-erdma-controller,查看Pod运行状态,确认组件运行正常。
步骤二:使用eRDMA加速容器网络
安装ACK eRDMA Controller组件后,您可以在Pod使用下方配置来开启eRDMA加速。
配置 | 配置方式 | 说明 |
开启eRDMA | 在Pod的容器资源中声明
| 通过在Pod资源中声明 分配后,您可以在Pod中查看分配到的RDMA设备。
|
开启SMC-R透明加速 | 在开启eRDMA的基础上,在Pod的
| 在启用SMC-R的透明加速功能后,只有当TCP连接的两端都配置了SMC-R时,才能使用eRDMA的加速。 您可以在Pod中安装 说明
|
场景示例一:GPU机型使用eRDMA加速NCCL通信
参见步骤一:安装ACK eRDMA Controller组件安装组件时,配置
preferDriver
为ofed
,用于NCCL类型的通信。在节点池中添加GPU节点。具体操作,请参见创建节点池。
在应用容器镜像构建时安装eRDMA相关包。
在集群中运行使用eRDMA的GPU应用,以
nccl-test
为例。验证NCCL使用了eRDMA加速。
您可以在应用日志中查看NCCL使用的通讯类型和使用的网卡数量。例如下图所示。
预期输出表明,已使用
erdma_0
和erdma_1
的eRDMA设备进行了加速。
场景示例二:使用SMC-R透明加速应用网络
参见步骤一:安装ACK eRDMA Controller组件安装组件时,配置
preferDriver
为default
,用于普通类型的通信加速。参见下方示例代码,在集群中创建SMC-R加速的应用。
查看Pod中网络连接的加速情况。
您可以在容器中安装
smc-tools
,通过smcss
的命令查看加速效果。/# smcss State UID Inode Local Address Peer Address Intf Mode ACTIVE 00000 0059964 172.17.192.73:47772 172.17.192.10:80 0000 SMCR
预期输出表明,
Mode
中显示SMCR
,表明已对这条连接进行了eRDMA加速。