将 GPU 分区并分配给虚拟机

适用于:Azure Stack HCI 版本 23H2 和 22H2

注意

在 Azure Stack HCI 23H2 上创建和管理 VM 的推荐方法是使用 Azure Arc 控制平面。 仅当需要 Azure Arc VM 中不可用的功能时,才使用下面所述的机制来管理 VM。

本文介绍如何配置图形处理单元 (GPU) 分区,并将分区分配给虚拟机 (VM)。 其中提供了有关如何通过 Windows Admin Center 和 PowerShell 配置 GPU 分区计数、分配 GPU 分区和取消分配 GPU 分区的说明。

若要预配 GPU 分区功能,需要完成以下步骤:

先决条件

在开始使用 GPU 分区功能之前,需要考虑几个要求和事项:

主机服务器的先决条件

  • 必须在主机服务器上安装 Windows Server 2025。 如果在实时迁移虚拟机主机时需要群集,则必须安装 Windows Server 2025 Datacenter。

  • 已在服务器上安装并配置 Hyper-V 角色。 请参阅在 Windows Server 上安装 Hyper-V 角色,了解如何开始。

  • 在群集的每台服务器上安装相同品牌、型号和大小的物理 GPU 设备。 在群集中的物理服务器上安装 GPU 设备时,请参阅 OEM 提供的文档。

  • 按照 GPU IHV 的说明在群集的每台服务器上安装 GPU 驱动程序。 对于 NVIDIA GPU 驱动程序,请参阅 NVIDIA vGPU 文档

  • 确保在群集中每台服务器的 BIOS 中启用虚拟化支持和 SR-IOV。 如果无法确定 BIOS 中的正确设置,请与系统供应商联系。

  • 群集主机需要具有支持输入/输出内存管理单元 (IOMMU) DMA 位跟踪功能的处理器。 例如,支持 Intel VT-D 或 AMD-Vi 的处理器。

注意

当使用分配了 GPU 分区的虚拟机进行实时迁移时,Hyper-V 实时迁移将自动回退为使用带压缩的 TCP/IP。 这可能会提高主机的 CPU 利用率。 此外,实时迁移所需的时间可能比未附加 GPU 分区的虚拟机更长。

VM 的先决条件

Windows Admin Center 的先决条件

如果使用 Windows Admin Center 预配 GPU 分区,则必须安装最新版 Windows Admin CenterGPU 扩展 2.8.0 或更高版本。 有关如何在 Windows Admin Center 中安装 GPU 扩展的说明,请参阅安装扩展

安装该扩展后,它会显示在已安装的扩展选项卡下,如以下屏幕截图所示。 确保 GPU 扩展版本为 2.8.0 或更高版本。

Windows Admin Center 中“已安装的扩展”选项卡的屏幕截图,可在其中验证是否已安装 GPU 扩展。

PowerShell 先决条件

如果使用 PowerShell 预配 GPU 分区,则必须以管理员用户身份运行所有 PowerShell 命令。

有关如何使用 PowerShell 命令进行 GPU 分区的详细信息,请参阅 Add-VMGpuPartitionAdapterGet-VMGpuPartitionAdapterRemove-VMGpuPartitionAdapter 参考文档。

验证 GPU 驱动程序安装

满足所有先决条件后,必须验证 GPU 驱动程序是否已安装且可分区。

按照以下步骤使用 Windows Admin Center 验证 GPU 驱动程序是否已安装且可分区:

  1. 启动 Windows Admin Center 并确保已安装 GPU 扩展。

  2. 在顶部下拉菜单中选择群集管理器,并连接到群集。

  3. 设置菜单中,选择扩展>GPU

    GPU 页上的 GPU 选项卡显示了所有服务器以及每台服务器上安装的物理 GPU 的清单。

  4. 检查所有服务器的每个 GPU 的分配状态列。 分配状态列包含以下状态之一:

    • 已准备好进行 DDA 分配。 指示 GPU 可以进行 DDA 分配。 不能将它用于 GPU 分区。

    • 已分区。 指示 GPU 可分区。

    • 半虚拟化。 指示 GPU 已安装分区驱动程序功能,但服务器上未启用 SR-IOV。

    • 不可分配。 指示 GPU 不可分配,因为它是较旧的 PCI 样式设备或交换机端口。

      “GPU”选项卡的屏幕截图,其中显示了服务器及其已安装的 GPU 设备的清单。

  5. 仅当群集中所有服务器中的 GPU 的分配状态列显示已分区时,才能继续执行 GPU 分区工作流。

配置 GPU 分区计数

每个可分区 GPU 附带一个由其 OEM 预定义的有效分区计数集。 无法定义 GPU 的分区数。 但是,可以将分区计数配置为受支持集内的任何有效计数。

按照以下步骤通过 Windows Admin Center 配置分区计数:

  1. 选择 GPU 分区选项卡以配置分区计数。 还可以使用此选项卡将分区分配到 VM,以及从 VM 中取消分配分区。

    注意

    如果群集中没有可用的可分区 GPU,或者未安装正确的 GPU 分区驱动程序,则“GPU 分区”选项卡将显示以下消息:

    未找到可分区的 GPU。 请检查你的 GPU 是否安装了正确的 GPU-P 驱动程序以继续操作。

  2. 选择一个 GPU 或 GPU 分区,以在页面底部部分的选定项详细信息下显示其详细信息。 例如,如果选择某个 GPU,则会显示 GPU 名称、GPU ID、可用编码器和解码器、可用 VRAM、有效分区计数以及当前分区计数。 如果选择某个 GPU 分区,则会显示分区 ID、VM ID、实例路径、分区 VRAM、分区编码器和分区解码器。

    “GPU 分区”选项卡的屏幕截图,其中显示了服务器及其已安装的 GPU 设备的清单。页面底部部分显示了所选资源的详细信息。

  3. 选择配置分区计数

    此时会显示配置 GPU 上的分区计数页。 对于每个服务器,此页会显示安装在服务器上的 GPU 设备。

  4. 选择一组同构 GPU。 同构 GPU 是指大小、制造商、型号和分区数相同的 GPU。 默认情况下,Windows Admin Center 会在检测到一组同构 GPU 时自动选择这些 GPU,如以下屏幕截图所示:

    “配置 GPU 上的分区计数”的屏幕截图,其中显示了可配置分区计数的 GPU 的清单。

    根据所做选择,你可能会看到警告或错误:

    • 警告。 如果你从一组同构 GPU 中取消选择一个或多个 GPU,Windows Admin Center 会发出警告,但不会阻止你继续操作。 警告文本会指出你未选择所有 GPU,而这可能会导致不同的分区计数,因此不建议这样做。

      未选择同构集中的所有 GPU 时显示的警告的屏幕截图。

    • 警告。 如果所有服务器中的所有 GPU 的配置不都相同,Windows Admin Center 会发出警告。 必须手动选择具有相同配置的 GPU 才能继续操作。

      GPU 的配置不同时显示的警告的屏幕截图。

    • 错误。 如果你选择具有不同配置的 GPU,Windows Admin Center 将显示错误,并且不允许你继续操作。

      选择具有不同配置的 GPU 时显示的错误的屏幕截图。

    • 错误。 如果你选择已分配到 VM 的 GPU 分区,Windows Admin Center 将显示错误,并且不允许你继续操作。 必须先从该 VM 中取消分配该分区才能继续操作。 请参阅从 VM 中取消分配分区

      选择已分配到 VM 的分区时显示的错误的屏幕截图。

  5. 选择一组同构 GPU 后,从分区数下拉列表中选择分区计数。 此列表会自动填充 GPU 制造商配置的分区计数。 列表中显示的计数因你选择的 GPU 类型而异。

    选择不同的分区计数后,下拉列表下方会显示一个工具提示,其中动态显示了每个分区获得的 VRAM 大小。 例如,如果 GPU 中 16 个分区的 VRAM 总共为 16 GB,则将分区计数从 16 更改为 8 会为每个分区分配 1.85 GB 的 VRAM。

    选择其他分区计数时显示的工具提示的屏幕截图。

  6. 选择配置分区计数

    配置分区计数后,Windows Admin Center 会通知你分区计数已成功配置,并再次显示 GPU 分区选项卡。 可以在分区计数列下查看 GPU 分区的新分区计数。

将 GPU 分区分配到 VM

在将分区分配到 VM 之前保存工作负载。

注意

目前只能将单个 GPU 分区分配到 VM。 VM 和 GPU 分区需要位于同一台主机上。 建议提前规划,并根据工作负载性能要求确定 GPU 分区大小。

在分配分区之前必须保存工作负载。 如果 VM 当前已打开或正在运行,Windows Admin Center 会自动将其关闭,分配分区,然后自动将其打开。

  1. GPU 分区选项卡上,选择 + 分配分区

    显示“GPU 分区”选项卡的屏幕截图,其中突出显示了“分配分区”选项。

    此时会显示将 GPU 分区分配到 VM 页。

  2. 选择服务器列表中,选择 VM 所在的服务器。 此列表显示群集中的所有服务器。

  3. 搜索要将 GPU 分区分配到的 VM 并将其选中。 该列表会自动填充位于步骤 2 中选择的服务器上的 VM。

    • 如果已将 GPU 分区分配到某个 VM,则该 VM 将灰显。

    • 通过选中全选复选框,一次性选择所有 VM。

  4. 选择可用的 VRAM 选项。 此字段中的值必须与配置的分区计数大小匹配。

  5. (可选但建议的步骤)如果你希望 VM 高度可用并在其主机服务器出现故障时进行故障转移,请选中配置强制关闭脱机操作复选框。

  6. 选择分配分区。 这会将所选 VRAM 大小的分区分配到所选主机服务器上的所选 VM。

    显示“将 GPU 分区分配到 VM”页的屏幕截图。

    分配分区后,Windows Admin Center 将通知分区已成功分配,并再次显示 GPU 分区选项卡。 在 GPU 分区选项卡上,VM 显示在它安装所在的服务器中的 GPU 分区行上。

从 VM 中取消分配分区

如果你不再需要使用某个 GPU 分区来运行工作负载,可以从 VM 中取消分配该分区。 取消分配分区会释放 GPU 分区资源,然后可将该资源重新分配给另一个 VM。

在取消分配分区之前必须保存工作负载。

如果 VM 当前处于打开状态或正在运行,则 Windows Admin Center 会先自动将其关闭,取消分配分区,然后自动将其打开。

按照以下步骤从 VM 中取消分配分区:

  1. GPU 分区选项卡上,选择要取消分配的 GPU 分区。

  2. 选择 - 取消分配分区

    显示“GPU 分区”选项卡的屏幕截图,其中突出显示了“取消分配分区”选项。

    此时会显示从 VM 中取消分配 GPU 分区页。

  3. 选择服务器列表中,选择要从中取消分配 GPU 分区的服务器。

  4. 选择要从中取消分配分区的虚拟机列表中,搜索或选择要从中取消分配分区的 VM。

  5. 选择取消分配分区

    显示“从 VM 中取消分配 GPU 分区”页的屏幕截图。

    取消分配分区后,Windows Admin Center 将通知分区已成功取消分配,并再次显示 GPU 分区选项卡。 在 GPU 分区选项卡上,已从中取消分配分区的 VM 不再显示在 GPU 分区行上。