配置 EFA 客户端 - FSx 为了光泽

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

配置 EFA 客户端

使用以下过程将 Lustre 客户端设置为通过 Elastic Fabric Adapt FSx er (EFA) Fabric Adapter 访问 for Lustre 文件系统。

运行以下操作系统的 Lustre 客户端支持 EFA:

  • 亚马逊 Linux 2023 (AL2023)

  • 红帽企业 Linux (RHEL) 9.5 或更高版本

  • Ubuntu 22.04 或更高版本的内核版本 6.8+

下面列出的 Lustre 客户端支持 EFA。有关更多信息,请参阅 安装 Lustre 客户端

支持 EFA 的 Nitro v4(或更高版本) EC2 实例支持 EFA,不包括 trn2 实例系列。请参阅 Amazon EC2 用户指南中的支持的实例类型

步骤 1:安装所需的驱动程序

注意

如果您使用的是深度学习 AMI,则可以跳过此步骤,因为预先安装了 EFA 驱动程序和 NVIDIA GPUDirect 存储 (GDS) 驱动程序。

安装 EFA 驱动程序

按照《亚马逊 EC2 用户指南》中的步骤 3:安装 EFA 软件中的说明进行操作。

安装 GDS 驱动程序(可选)

仅当您计划将 NVIDIA GPUDirect 存储 (GDS) 与 Lustre 搭配 FSx 使用时,才需要执行此步骤。

要求:

  • 亚马逊 EC2 P5、p5e、p5en、P6-B200 或 p6e-00 实例 GB2

  • NVIDIA GDS 驱动程序版本 2.24.2 或更高版本

在您的客户端实例上安装 NVIDIA GPUDirect 存储驱动程序
  1. 克隆 NVIDIA GDS 存储库:

    git clone https://github.com/NVIDIA/gds-nvidia-fs.git
  2. 生成并安装驱动程序:

    cd gds-nvidia-fs/src/ export NVFS_MAX_PEER_DEVS=128 export NVFS_MAX_PCI_DEPTH=16 sudo -E make sudo insmod nvidia-fs.ko

步骤 2:为 Lustre 客户端配置 EFA

要使用 EFA 接口 FSx 访问 for Lustre 文件系统,必须安装 Lustre EFA 模块并配置 EFA 接口。

快速设置

快速配置您的 Lustre 客户端
  1. 连接到您的亚马逊 EC2 实例。

  2. 下载并解压缩包含配置脚本的文件:

    curl -O https://docs.aws.amazon.com/fsx/latest/LustreGuide/samples/configure-efa-fsx-lustre-client.zip unzip configure-efa-fsx-lustre-client.zip
  3. 切换到该configure-efa-fsx-lustre-client文件夹并运行安装脚本:

    cd configure-efa-fsx-lustre-client sudo ./setup.sh

    该脚本会自动执行以下操作:

    • 导入 Lustre 模块

    • 配置 TCP 和 EFA 接口

    • 创建用于在重启时自动配置的 systemd 服务

    有关可在setup.sh脚本中使用的选项和用法示例的列表,请参阅 zip README.md 文件中的文件。

手动管理 systemd 服务

systemd 服务文件是在/ etc/systemd/system/configure-efa-fsx-lustre-client .service 中创建的。以下是一些有用的系统相关命令:

# Check status sudo systemctl status configure-efa-fsx-lustre-client.service # View logs sudo journalctl -u configure-efa-fsx-lustre-client.service # View warnings/errors from dmesg sudo dmesg

有关更多信息,请参阅 zip README.md 文件中的文件。

自动装载配置(可选)

有关在启动时自动装载 Amazon f FSx or Lustre 文件系统的信息,请参阅自动挂载您的 Amazon FSx 文件系统

步骤 3:EFA 接口

每个 FSx Lustre 文件系统在所有客户端实例上都有 1024 个 EFA 连接的最大限制。

configure-efa-fsx-lustre-client.sh脚本会根据实例类型自动配置 EFA 接口。

实例类型 EFA 接口的默认数量
p6e-gb200.36xlarge

8

p6-b200.48xlarge

8

p5en.48xlarge

8

p5e.48xlarge

8

p5.48xlarge

8

其他带有多张网卡的实例

2

使用单个网卡的其他实例

1

当连接到 for Lustre 文件系统时,客户端实例上每个配置的 EFA 接口都算作一个 FSx 连接,而不超过 1024 个 EFA 连接限制。

手动管理 EFA 接口

具有更多 EFA 接口的实例通常支持更高的吞吐量。只要保持在 EFA 连接总限制之内,就可以自定义接口数量以优化特定工作负载的性能。

您可以使用以下命令手动管理 EFA 接口:

  1. 查看可用的 EFA 设备:

    for interface in /sys/class/infiniband/*; do if [ ! -e "$interface/device/driver" ]; then continue; fi driver=$(basename "$(realpath "$interface/device/driver")") if [ "$driver" != "efa" ]; then continue; fi echo $(basename $interface) done
  2. 查看当前配置的接口:

    sudo lnetctl net show
  3. 添加 EFA 接口:

    sudo lnetctl net add --net efa --if device_name —peer-credits 32

    device_name替换为步骤 1 中列表中的实际设备名称。

  4. 移除 EFA 接口:

    sudo lnetctl net del --net efa --if device_name

    device_name替换为步骤 2 中列表中的实际设备名称。