部分企业级ECS实例支持配置eRDMA,可以实现在不需要修改现有网络架构的情况下,体验超低延迟、大吞吐、高弹性的高性能RDMA网络服务。
使用限制
限制项 | 说明 |
地域 | 支持华北2(北京)、华东2(上海)、华东1(杭州)、华南1(深圳)、华南3(广州)、华北6(乌兰察布)、华南2(河源) |
实例规格 | 支持eRDMA的实例规格如下: |
镜像 |
说明 不同实例规格可选择的镜像范围不同,实际可选择的镜像以购买页面的实际展示为准。 |
eRDMA设备数量 | 您可以通过DescribeInstanceTypes返回参数中的EriQuantity的值,查询实例规格支持绑定ERI的最大数量(0表示不支持弹性RDMA接口)。 |
网络限制 |
|
为企业级实例配置eRDMA
购买实例时配置eRDMA
当支持eRDMA能力的实例的操作系统为Alibaba Cloud Linux、Ubuntu和Anolis OS时,支持在创建实例时自动安装eRDMA驱动并开启弹性RDMA接口,使能eRDMA,免去手动安装的麻烦。
对于不支持安装eRDMA驱动的操作系统或自动安装失败的情况,您可以在实例创建完成后,通过脚本方式或手动方式安装驱动。具体操作,请参见为已有实例配置eRDMA。
在购买的实例启动后,eRDMA驱动安装可能需要一段时间,请您耐心等待。
创建支持ERI的企业级实例。创建过程中需注意以下配置项(其他参数,请参见自定义购买实例):
实例和镜像:选择支持eRDMA的实例规格,并安装eRDMA驱动。
实例:请参见使用限制。
镜像:选择公共镜像,选中出现的安装eRDMA驱动。实例启动过程中会自动安装eRDMA驱动,无需您再手动安装。
弹性网卡:主网卡右侧选择开启弹性RDMA接口,为ECS实例绑定ERI。
说明购买企业级实例时,仅支持为主网卡启用弹性RDMA接口。如果您需要为辅助网卡配置eRDMA,您可以通过控制台或OpenAPI方式为辅助弹性网卡开启RDMA接口。具体操作,请参见弹性RDMA网卡(ERI)。
为已有实例配置eRDMA
验证实例eRDMA是否配置正确。
具体操作,请参见验证eRDMA配置的正确性。
您可以根据验证结果,选择以下安装eRDMA驱动或者为ECS实例绑定ERI等操作。
安装eRDMA驱动。
如果您未在创建实例时候选择eRDMA驱动,则实例不会自动安装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
执行安装脚本后,脚本会自动帮助您安装eRDMA驱动所需的软件依赖包以及eRDMA驱动,等待安装脚本执行结束即可。
说明如果以脚本方式安装驱动失败,请您检查安装日志,安装日志的具体路径为:
/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不同安装程序包版本的发布信息,请参见为ECS实例安装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仓库,然后才能获取到对应的软件包。
为已有ECS实例绑定ERI。
企业级实例,目前仅支持每个实例最多绑定1个ERI。详细信息,请参见使用限制。
修改ECS实例已绑定的弹性网卡属性,启用ERI
具体操作,请参见修改已创建弹性网卡的RDMA接口。
通过OpenAPI创建开启了ERI的辅助弹性网卡并绑定到实例
如果您是通过OpenAPI的方式创建并绑定辅助弹性网卡,则操作如下:
通过OpenAPI创建ERI。
您可以通过CreateNetworkInterface 创建一个弹性网卡,并设置NetworkInterfaceTrafficMode参数的值为HighPerformance,即创建一个开启了ERI的弹性网卡。
调用成功后,请记录返回数据中生成的弹性网卡ID(即
NetworkInterfaceId
对应的返回值)。调用AttachNetworkInterface,指定NetworkInterfaceId为上一步返回的网卡ID,指定InstanceId为目标实例ID,即将创建的开启了ERI的弹性网卡绑定到目标实例上。
重要如果您的实例规格支持绑定多个ERI,为了获取最大网络带宽,建议您在绑定时候为每张ERI指定不同的NetworkCardIndex,实现将不同的ERI绑定到不同的通道。详细信息,请参见请求参数。
测试实例在eRDMA的写延迟性能
您可以在两台配置了eRDMA的企业级实例上,安装perftest
后通过ib_write_lat
进行写延迟测试。关于perftest测试,请参见perftest测试集。
环境准备
准备两台配置了eRDMA(已安装eRDMA软件栈、弹性网卡开启了RDMA接口)的企业级实例,分别作为服务端和客户端。
确保网络配置正确,两台服务器之间内网互通。详细信息,请参见ECS实现内网互通。
测试步骤
分别远程连接两台实例。
具体操作,请参见使用Workbench工具以SSH协议登录Linux实例。
验证并保证两台实例eRDMA配置正确。
具体操作,请参见验证eRDMA配置的正确性。
在两台实例上,分别执行以下命令,安装perftest测试工具。
您可以选择开通公网通过官方仓库下载并安装,或者直接通过yum/apt源进行安装。
通过官方仓库下载并安装
为ECS实例开通公网,详细信息,请参见为ECS实例开通公网。
访问perftest官方仓库下载并安装perftest工具。
通过yum/apt源安装
说明不同Linux发行版的软件源中包含的perftest版本可能不一致,在通信时可能存在兼容性问题。建议您通信的实例使用相同的Linux发行版,否则请通过官方仓库下载并安装。
Alibaba Cloud Linux 3/CentOS/Anolis OS
sudo yum install perftest -y
Ubuntu
sudo apt install perftest -y
测试eRDMA网络延迟是否符合预期表现。
在服务端实例上,执行以下命令,启动
ib_write_lat
作为服务器,监听来自客户端的连接。ib_write_lat -R -a -F
在客户端实例上,执行以下命令,启动
ib_write_lat
,连接服务端。ib_write_lat -R -a -F <server_ip>
其中,
<server_ip>
是服务端ECS实例上绑定的eRDMA的弹性网卡所对应的私有IP地址。获取IP地址的方法,请参见查看IP地址。查看测试结果。
客户端测试完成后,
ib_write_lat
会输出测试配置信息、连接信息以及性能测试结果(延迟相关的统计数据,包括最小、最大、平均延迟等性能指标)。详细信息,请参见ib_write_lat测试结果说明。