本参考介绍了客户端虚拟机(VM)和 Azure 托管 Lustre(AMLFS)文件系统的网络配置如何影响整体性能。
AMLFS 与客户端之间的网络吞吐量和延迟直接影响作业完成时间。 若要获得可预测的高性能,请遵循以下设计原则:
- 在所有客户端 VM 上使用加速网络。
- 将 AMLFS 和客户端 VM 放置在支持可用性区域的区域中的同一可用性区域中。
- 尽可能直接地在客户端和 AMLFS 之间保持网络路由,数据路径中最少或没有额外的跃点。
环境假设
这些建议假设有以下环境:
- 部署在虚拟网络(VNet)中的 Azure 托管 Lustre 文件系统。
- 满足 AMLFS 先决条件的一个或多个 Linux 客户端 VM。
- Lustre 客户端已安装并装载,如 安装 Lustre 客户端 和 将客户端连接到文件系统中所述。
加速网络需求
与基本网络适配器相比,加速网络使用单根 I/O 虚拟化(SR-IOV)来提供更高的吞吐量、较低的延迟和抖动。 对于 I/O 密集型 AMLFS 工作负荷,Microsoft强烈建议在所有客户端 VM 上启用加速网络。 有关更多背景信息,请参阅 Azure 加速网络概述。
规划 AMLFS 的客户端 VM,如下所示:
- 确定支持加速网络的 VM 大小的优先级。 这包括所有 Azure HPC 和 AI VM 大小。
- 创建网络接口时启用加速网络;如果 VM 大小支持加速网络,请更新启用了加速网络的接口。 有关门户、Azure CLI 和 PowerShell 中的分步选项,请参阅 管理 Azure 虚拟机的加速网络。
- 使用 Azure CLI、Bicep、Terraform 或 ARM 模板部署客户端 VM 时,请配置网络接口,以便默认启用加速网络。
- 通过业务流程协调程序(如Azure Batch或Azure Kubernetes 服务 (AKS))预配客户端池时,请确保节点池或 VM 定义指定支持和启用加速网络的 VM 大小和 NIC 设置。
可以通过以下方式验证是否在客户端 VM 上启用了加速网络:
- 在 Azure 门户中,打开网络接口资源并确认 加速网络 已设置为 “已启用”。
- 在 VM 上,根据分发文档验证网络接口是否正在使用加速网络驱动程序。
有关从脚本或命令行工具确认设置的更多选项,请参阅 “确认已启用加速网络”。
在所有 AMLFS 客户端上启用加速网络有助于最大程度地提高每个节点的吞吐量,并减少网络处理的 CPU 开销,这对于高度并行 Lustre 工作负荷非常重要。
可用性区域注意事项
在支持可用性区域的区域中,AMLFS 始终部署到特定的可用性区域。 将客户端 VM 放置与 AMLFS 区域保持一致,以最大程度地减少延迟并避免跨区域流量。 有关 Azure 中可用性区域的概述,请参阅 可用性区域概述。
请遵循这些指南:
- 部署客户端 VM 时,将它们放置在 AMLFS 文件系统所在的同一可用性区域中。
- 避免在一个区域中的客户端主要访问另一个区域中的 AMLFS 的设计,因为跨区域流量可能会增加延迟。
- 对于大型群集,按工作负荷或作业类型对客户端进行分组,并将每个组保留在它们使用的 AMLFS 实例所在的同一区域中。
如果出于复原或作原因必须跨多个区域,并且跨区域延迟会降低性能,请考虑:
- 将延迟敏感或带宽密集型作业保留在 AMLFS 所在的同一区域中。
- 在其他区域中使用其他 AMLFS 实例来本地化单独的工作负荷的数据访问。
若要检查给定区域的每个可用性区域中可用的 VM 大小,请使用 “检查 VM SKU 可用性”中的 Azure CLI 或 PowerShell 指南。
网络拓扑注意事项
客户端 VM 和 AMLFS 之间的每个额外的网络跃点都可以增加延迟、降低吞吐量并引入抖动。 为了获得最佳性能,请在同一虚拟网络中部署 AMLFS 和客户端 VM,并在子网之间使用直接路由,而无需在数据路径上附加网络虚拟设备或中间跃点。 如果在 VNet 中使用用户定义的路由(UDR),请确保它们不会覆盖客户端子网和 AMLFS 子网之间的系统路由,以便 Lustre 流量保留在直接路径上。
后续步骤
本文介绍了如何通过优化网络配置、可用性区域放置和路由来优化 AMLFS 性能。
若要进一步优化部署,请参阅: