启用 InfiniBand

适用于:✔️ Linux VM ✔️ Windows VM ✔️ 灵活规模集 ✔️ 统一规模集

支持 RDMAHB 系列N 系列 VM 通过低延迟的高带宽 InfiniBand 网络进行通信。 此类互连上的 RDMA 功能对于提高分布式节点 HPC 和 AI 工作负载的可伸缩性和性能至关重要。 支持 InfiniBand 的 HB 系列和 N 系列 VM 采用非阻塞性胖树进行连接,使用的小直径旨在实现一致的优化 RDMA 性能。

可以通过多种方法在各种 VM 大小上启用 InfiniBand。

注释

尝试 VM 辅助,以便更快地进行诊断。 建议运行 VM assist for WindowsVM assist for Linux。 这些基于脚本的诊断工具可帮助你识别影响 Azure VM 来宾代理和整体 VM 运行状况的常见问题。

具有 InfiniBand 驱动程序的 VM 映像

请参阅 VM 映像,了解市场中支持的一系列 VM 映像。InfiniBand 驱动程序(适用于 SR-IOV 或非 SR-IOV VM)中预加载了这些映像,也可以使用适用于支持 RDMA 的 VM 的适当驱动程序配置这些映像。 市场中的 Ubuntu-HPC VM 映像是最简单的入门方法。

InfiniBand 驱动程序 VM 扩展

在 Linux 上,可以使用 InfiniBandDriverLinux VM 扩展安装 Mellanox OFED 驱动程序,并在已启用 SR-IOV 的 HB 系列和 N 系列 VM 上启用 InfiniBand。

在 Windows 上,InfiniBandDriverWindows VM 扩展可安装 Windows Network Direct 驱动程序(在非 SR-IOV VM 上)或 Mellanox OFED 驱动程序(在 SR-IOV VM 上),以建立 RDMA 连接。 在 A8 和 A9 实例的某些部署中,会自动添加 HpcVmDrivers 扩展。 请注意,HpcVmDrivers VM 扩展即将弃用;它不再会更新。

若要将 VM 扩展添加到 VM,可以使用 Azure PowerShell cmdlet。 有关详细信息,请参阅虚拟机扩展和功能。 还可使用经典部署模型中部署的 VM 扩展。

手动安装

可以在启用了 SR-IOVHB 系列N 系列 VM 上手动安装 Mellanox OpenFabrics 驱动程序 (OFED)

Linux

可以按照以下示例安装适用于 Linux 的 OFED 驱动程序。 尽管此处的示例适用于 RHEL,但步骤是通用的,可用于任何兼容的 Linux 操作系统,如 Ubuntu(18.04、19.04、20.04)和 SLES(12 SP4+ 和 15)。 有关其他发行版的更多示例,请参阅 azhpc-images 存储库。 也可以使用收件箱驱动程序,但 Mellanox OFED 驱动程序提供了更多功能。

MLNX_OFED_DOWNLOAD_URL=http://content.mellanox.com/ofed/MLNX_OFED-5.0-2.1.8.0/MLNX_OFED_LINUX-5.0-2.1.8.0-rhel7.7-x86_64.tgz
# Optionally verify checksum
wget --retry-connrefused --tries=3 --waitretry=5 $MLNX_OFED_DOWNLOAD_URL
tar zxvf MLNX_OFED_LINUX-5.0-2.1.8.0-rhel7.7-x86_64.tgz

KERNEL=( $(rpm -q kernel | sed 's/kernel\-//g') )
KERNEL=${KERNEL[-1]}
# Uncomment the lines below if you are running this on a VM
#RELEASE=( $(cat /etc/redhat-release | awk '{print $4}') )
#yum -y install http://olcentgbl.trafficmanager.cn/redhat/${RELEASE}/updates/x86_64/kernel-devel-${KERNEL}.rpm
sudo yum install -y kernel-devel-${KERNEL}
sudo ./MLNX_OFED_LINUX-5.0-2.1.8.0-rhel7.7-x86_64/mlnxofedinstall --kernel $KERNEL --kernel-sources /usr/src/kernels/${KERNEL} --add-kernel-support --skip-repo

Windows

对于 Windows,请下载并安装适用于 Windows 驱动程序的 Mellanox OFED

启用基于 InfiniBand (IB) 的 IP

如果计划运行 MPI 作业,则通常不需要 IPoIB。 MPI 库将使用谓词接口进行 IB 通信(除非你明确使用 MPI 库的 TCP/IP 通道)。 但如果你的应用使用 TCP/IP 进行通信,并且你想要通过 IB 运行,则你可以通过 IB 接口使用 IPoIB。 使用以下命令(适用于 RHEL)启用基于 InfiniBand 的 IP。

重要

要避免问题,请确保未运行较旧版本的 Microsoft Azure Linux 代理 (waagent)。 建议在通过 IB 启用 IP 之前至少使用版本 2.4.0.2

sudo sed -i -e 's/# OS.EnableRDMA=n/OS.EnableRDMA=y/g' /etc/waagent.conf
sudo systemctl restart waagent

后续步骤