全部产品
Search
文档中心

云服务器 ECS:在企业级实例上配置eRDMA

更新时间:Sep 20, 2024

为支持eRDMA能力的企业级ECS实例配置eRDMA,实现在不需要修改现有网络架构的情况下,体验超低延迟、大吞吐、高弹性的高性能RDMA网络服务。本文介绍如何在企业级ECS实例上配置eRDMA,以充分利用高效可扩展的RDMA能力,从而提升您的网络性能。

了解相关概念:弹性RDMA网卡(ERI)、弹性网卡(ENI)、弹性RDMA(eRDMA)

  • 弹性RDMA网卡(Elastic RDMA Interface,简称ERI)是一种可以绑定到ECS实例的虚拟网卡。更多信息,请参见功能简介

  • 弹性网卡(Elastic Network Interfaces,简称ENI)是专有网络VPC中的虚拟网络接口,用于连接云服务器与专有网络。更多信息,请参见弹性网卡概述

  • 弹性RDMA(Elastic Remote Direct Memory Access,简称eRDMA)是阿里云提供的低延迟、大吞吐、高弹性的高性能RDMA网络服务。更多信息,请参见eRDMA概述

使用限制

配置eRDMA对地域、实例规格、镜像等方面有一些限制,详细说明如下表所示。

限制项

说明

地域

支持华北2(北京)、华东2(上海)、华东1(杭州)、华南1(深圳)、华南3(广州)、华北6(乌兰察布)、华南2(河源)

实例规格

支持eRDMA的实例规格如下:

镜像

  • Alibaba Cloud Linux 3(推荐)

  • Alibaba Cloud Linux 2(仅x86系统支持)

  • CentOS 7.9(仅x86系统支持)

  • Ubuntu 18.04/20.04/22.04

  • Anolis OS 8.4 ANCK/8.6 ANCK(仅Arm版本支持)

说明

不同实例规格可选择的镜像范围不同,实际可选择的镜像以购买页面的实际展示为准。

eRDMA设备数量

每个实例最大支持1个eRDMA网卡设备。

网络限制

  • 网卡开启弹性RDMA接口后,不支持分配IPv6地址。

  • 两个实例之间通过弹性RDMA通信,通信链路中间不支持跨网元设备(例如负载均衡SLB等)。

操作步骤

支持eRDMA能力的实例使能eRDMA能力需满足2个条件:安装了eRDMA驱动、绑定了开启弹性RDMA接口的网卡

创建新实例时配置eRDMA

重要

当支持eRDMA能力的实例的操作系统为Alibaba Cloud Linux、Ubuntu和Anolis OS时,支持在创建实例时自动安装eRDMA驱动并开启弹性RDMA接口,使能eRDMA,免去手动安装的麻烦。对于不支持安装eRDMA驱动的操作系统或自动安装失败的情况,您可以在实例创建完成后,通过脚本方式或手动方式安装驱动。具体操作,请参见为已有实例配置eRDMA

  1. 前往实例购买页

  2. 创建支持ERI的ECS实例。创建过程中需注意以下配置项(其他参数,请参见自定义购买实例):

    • 实例规格和镜像:请参见使用限制镜像需要选中安装eRDMA驱动。实例启动过程中会自动安装eRDMA驱动,无需您再手动安装。

      image

    • 弹性网卡:在主网卡右侧选中弹性RDMA接口

      重要

      创建实例时,仅支持为主网卡启用弹性RDMA接口,且单台ECS实例最多只能绑定一个启用弹性RDMA接口的网卡。如果您需要使用辅助网卡配置eRDMA,只能在创建实例后,单独创建辅助弹性网卡并为其启用弹性RDMA接口,然后绑定至ECS实例上使用。具体操作,请参见创建辅助弹性网卡绑定辅助弹性网卡

      image

为已有实例配置eRDMA

  1. 登录ECS管理控制台,找到目标实例并进入实例详情页,选择弹性网卡页签,查看实例是否已开启了弹性RDMA接口的网卡。

    image

    • 若有:请跳过以下步骤。

    • 若没有:请按照以下步骤,为主网卡或辅助弹性网卡配置eRDMA。

  2. 为主网卡或辅助弹性网卡配置eRDMA。

    重要

    单台ECS实例只能绑定一个启用弹性RDMA接口的网卡,因此您只需为主网卡开启RDMA功能,或为辅助弹性网卡开启RDMA功能即可。

    • 为主网卡(推荐使用)或辅助弹性网卡配置eRDMA

      您可以通过API接口ModifyNetworkInterfaceAttribute,填写网卡ID,设置NetworkInterfaceTrafficModeHighPerformance,为已有实例配置eRDMA。

    • 为辅助弹性网卡配置eRDMA:创建启用弹性RDMA接口的辅助弹性网卡,并绑定至目标ECS实例。

      说明

      只能在单独创建辅助弹性网卡时为辅助弹性网卡启用弹性RDMA接口,不支持在创建实例时或创建辅助弹性网卡后为辅助弹性网卡启用弹性RDMA接口。

      1. 创建辅助弹性网卡。具体操作,请参见创建辅助弹性网卡

        • 专有网络交换机:需要与目标ECS实例在同一个专有网络和可用区。

        • 增加弹性RDMA接口:打开开关。

          2.png

      2. 将辅助弹性网卡绑定至ECS实例。具体操作,请参见绑定辅助弹性网卡

        说明
        • 将辅助弹性网卡绑定至实例前,请确认目标实例的主网卡和辅助网卡不在同一子网内,否则可能因为默认路由导致辅助网卡的RDMA功能在某些情况下不可用。

        • 将启用弹性RDMA接口的辅助弹性网卡绑定至实例后,如需解绑,必须先停止实例。具体操作,请参见停止实例

      3. 执行ifconfig命令,如果不能显示该网卡,需要手动配置弹性网卡。具体操作,请参见配置辅助弹性网卡。否则,请跳过该步骤。

        说明

        部分镜像无法自动识别新绑定的辅助弹性网卡。

  3. 安装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

    手动方式

    1. 执行以下命令,更新前置软件包。

      • Alibaba Cloud Linux 3/CentOS/Anolis OS:

        sudo yum update -y
      • Ubuntu:无需更新,跳过该步骤。

    2. 依次执行以下命令,查看最新的kernel包版本和操作系统的内核版本。

      rpm -qa | grep kernel  #查看最新的kernel包版本
      uname -r  #查看操作系统的内核版本

      系统返回示例信息如下,表示两者版本一致,无需进行额外操作。若版本不一致,则需要重启实例使其生效。

      image.png

    3. 执行以下命令,安装依赖的软件包。

      • 对于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实例,由于需要基于源码执行构建任务,相关的软件依赖包较多且可能会发生变化,因此可以忽略本步骤,直接执行安装脚本。如果安装脚本失败,脚本会提示您需要安装的软件依赖包,请根据提示完成安装,然后重新执行软件安装即可。

    4. 执行以下命令,下载驱动安装包。

      • 从内网地址获取软件包

        wget http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-latest.tar.gz
      • 从公网地址获取软件包

        wget https://mirrors.aliyun.com/erdma/erdma_installer-latest.tar.gz

      这里默认下载最新版本的驱动安装包,您还可以根据实际场景下载指定版本的驱动包。eRDMA不同驱动版本的发布信息如下:

      eRDMA不同驱动版本的发布信息(按版本由新到旧排序)

      版本

      发布时间

      下载地址

      校验和

      变更内容

      1.3.3

      2023年10月09日

      http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.3.3.tar.gz

      • MD5:51ffb06266255139554275bc86fa4caa

      • SHA256:5aad6d006662bd902ef5e913fb97d2a6623aadeeacd06f1c3f1c74cbd1f57ded

      更新最新补丁包

      1.3.2

      2023年09月08日

      http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.3.2.tar.gz

      • MD5:8492016fc96eece6a60687b0e4ea66dd

      • SHA256:89ab265dc9fa8d56f1b2d8b13d7f50032390a265eddb2e04eeee3aa86fd169ce

      更新最新补丁包

      1.3.1

      2023年08月18日

      http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.3.1.tar.gz

      • MD5:b9b90212e6ba49d57b81d3c5d4210deb

      • SHA256:4ebe31760443613f8f61fcdbef7a85b277dabc59039d048898536ea4fe5d8d4a

      允许在驱动侧配置底层的传输模式为强保序。强保序模式下,数据包只能按序提交到内存

      1.3.0

      2023年06月26日

      http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.3.0.tar.gz

      • MD5:2da0c65643b5e2ffb61d75e1b5e5a7ab

      • SHA256:cce03aac0e07d0890884c35ad4f10e9d15f587535d788c8fc97ea268312ad4a9

      • 注册MR时,支持多级页表

      • 驱动支持IPv6特性(完整的IPv6需要底层硬件同时支持)

      • 支持Ubuntu 22.04

      • 更新最新补丁包

      1.2.3

      2023年05月30日

      http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.2.3.tar.gz

      • MD5:7496a6324f3872469d7194c2e234b19f

      • SHA256:16c2de0d90da6906db91c2e2469aaad9e24131c44ce52b9464036f1c3747f8a2

      更新最新补丁包

      1.2.2

      2023年05月04日

      http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.2.2.tar.gz

      • MD5:f449d3961a41ff6a97a53cfa29e20d6c

      • SHA256:11fdb4b3c778762ad0bdf2d0327008aa2ecb22dc508c9f9fae3568b41ae5462b

      支持Ubuntu 22.04

      1.2.1

      2023年04月04日

      http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.2.1.tar.gz

      • MD5:e080103934da76ce83924da789aecece

      • SHA256:be3a89e57143d7544cf968052250df92f911aebb035f07b06ebeb8c5f13bf976

      更新最新补丁包

      1.2.0

      2023年03月09日

      http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.2.0.tar.gz

      • MD5:c8d440a6e35ec6d2aaf1a568affea876

      • SHA256:d484997e28e29f862dc580c112b55b389a00faf88dc6aa89eea588ee1369a8ca

      • 支持兼容模式

      • 更新最新补丁包

      1.1.0

      2023年01月16日

      http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.1.0.tar.gz

      • MD5:1fea69d819919a77384f902213eb681e

      • SHA256:176c3bb35d5584e8c8e43eba9b1824b8cb2b43a19d802c4e469363ed8e33fea6

      更新最新补丁包

    5. 执行以下命令,解压安装包并进入文件目录。

      tar -xvf erdma_installer-latest.tar.gz && cd erdma_installer
    6. 执行以下命令,安装驱动。

      • 方式一:安装过程需手动确认相关卸载步骤及自动下载步骤

        sudo sh install.sh
      • 方式二:安装过程无需确认过程

        sudo sh install.sh  --batch

      根据返回信息,确认安装结果。

      若系统返回如下信息,则表示安装驱动成功。

      4.png

      若系统返回如下信息,则表示提示安装驱动失败,请按照提示信息操作完成后,重新尝试安装驱动。

      5.png

      说明

      如果您使用的是CentOS 7系统,并且重新安装驱动过程中提示缺少软件包,但您无法通过yum获取到,您可能需要执行yum install -y epel-release命令,先安装epel-release仓库,然后才能获取到对应的软件包。

测试eRDMA性能

说明

perftest是测试eRDMA基础性能的benchmark工具。更多信息,请参见perftest相关文档

  1. 分别在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发行版,否则请采用第一种方式安装。

  2. 测试eRDMA的延迟性能。

    1. 在Server端执行如下命令。

      ib_write_lat -R -a -F
    2. 在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