将 GPU 与群集 VM 一同使用

适用于:Azure 本地版本 23H2 和 22H2

注意

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

你可以在群集中包含 GPU,以便为在群集 VM 中运行的工作负载提供 GPU 加速。 GPU 加速可通过离散设备分配 (DDA) 或通过 GPU 分区来提供,使用 DDA 技术可将一个或多个物理 GPU 专门分配给某个 VM。 群集 VM 可以利用 GPU 加速和群集功能(例如,通过故障转移实现高可用性)。 目前不支持虚拟机 (VM) 的实时迁移,但如果出现故障,可以自动重启 VM 并将其放置在 GPU 资源可用的位置。

在本文中,您将了解如何将图形处理单元 (GPU) 与群集 VM 结合使用,以使用离散设备分配为工作负载提供 GPU 加速。 本文将指导你准备群集、将 GPU 分配到群集 VM 以及使用 Windows Admin Center 和 PowerShell 对该 VM 进行故障转移。

先决条件

在开始将 GPU 与群集 VM 结合使用之前,需要考虑几个要求和事项:

  • 需要运行 Azure Stack HCI 版本 22H2 或更高版本的 Azure Stack HCI 群集。
  • 需要运行 Windows Server 2025 或更高版本的 Windows Server 故障转移群集。
  • 您必须在集群中的所有服务器上安装相同品牌和型号的 GPU。

  • 查看并按照 GPU 制造商的说明在群集中的每台服务器上安装必要的驱动程序和软件。

  • 可能还需要配置任何 GPU 许可要求,具体取决于硬件供应商。

  • 需要一台安装了 Windows Admin Center 的计算机。 此计算机可以是群集节点之一。

  • 创建要向其分配 GPU 的 VM。 根据使用离散设备分配部署图形设备中的说明,设置其缓存行为、停止操作和内存映射 I/O (MMIO) 属性,为 DDA 准备该 VM。

  • 通过在每台服务器上安装安全缓解驱动程序、禁用 GPU 并将其从主机上卸下,在每台服务器中准备 GPU。 若要了解有关此过程的详细信息,请参阅使用离散设备分配部署图形设备

注意

系统必须是受支持的 Azure Stack HCI 解决方案并支持 GPU。 若要浏览选项,请访问 Azure Stack HCI 目录

准备群集

满足先决条件后,可以准备群集以将 GPU 与群集 VM 结合使用。

准备群集涉及创建一个资源池,其中包含可用于分配给 VM 的 GPU。 群集使用此池来确定分配给 GPU 资源池的任何已启动或移动的 VM 的 VM 放置。

使用 Windows Admin Center,执行以下步骤准备群集,以将 GPU 与群集 VM 结合使用。

若要准备群集并将 VM 分配到 GPU 资源池,请执行以下操作:

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

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

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

  4. “工具”菜单的“扩展”下,选择“GPU”以打开该工具。

    Windows Admin Center 中 GPU 工具的屏幕截图。

  5. 在工具的主页上,选择“GPU 池”选项卡,然后选择“创建 GPU 池”

    Windows Admin Center 中“创建 GPU 池”页面的屏幕截图。

  6. “新建 GPU 池”页面上,指定以下内容,然后选择“保存”

    1. 服务器名称
    2. GPU 池名称
    3. 要添加到池的 GPU

    Windows Admin Center 中用于指定服务器、池名称和 GPU 的“新建 GPU 池”页面的屏幕截图。

    该过程完成后,你将收到一条成功提示,显示新 GPU 池的名称和主机服务器。

将 VM 分配到 GPU 资源池

现在可以将 VM 分配到 GPU 资源池。 可以将一个或多个 VM 分配到群集 GPU 资源池,并从群集 GPU 资源池中删除 VM。

执行以下步骤使用 Windows Admin Center 将现有 VM 分配到 GPU 资源池。

注意

还需要在 VM 内部安装 GPU 制造商提供的驱动程序,使 VM 中的应用能够利用分配给它们的 GPU。

  1. 在“将 VM 分配到 GPU 池”页面上,指定以下项,然后选择“分配”

    1. 服务器名称
    2. GPU 池名称
    3. 要从 GPU 池中将 GPU 分配到的目标虚拟机

    还可以为内存映射 IO (MMIO) 空间定义高级设置值,以确定单个 GPU 的资源需求。

    该屏幕截图显示了 Windows Admin Center 中的“将 VM 分配给 GPU 池”页,你可在其中将 VM 分配给 GPU 池中的 GPU。

    该过程完成后,你将收到一条确认提示,显示你已成功从 GPU 资源池将 GPU 分配到 VM,该提示显示在“分配的 VM”下。

    成功提示的屏幕截图,其中显示了分配给 VM 的 GPU 以及显示在“已分配 VM”下的 VM。

若要取消从 GPU 资源池分配 VM,请执行以下操作:

  1. “GPU 池”选项卡上,选择要取消分配的 GPU,然后选择“取消分配 VM”

  2. “取消从 GPU 池分配 VM”页面上的“虚拟机”列表框中,指定 VM 的名称,然后选择“取消分配”

    该屏幕截图显示了“取消从 GPU 池分配 VM”页,其中显示了要取消分配的 VM。

    该过程完成后,你会收到一条成功提示,指出已从 GPU 池中取消分配 VM,并且在“分配状态”下,GPU 会显示“可用(未分配)”

启动 VM 时,群集可确保将 VM 放置在具有此群集范围池中可用 GPU 资源的服务器上。 该群集还会通过 DDA 将 GPU 分配到 VM,这样就可以从 VM 内部的工作负载访问 GPU。

故障转移分配有 GPU 的 VM

若要测试群集能否使 GPU 工作负载保持可用,请在使用分配的 GPU 运行 VM 的服务器上执行排空操作。 若要清空服务器,请按照故障转移群集维护过程中的说明进行操作。 只要另一台服务器在你创建的池中具有足够的可用 GPU 资源,群集就会在群集中的另一台服务器上重启 VM。

若要测试群集能否使 GPU 工作负载保持可用,请在使用分配的 GPU 运行 VM 的服务器上执行排空操作。 若要清空服务器,请按照故障转移群集维护过程中的说明进行操作。 只要另一台服务器在你创建的池中具有足够的可用 GPU 资源,群集就会在群集中的另一台服务器上重启 VM。

有关将 GPU 与群集 VM 结合使用的详细信息,请参阅:

有关将 GPU 与 VM 和 GPU 分区配合使用的详细信息,请参阅: