本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置 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 存储驱动程序
克隆 NVIDIA GDS 存储库:
git clone https://github.com/NVIDIA/gds-nvidia-fs.git
生成并安装驱动程序:
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 客户端
连接到您的亚马逊 EC2 实例。
下载并解压缩包含配置脚本的文件:
curl -O https://docs.aws.amazon.com/fsx/latest/LustreGuide/samples/configure-efa-fsx-lustre-client.zip unzip configure-efa-fsx-lustre-client.zip
切换到该
configure-efa-fsx-lustre-client
文件夹并运行安装脚本:cd
configure-efa-fsx-lustre-client
sudo ./setup.sh该脚本会自动执行以下操作:
导入 Lustre 模块
配置 TCP 和 EFA 接口
创建用于在重启时自动配置的 systemd 服务
有关可在
setup.sh
脚本中使用的选项和用法示例的列表,请参阅 zipREADME.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 接口:
查看可用的 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
查看当前配置的接口:
sudo lnetctl net show
添加 EFA 接口:
sudo lnetctl net add --net efa --if
device_name
—peer-credits 32device_name
替换为步骤 1 中列表中的实际设备名称。移除 EFA 接口:
sudo lnetctl net del --net efa --if
device_name
device_name
替换为步骤 2 中列表中的实际设备名称。