ERI是一种可以绑定到ECS实例的虚拟网卡,ERI必须依附于弹性网卡(ENI)开启RDMA设备。ERI完全复用了弹性网卡所属的网络,让您无需改变业务组网,即可在原有网络下使用RDMA功能,体验RDMA带来的超低延迟。本文介绍如何在ECS实例上配置RDMA。

操作步骤

  1. 创建支持ERI的ECS实例。
    具体操作,请参见 使用向导创建实例。在创建支持ERI的ECS实例时,请注意下表中的配置项。
    配置项 说明
    地域及可用区 支持选择华北2(北京)、华东2(上海)、华东1(杭州)和华南1(深圳)及对应的可用区。
    实例规格 支持ERI的实例规格如下:
    镜像 支持以下镜像(任选一款):
    • Alibaba Cloud Linux 3(推荐)
    • CentOS 7.9
    • Ubuntu 18.04/20.04
    • Anolis OS 8.4 ANCK/8.6 ANCK
    eRDMA设备数量 每个实例最大支持1个eRDMA网卡设备。
    热插拔特性 ERI网卡只支持热插入,不支持热拔出。
    其他限制
    • ERI设置不支持IPv6地址。
    • 两个实例之间通过ERI通信,通信链路中间不支持跨网元设备(例如负载均衡SLB等)。
  2. 创建并启用弹性网卡,您可以根据需求选择创建主网卡或辅助网卡。
    • 创建启用ERI的主网卡
      说明 主网卡不支持从实例解绑,只能随实例一起创建和释放。
      在创建ECS实例过程中,在 网络和安全组配置向导页面配置弹性网卡时,在主网卡右侧选中 弹性RDMA接口主网卡开启ERI
    • 创建启用ERI的辅助弹性网卡
      说明 辅助弹性网卡只能在单独创建时启用ERI并绑定至支持ERI的实例上使用,不支持在随实例创建辅助弹性网卡时或者修改辅助弹性网卡时启用ERI。
      1. 创建辅助弹性网卡。具体操作,请参见创建弹性网卡
        在创建启用ERI的辅助弹性网卡时,打开 增加弹性RDMA接口开关。ERI会共用该辅助弹性网卡的设置,包括弹性网卡的IP、应用于弹性网卡的安全组规则等。 创建RDMA网卡
      2. 将辅助弹性网卡绑定至ECS实例。具体操作,请参见绑定弹性网卡
        说明
        • 单台实例最多绑定一个启用ERI的辅助弹性网卡。
        • 绑定辅助网卡至实例前,请确认目标实例的主网卡和辅助网卡不在同一子网内,否则可能因为默认路由导致辅助网卡的RDMA功能在某些情况下不可用。如果您知道如何解决并确定要这样使用,请忽略本提示。

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

  3. 远程连接ECS实例。
    具体操作,请参见 通过密码或密钥认证登录Linux实例
  4. 可选:在实例内配置弹性网卡。
    部分镜像无法自动识别新绑定的辅助弹性网卡。您可以执行 ifconfig命令查看,如果不能显示该网卡,请手动配置弹性网卡。具体操作,请参见 配置弹性网卡
  5. 在实例内安装ERI驱动。
    1. 运行以下命令,更新前置软件包。
      • Alibaba Cloud Linux 3/CentOS/Anolis OS:
        yum update -y
      • Ubuntu:无需更新,跳过该步骤
    2. 可选:如果涉及kernel子版本的更新,需要重启实例生效,重启后请重新远程连接实例。
      查看是否涉及kernel子版本的更新方法:
      1. 执行rpm -qa | grep kernel命令查看最新的kernel包版本。
      2. 执行uname -r命令查看操作系统的内核版本。
      如果二者的版本不一致,说明涉及kernel子版本的更新,则需要重启实例。
    3. 运行以下命令,安装依赖的软件包。
      • 对于x86实例,请执行以下操作:
        • Alibaba Cloud Linux 3/CentOS/Anolis OS:
          yum install gcc-c++ dkms cmake kernel-devel kernel-headers libnl3 libnl3-devel
        • Ubuntu:
          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.tar.gz
      • 从公网地址获取软件包
        wget https://mirrors.aliyun.com/erdma/erdma_installer.tar.gz
    5. 运行以下命令,解压安装包并进入文件目录。
      tar -xvf erdma_installer.tar.gz && cd erdma_installer
    6. 运行以下命令,安装驱动。
      • 方式一:安装过程需手动确认相关卸载步骤及自动下载步骤
        sh install.sh
      • 方式二:安装过程无需确认过程
        sh install.sh  --batch
    7. 确认安装结果。
      • 安装成功:会出现类似如下信息。安装成功
        此外,您也可以运行以下命令,通过eadm工具来确认驱动是否正常安装。
        eadm ver
        当前实例规格应当返回 0.2.34及以上版本号。如果提示没有本命令或者执行失败,请重新安装驱动。
      • 提示安装失败,并且提示您应该执行的下一个步骤:请按照提示信息操作完成后,重新尝试安装驱动。安装失败
        说明 如果您使用的是CentOS 7系统,并且重新安装驱动过程中提示缺少软件包,但您无法通过 yum获取到,您可能需要执行以下命令,先安装epel-release仓库,然后才能获取到对应的软件包。
        yum install -y epel-release