为支持eRDMA能力的企业级ECS实例配置eRDMA,实现在不需要修改现有网络架构的情况下,体验超低延迟、大吞吐、高弹性的高性能RDMA网络服务。本文介绍如何在企业级ECS实例上配置eRDMA,以充分利用高效可扩展的RDMA能力,从而提升您的网络性能。
使用限制
配置eRDMA对地域、实例规格、镜像等方面有一些限制,详细说明如下表所示。
限制项 | 说明 |
地域 | 支持华北2(北京)、华东2(上海)、华东1(杭州)、华南1(深圳)、华南3(广州)、华北6(乌兰察布)、华南2(河源) |
实例规格 | 支持eRDMA的实例规格如下: |
镜像 |
说明 不同实例规格可选择的镜像范围不同,实际可选择的镜像以购买页面的实际展示为准。 |
eRDMA设备数量 | 每个实例最大支持1个eRDMA网卡设备。 |
网络限制 |
|
操作步骤
支持eRDMA能力的实例使能eRDMA能力需满足2个条件:安装了eRDMA驱动、绑定了开启弹性RDMA接口的网卡。
创建新实例时配置eRDMA
当支持eRDMA能力的实例的操作系统为Alibaba Cloud Linux、Ubuntu和Anolis OS时,支持在创建实例时自动安装eRDMA驱动并开启弹性RDMA接口,使能eRDMA,免去手动安装的麻烦。对于不支持安装eRDMA驱动的操作系统或自动安装失败的情况,您可以在实例创建完成后,通过脚本方式或手动方式安装驱动。具体操作,请参见为已有实例配置eRDMA。
为已有实例配置eRDMA
登录ECS管理控制台,找到目标实例并进入实例详情页,选择弹性网卡页签,查看实例是否已开启了弹性RDMA接口的网卡。
若有:请跳过以下步骤。
若没有:请按照以下步骤,为主网卡或辅助弹性网卡配置eRDMA。
为主网卡或辅助弹性网卡配置eRDMA。
重要单台ECS实例只能绑定一个启用弹性RDMA接口的网卡,因此您只需为主网卡开启RDMA功能,或为辅助弹性网卡开启RDMA功能即可。
为主网卡(推荐使用)或辅助弹性网卡配置eRDMA
您可以通过API接口ModifyNetworkInterfaceAttribute,填写网卡ID,设置
NetworkInterfaceTrafficMode
为HighPerformance
,为已有实例配置eRDMA。为辅助弹性网卡配置eRDMA:创建启用弹性RDMA接口的辅助弹性网卡,并绑定至目标ECS实例。
说明只能在单独创建辅助弹性网卡时为辅助弹性网卡启用弹性RDMA接口,不支持在创建实例时或创建辅助弹性网卡后为辅助弹性网卡启用弹性RDMA接口。
创建辅助弹性网卡。具体操作,请参见创建辅助弹性网卡。
专有网络和交换机:需要与目标ECS实例在同一个专有网络和可用区。
增加弹性RDMA接口:打开开关。
将辅助弹性网卡绑定至ECS实例。具体操作,请参见绑定辅助弹性网卡。
说明将辅助弹性网卡绑定至实例前,请确认目标实例的主网卡和辅助网卡不在同一子网内,否则可能因为默认路由导致辅助网卡的RDMA功能在某些情况下不可用。
将启用弹性RDMA接口的辅助弹性网卡绑定至实例后,如需解绑,必须先停止实例。具体操作,请参见停止实例。
执行
ifconfig
命令,如果不能显示该网卡,需要手动配置弹性网卡。具体操作,请参见配置辅助弹性网卡。否则,请跳过该步骤。说明部分镜像无法自动识别新绑定的辅助弹性网卡。
安装eRDMA驱动。
根据实际情况选择脚本方式或者手动方式安装eRDMA驱动。
脚本方式:默认下载最新且稳定版本的驱动包。
手动方式:可以下载指定版本的驱动包。
脚本方式
执行以下命令,运行脚本安装驱动。
curl -O http://mirrors.cloud.aliyuncs.com/erdma/env_setup.sh sudo /bin/bash env_setup.sh > /var/log/erdma_install.log 2>&1
执行安装脚本后,脚本会自动帮助您安装ERI驱动所需的软件依赖包、下载ERI驱动包以及安装ERI驱动,等待安装脚本执行结束即可。
说明如果以脚本方式安装驱动失败,请您检查安装日志,安装日志的具体路径为:
/var/log/erdma_install.log
。手动方式
执行以下命令,更新前置软件包。
Alibaba Cloud Linux 3/CentOS/Anolis OS:
sudo yum update -y
Ubuntu:无需更新,跳过该步骤。
依次执行以下命令,查看最新的kernel包版本和操作系统的内核版本。
rpm -qa | grep kernel #查看最新的kernel包版本 uname -r #查看操作系统的内核版本
系统返回示例信息如下,表示两者版本一致,无需进行额外操作。若版本不一致,则需要重启实例使其生效。
执行以下命令,安装依赖的软件包。
对于x86实例,请执行以下操作:
Alibaba Cloud Linux 3/CentOS/Anolis OS:
sudo yum install gcc-c++ dkms cmake kernel-devel kernel-headers libnl3 libnl3-devel
Ubuntu:
sudo apt-get install dkms cmake libnl-3-dev libnl-route-3-dev kernel-headers
对于Arm实例,由于需要基于源码执行构建任务,相关的软件依赖包较多且可能会发生变化,因此可以忽略本步骤,直接执行安装脚本。如果安装脚本失败,脚本会提示您需要安装的软件依赖包,请根据提示完成安装,然后重新执行软件安装即可。
执行以下命令,下载驱动安装包。
从内网地址获取软件包
wget http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-latest.tar.gz
从公网地址获取软件包
wget https://mirrors.aliyun.com/erdma/erdma_installer-latest.tar.gz
这里默认下载最新版本的驱动安装包,您还可以根据实际场景下载指定版本的驱动包。eRDMA不同驱动版本的发布信息如下:
执行以下命令,解压安装包并进入文件目录。
tar -xvf erdma_installer-latest.tar.gz && cd erdma_installer
执行以下命令,安装驱动。
方式一:安装过程需手动确认相关卸载步骤及自动下载步骤
sudo sh install.sh
方式二:安装过程无需确认过程
sudo sh install.sh --batch
根据返回信息,确认安装结果。
若系统返回如下信息,则表示安装驱动成功。
若系统返回如下信息,则表示提示安装驱动失败,请按照提示信息操作完成后,重新尝试安装驱动。
说明如果您使用的是CentOS 7系统,并且重新安装驱动过程中提示缺少软件包,但您无法通过
yum
获取到,您可能需要执行yum install -y epel-release
命令,先安装epel-release仓库,然后才能获取到对应的软件包。
测试eRDMA性能
perftest是测试eRDMA基础性能的benchmark工具。更多信息,请参见perftest相关文档。
分别在Server端和Client端安装perftest工具。您可以通过以下两种方式安装perftest。
方式一:访问perftest官方仓库下载并安装perftest工具。该方式需确保实例具备公网访问能力。
方式二:yum/apt源方式安装。执行如下命令,安装perftest工具。
Alibaba Cloud Linux 3/CentOS/Anolis OS
sudo yum install perftest -y
Ubuntu
sudo apt install perftest -y
说明不同Linux发行版的软件源中包含的perftest版本可能不一致,在通信时可能存在兼容性问题。建议您通信的实例使用相同的Linux发行版,否则请采用第一种方式安装。
测试eRDMA的延迟性能。
在Server端执行如下命令。
ib_write_lat -R -a -F
在Client端执行如下命令。
ib_write_lat -R -a -F <server_ip>
其中,
<server_ip>
是Server端ECS实例上绑定的eRDMA的弹性网卡所对应的私有IP地址。获取IP地址的方法,请参见查看IP地址。
若系统返回信息如下,测试结果包括平均延迟、最大延迟、最小延迟等延迟相关的性能指标,表示eRDMA通信正常。
相关文档
容器中需要大规模数据传输和高性能网络通信的应用场景中,将eRDMA功能引入容器(Docker)环境可实现容器应用程序绕过操作系统内核直接访问主机的物理eRDMA设备,从而提供更快的数据传输和通信效率。具体操作,请参见在容器(Docker)中配置eRDMA。
您也可以在ACK(Alibaba Cloud Container Service for Kubernetes)集群中使用eRDMA,可以为运行在集群上的所有服务和应用提供低延迟、高吞吐量的网络通信能力。具体操作,请参见在ACK集群上使用eRDMA。
如需监测或诊断eRDMA,方便您对eRDMA的运行状态进行实时监控。具体操作,请参见监测和诊断eRDMA。