你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

适用于 Linux 的 InfiniBand 驱动程序扩展

注意

本文引用了 CentOS,这是一个接近生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑你的使用和规划。 有关详细信息,请参阅 CentOS 生命周期结束指南

此扩展在运行 Linux 的启用了 InfiniBand 和 SR-IOV(“r”大小)的 HB 系列N 系列 VM 上安装 InfiniBand OFED 驱动程序。 扩展为 Connect-X NIC 安装适当的驱动程序,具体取决于 VM 系列。 它不会在未启用 SR-IOV 的 HB 系列N 系列 VM 上安装 InfiniBand ND 驱动程序。

在 HPC VM 上启用 InfiniBand 中提供了有关 OFED 驱动程序的手动安装的说明。

扩展也适用于为 Windows VM 安装 InfiniBand 驱动程序。

先决条件

操作系统

此扩展支持以下 OS 发行版,具体取决于特定 OS 版本对驱动程序的支持。 有关支持的操作系统和驱动程序版本的最新列表,请参阅 resources.json

分发 版本 InfiniBand NIC 驱动程序
Ubuntu 18.04 LTS、20.04 LTS CX3-Pro、CX5、CX6
CentOS 7.4、7.5、7.6、7.7、7.8、7.9、8.1、8,2 CX3-Pro、CX5、CX6
Red Hat Enterprise Linux 7.4、7.5、7.6、7.7、7.8、7.9、8.1、8,2 CX3-Pro、CX5、CX6

重要

本文档引用临近或处于生命周期终止 (EOL) 日期的 Linux 发行版本。 请考虑更新到最新版本。

Internet 连接

适用于 InfiniBand 驱动程序的 Microsoft Azure 扩展要求目标 VM 连接到 Internet 并可访问 Internet。

扩展架构

以下 JSON 显示此扩展的架构。

{
  "name": "<myExtensionName>",
  "type": "extensions",
  "apiVersion": "2015-06-15",
  "location": "<location>",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', <myVM>)]"
  ],
  "properties": {
    "publisher": "Microsoft.HpcCompute",
    "type": "InfiniBandDriverLinux",
    "typeHandlerVersion": "1.2",
    "autoUpgradeMinorVersion": true,
    "settings": {
    }
  }
}

属性

名称 值/示例 数据类型
apiVersion 2015-06-15 date
publisher Microsoft.HpcCompute string
type InfiniBandDriverLinux string
typeHandlerVersion 1.2 int

部署

Azure Resource Manager 模板

可使用 Azure Resource Manager 模板部署 Azure VM 扩展。 部署需要部署后配置的一个或多个虚拟机时,模板是理想选择。

虚拟机扩展的 JSON 配置可以嵌套在虚拟机资源内,或放置在资源管理器 JSON 模板的根级别或顶级别。 JSON 的位置会影响资源名称和类型的值。 有关详细信息,请参阅设置子资源的名称和类型

以下示例假定扩展嵌套在虚拟机资源内。 嵌套扩展资源时,JSON 放置在虚拟机的 "resources": [] 对象中。

{
  "name": "myExtensionName",
  "type": "extensions",
  "location": "[resourceGroup().location]",
  "apiVersion": "2015-06-15",
  "dependsOn": [
    "[concat('Microsoft.Compute/virtualMachines/', myVM)]"
  ],
  "properties": {
    "publisher": "Microsoft.HpcCompute",
    "type": "InfiniBandDriverLinux",
    "typeHandlerVersion": "1.2",
    "autoUpgradeMinorVersion": true,
    "settings": {
    }
  }
}

PowerShell

Set-AzVMExtension
    -ResourceGroupName "myResourceGroup" `
    -VMName "myVM" `
    -Location "southcentralus" `
    -Publisher "Microsoft.HpcCompute" `
    -ExtensionName "InfiniBandDriverLinux" `
    -ExtensionType "InfiniBandDriverLinux" `
    -TypeHandlerVersion 1.2 `
    -SettingString '{ `
	}'

Azure CLI

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name InfiniBandDriverLinux \
  --publisher Microsoft.HpcCompute \
  --version 1.2

将扩展添加到虚拟机规模集

以下示例在名为 myResourceGroup 的资源组中部署的名为 myVMSS 的现有虚拟机规模集中的所有支持 RDMA VM 上安装最新版本 1.2 InfiniBandDriverLinux 扩展:

$VMSS = Get-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "myVMSS"
Add-AzVmssExtension -VirtualMachineScaleSet $VMSS -Name "InfiniBandDriverLinux" -Publisher "Microsoft.HpcCompute" -Type "InfiniBandDriverLinux" -TypeHandlerVersion "1.2"
Update-AzVmss -ResourceGroupName "myResourceGroup" -VMScaleSetName "MyVMSS" -VirtualMachineScaleSet $VMSS
Update-AzVmssInstance -ResourceGroupName "myResourceGroup" -VMScaleSetName "myVMSS" -InstanceId "*"

故障排除和支持

疑难解答

有关扩展部署状态的数据可以从 Azure 门户以及使用 Azure PowerShell 和 Azure CLI 进行检索。 若要查看给定 VM 的扩展部署状态,请运行以下命令。

Get-AzVMExtension -ResourceGroupName myResourceGroup -VMName myVM -Name myExtensionName
az vm extension list --resource-group myResourceGroup --vm-name myVM -o table

扩展执行输出将记录到以下文件。 请参考此文件以跟踪安装的状态以及对任何故障进行排查。

/var/log/azure/ib-vmext-status

退出代码

下表根据扩展安装过程的退出代码描述了有意义和建议的操作。

退出代码 含义 可能的操作
0 操作成功
1 扩展的用法不正确 检查执行输出日志
10 用于 Hyper-V 和 Azure 的 Linux Integration Services 不可用或未安装 检查 lspci 的输出
11 在此 VM 大小上找不到 Mellanox InfiniBand 使用受支持的 VM 大小和 OS
12 不支持的映像产品/服务
13 不支持的 VM 大小 使用启用了 InfiniBand(“r”大小)的 H 系列N 系列N 系列 VM 来部署
14 操作失败 检查执行输出日志

支持

如果对本文中的任何内容需要更多帮助,可以联系 MSDN Azure 和 Stack Overflow 论坛上的 Azure 专家。 或者,可以通过 Azure 支持站点提交支持事件。 有关使用 Azure 支持的信息,请阅读 Microsoft Azure 支持常见问题解答

后续步骤

有关启用 InfiniBand(“r”大小)的详细信息,请参阅 HB 系列N 系列 VM。