在群集 VM 中将 GPU 与离散设备分配配合使用

可以在群集中包含图形处理单元(GPU),以便为群集 VM 中运行的工作负荷提供 GPU 加速。 GPU 加速可通过离散设备分配 (DDA) 或通过 GPU 分区来提供,使用 DDA 技术可将一个或多个物理 GPU 专门分配给某个 VM。 群集 VM 可以利用 GPU 加速和群集功能(例如,通过故障转移实现高可用性)。

本文介绍如何将 GPU 与群集 VM 配合使用,以使用离散设备分配为工作负荷提供 GPU 加速。 本文将指导你准备群集、将 GPU 分配到群集 VM 以及使用 Windows Admin Center 和 PowerShell 对该 VM 进行故障转移。

小窍门

目前不支持使用 DDA 提供的 GPU 实时迁移虚拟机(VM),但如果出现故障,VM 可以自动重启,并放置在 GPU 资源可用的位置。

先决条件

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

  • 需要 Azure Local 2311.2 及更高版本。

  • 查看如何在 Azure Local 2311.2 及更高版本中管理 GPU,请参阅 “为 Azure 本地准备 GPU”。

  • 需要运行 Windows Server 2025 或更高版本的 Windows Server 故障转移群集。
  • 必须熟悉故障转移群集和 Hyper-V。

  • 您必须在集群中的所有服务器上安装相同品牌和型号的 GPU。

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

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

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

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

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

注意

系统必须支持具有 GPU 支持的 Azure 本地解决方案。 若要浏览选项,请访问 Azure 本地目录

准备群集

先决条件完成后,可以准备群集以将 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 池”页的屏幕截图,其中从 GPU 池将 VM 分配到 GPU。

    完成该过程后,您将收到一条确认提示,显示您已成功将 GPU 从 GPU 资源池分配给 VM,该 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 工作负载的能力,请在运行 VM 的服务器上使用分配的 GPU 执行清空操作。 在服务器上执行清空作将导致群集在群集中的另一台服务器上重启 VM,前提是另一台服务器在创建的池中有足够的可用资源。

若要清空服务器,请按照故障转移群集维护程序的说明进行操作。 只要另一台服务器在你创建的池中具有足够的可用 GPU 资源,群集就会在群集中的另一台服务器上重启 VM。

若要测试集群故障转移 GPU 工作负载的能力,请在运行 VM 的服务器上使用分配的 GPU 执行清空操作。 在服务器上执行清空作将导致群集在群集中的另一台服务器上重启 VM,前提是另一台服务器在创建的池中有足够的可用资源。

若要清空服务器,请按照故障转移群集维护程序的说明进行操作。 只要另一台服务器在你创建的池中具有足够的可用 GPU 资源,群集就会在群集中的另一台服务器上重启 VM。

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

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