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

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

配置 EFA 客户端

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

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

  • Amazon Linux 2023(AL2023)

  • Red Hat Enterprise Linux(RHEL)9.5 或更新版本

  • 具有内核版本 6.8+ 的 Ubuntu 22.04 或更新版本

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

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

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

注意

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

安装 EFA 驱动程序

按照 Amazon EC2 用户指南步骤 3:安装 EFA 软件的说明进行操作。

安装 GDS 驱动程序(可选)

仅当您计划将 NVIDIA GPUDirect Storage(GDS)与 FSx for Lustre 配合使用时,才需执行此步骤。

要求:

  • Amazon EC2 P5、P5e、P5en、P6-B200 或 P6e-GB200 实例

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

在客户端实例上安装 NVIDIA GPUDirect Storage 驱动程序
  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. 连接到 Amazon 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。以下是一些有用的 systemd 相关命令:

# 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 文件。

自动挂载配置(可选)

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

步骤 3:EFA 接口

每个 FSx for 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

连接到 FSx for Lustre 文件系统时,客户端实例上每个配置的 EFA 接口均视作一个连接,不超过 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 列表中的实际设备名称。