优化Azure Managed Lustre性能

本参考介绍了客户端虚拟机(VM)和 Azure 托管 Lustre(AMLFS)文件系统的网络配置如何影响整体性能。

AMLFS 与客户端之间的网络吞吐量和延迟直接影响作业完成时间。 若要获得可预测的高性能,请遵循以下设计原则:

  • 在所有客户端 VM 上使用加速网络。
  • 将 AMLFS 和客户端 VM 放置在支持可用性区域的区域中的同一可用性区域中。
  • 尽可能直接地在客户端和 AMLFS 之间保持网络路由,数据路径中最少或没有额外的跃点。

环境假设

这些建议假设有以下环境:

加速网络需求

与基本网络适配器相比,加速网络使用单根 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 BatchAzure 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 性能。

若要进一步优化部署,请参阅: