准备主机以处理图形

本部分内容提供有关如何为受支持的图形虚拟化技术准备 XenServer 的分步说明。服务项目包括 NVIDIA GRID vGPU、AMD MxGPU 以及 Intel GVT-d 和 GVT-g。

NVIDIA GRID vGPU

NVIDIA GRID vGPU 允许多个虚拟机 (VM) 同时直接访问单个物理 GPU。此 vGPU 使用在非虚拟化操作系统中部署的 NVIDIA 图形驱动程序。GRID 物理 GPU 可以支持多个虚拟 GPU 设备 (vGPU)。物理 GPU 必须受在 XenServer 控制域 (dom0) 中运行的 NVIDIA 的 GRID Virtual GPU Manager 控制,才能提供此支持。可以直接将 vGPU 分配给 VM。

VM 使用 GRID 虚拟 GPU 的方式与虚拟机管理程序直通的物理 GPU 类似。对于性能关键型快速路径,在 VM 中加载的 NVIDIA 驱动程序能够直接访问 GPU。该驱动程序还向 GRID Virtual GPU Manager 提供半虚拟化的界面。

NVIDIA GRID 与 Citrix Virtual Apps and Desktops 的 HDX 3D Pro 功能兼容。有关详细信息,请参阅 HDX 3D Pro

许可注意事项

NVIDIA vGPU 适用于 XenServer Enterprise Edition 客户或通过其 Citrix Virtual Apps and Desktops 授权访问 XenServer 的客户。要了解有关 XenServer 版本的详细信息,请单击此处访问 Citrix Web 站点。有关详细信息,请参阅许可

可能需要 NVIDIA 订阅或许可证,具体取决于使用的 NVIDIA 图形卡。

有关许可使用 NVIDIA 卡的信息,请参阅 NVIDIA Web 站点

可用的 NVIDIA GRID vGPU 类型

NVIDIA GRID 卡包含多个图形处理器 (GPU)。例如,TESLA M10 卡包含四个 GM107GL GPU,TESLA M60 卡包含两个 GM204GL GPU。每个物理 GPU 可以托管多个不同类型的虚拟 GPU (vGPU)。vGPU 类型具有固定数量的帧缓冲区、受支持的显示头数量和最大分辨率,并且适用于不同种类的工作负载。

有关受支持的最新 NVIDIA 卡的列表,请参阅硬件兼容性列表NVIDIA 产品信息

注意:

同时托管在物理 GPU 上的 vGPU 的类型必须全部相同。但是,对同一个卡上的物理 GPU 没有相应的限制。此限制是自动的,可能会导致出现意外的容量规划问题。

例如,TESLA M60 卡有两个物理 GPU,可以支持 11 种 vGPU 类型:

  • GRID M60-1A
  • GRID M60-2A
  • GRID M60-4A
  • GRID M60-8A
  • GRID M60-0B
  • GRID M60-1B
  • GRID M60-0Q
  • GRID M60-1Q
  • GRID M60-2Q
  • GRID M60-4Q
  • GRID M60-8Q

在同时启动 vGPU 类型为 M60-1A 的 VM 和 vGPU 类型为 M60-2A 的 VM 的情况下:

  • 一个物理 GPU 仅支持 M60-1A 实例
  • 另一个物理 GPU 仅支持 M60-2A 实例

无法在该单个卡上启动任何 M60-4A 实例。

NVIDIA GRID 系统要求

  • NVIDIA GRID 卡:

  • 可能需要 NVIDIA 订阅或许可证,具体取决于使用的 NVIDIA 图形卡。有关详细信息,请参阅 NVIDIA 产品信息

  • XenServer Enterprise Edition(或通过 Citrix Virtual Apps and Desktops 授权访问 XenServer)

  • 能够托管 XenServer 和 NVIDIA GRID 卡的服务器。

  • 适用于 XenServer 的 NVIDIA GRID vGPU 软件包,由适用于 XenServer 的 GRID Virtual GPU Manager 和 NVIDIA 驱动程序组成。

  • 要在运行 NVIDIA vGPU 的 VM 中运行 Citrix Virtual Desktops,还需要:Citrix Virtual Desktops 7.6 或更高版本,完整安装。

    注意:

    请参阅可以从 NVIDIA Web 站点 获取的《NVIDIA GRID 虚拟 GPU 用户指南》(参考编号:DU-06920 001)。在 NVIDIA 中注册以访问这些组件。

vGPU XenMotion

XenServer 允许使用 XenMotion、Storage XenMotion,并且能够挂起和恢复启用了 NVIDIA GRID vGPU 的 VM。

要使用 vGPU XenMotion、Storage XenMotion 或挂起功能,需满足以下要求:

  • NVIDIA GRID 卡 Maxwell 系列或更高版本。

  • 适用于启用了 XenMotion 的 XenServer 的 NVIDIA GRID Virtual GPU Manager。有关详细信息,请参阅 NVIDIA 文档。

  • 安装了启用了 NVIDIA XenMotion 的 vGPU 驱动程序的 Windows VM。

vGPU XenMotion 允许在池内部使用 XenMotion,在两个池之间使用 XenMotion、Storage XenMotion 以及启用了 vGPU 的 VM 的挂起/恢复功能。

准备概述

  1. 安装 XenServer

  2. 安装 NVIDIA GRID Virtual GPU Manager,适用于 XenServer

  3. 重新启动 XenServer 主机。

安装,位置为 XenServer

XenServer 可以从XenServer下载页面下载。

安装以下对象:

  • XenServer 基础安装 ISO

  • XenCenter Windows 管理控制台

有关详细信息,请参阅安装

许可注意事项

vGPU 适用于 XenServer Enterprise Edition 客户或通过其 Citrix Virtual Apps and Desktops 授权访问 XenServer 的客户。要了解有关 XenServer 版本的详细信息,请单击此处访问 Citrix Web 站点。有关详细信息,请参阅许可

可能需要 NVIDIA 订阅或许可证,具体取决于使用的 NVIDIA 图形卡。有关详细信息,请参阅 NVIDIA 产品信息

有关许可使用 NVIDIA 卡的信息,请参阅 NVIDIA Web 站点

安装 NVIDIA GRID vGPU Manager,适用于 XenServer

安装可以从 NVIDIA 获取的 NVIDIA GRID vGPU 软件。NVIDIA GRID 软件由以下组件组成:

  • GRID vGPU Manager

    (例如:NVIDIA-vGPU-XenServer-7.2-367.64.x86_64.rpm)

  • Windows 显示驱动程序(Windows 显示驱动程序取决于 Windows 版本)

    (例如:369.71_grid_win10_server2016_64bit_international.exe)

GRID vGPU Manager 在 XenServer 控制域 (dom0) 中运行。该管理器以补充包或 RPM 文件的形式提供。有关安装的详细信息,请参阅 NVIDIA GRID vGPU 软件中包含的用户指南。

注意:

示例包括更新、RPM 名称和版本,并且这些示例在您的环境中各不相同。

更新可以通过以下方法之一进行安装:

  • 使用 XenCenter (工具> 安装更新> 从磁盘中选择更新或补充包
  • 使用 xe CLI 命令 xe-install-update

更新的名称为 NVIDIA-vGPU-PRODUCT_BRAND-7.2-367.64.x86_64.iso 或类似的名称。

注意:

如果要使用 RPM 文件安装 GRID vGPU Manager,请务必先将 RPM 文件复制到 dom0,然后再进行安装。

  1. 使用 rpm 命令安装软件包:

    [root@xenserver ~]# rpm -iv NVIDIA-vGPU-PRODUCT_BRAND-7.2-367.64.x86_64.rpm
    Preparing packages for installation…
    NVIDIA-vGPU-PRODUCT_BRAND-7.2-367.64
    [root@xenserver ~]
    
  2. 重新启动 XenServer 主机:

    [root@xenserver ~]# shutdown -r now
    Broadcast message from root (pts/1) Mon May 09 13:05:31 2016):
    [root@xenserver ~]
    
  3. 重新启动 XenServer 主机后,请通过检查 NVIDIA 内核驱动程序来验证是否已正确安装并加载 GRID 软件包:

    [root@xenserver ~]#lsmod |grep nvidia
    nvidia            8152994 0
    i2c_core            20294 2 nvidia,i2c_i801
    [root@xenserver ~]#
    
  4. 确认 NVIDIA 内核驱动程序能够成功与您的主机中的 GRID 物理 GPU 通信。运行 nvidia-smi 命令以在您的平台中生成类似于以下内容的 GPU 列表:

    [root@xenserver ~]# nvidia-smi
    
    Thu Jan 26 13:48:50 2017
    +----------------------------------------------------------+|
    NVIDIA-SMI 367.64  Driver Version: 367.64                  |
    -------------------------------+----------------------+
     GPU Name    Persistence-M| Bus-Id   Disp.A | Volatile Uncorr. ECC|
    Fan Temp  Perf  Pwr:Usage/Cap| Memory-Usage | GPU-Util  Compute M.|
    ===============================+======================+======================|
    |  0 Tesla M60       On | 0000:05:00.0    Off|   Off |
    | N/A  33C  P8    24W / 150W |   7249MiB /  8191MiB |      0%      Default  |
    +-------------------------------+----------------------+----------------------+
    |  1 Tesla M60       On | 0000:09:00.0    Off |  Off |
    | N/A  36C  P8    24W / 150W |   7249MiB /  8191MiB |      0%      Default  |
    +-------------------------------+----------------------+----------------------+
    |  2 Tesla M60       On | 0000:85:00.0    Off |  Off |
    | N/A  36C  P8    23W / 150W |   19MiB /  8191MiB |        0%      Default  |
    +-------------------------------+----------------------+----------------------+
    |  3 Tesla M60       On | 0000:89:00.0    Off |  Off |
    | N/A  37C    P8    23W / 150W |     14MiB /  8191MiB |    0%      Default  |
    +-------------------------------+----------------------+----------------------+
    +-----------------------------------------------------------------------------+
    | Processes:                 GPU Memory |
    | GPU    PID  Type  Process name    Usage   |
    |=============================================================================|
    | No running compute processes found |
    +-----------------------------------------------------------------------------+
    [root@xenserver ~]#
    

    注意:

    在 RAM 大于 768 GB 的 XenServer 主机中使用 NVIDIA vGPU 时,请将参数 iommu=dom0-passthrough 添加到 Xen 命令行:

    1. 在控制域 (Dom0) 中运行以下命令:

      /opt/xensource/libexec/xen-cmdline –-set-xen iommu=dom0-passthrough
      
    2. 重新启动主机。

AMD MxGPU

AMD MxGPU 允许多个虚拟机 (VM) 使用单根 I/O 虚拟化直接访问单个物理 GPU 的一部分。可以在来宾内部使用在非虚拟化操作系统中部署的相同 AMD 图形驱动程序。

VM 使用 MxGPU GPU 的方式与虚拟机管理程序直通的物理 GPU 相同。对于性能关键型快速路径,在 VM 中加载的 AMD 图形驱动程序能够直接访问 GPU。

有关在 XenServer 中使用 AMD MxGPU 的详细信息,请参阅 AMD 文档

许可注意事项

MxGPU 适用于 XenServer Enterprise Edition 客户或通过其 Citrix Virtual Apps and Desktops 授权访问 XenServer 的客户。要了解有关 XenServer 版本的详细信息,请单击此处访问 Citrix Web 站点。有关许可的详细信息,请参阅 Citrix 产品文档 Web 站点上的“XenServer Licensing 常见问题解答”。

可用的 AMD MxGPU vGPU 类型

AMD MxGPU 卡可以包含多个 GPU。例如,S7150 卡包含一个物理 GPU,S7150x2 卡包含两个 GPU。每个物理 GPU 可以托管多个不同类型的虚拟 GPU (vGPU)。vGPU 类型将物理 GPU 拆分为预定义数量的 vGPU。其中的每个 vGPU 都具有相等份额的帧缓冲区以及图形处理能力。不同的 vGPU 类型适用于不同类别的工作负载。将物理 GPU 拆分为几个更小的块的 vGPU 类型更适用于密集型工作负载。

注意:

同时托管在物理 GPU 上的 vGPU 的类型必须全部相同。但是,对同一个卡上的物理 GPU 没有相应的限制。此限制是自动的,可能会导致出现意外的容量规划问题。

AMD MxGPU 系统要求

  • AMD FirePro S7100 系列 GPU

  • XenServer Enterprise Edition(或通过 Citrix Virtual Desktops/Citrix Virtual Apps 授权访问 XenServer)

  • 能够托管 XenServer 和 AMD MxGPU 卡的服务器。可以在 AMD Web 站点上查找经过 AMD 验证的服务器列表。

  • 适用于 XenServer 的 AMD MxGPU 主机驱动程序。这些驱动程序可以从 AMD 下载站点获取。

  • AMD FirePro 来宾内部驱动程序,适用于 XenServer 上的 MxGPU。这些驱动程序可以从 AMD 下载站点获取。

  • 要在运行 AMD MxGPU 的 VM 中运行 Citrix Virtual Desktops,还需要:Citrix Virtual Desktops 7.13 或更高版本,完整安装。

  • 配置为支持 SR-IOV 的系统 BIOS 和配置为辅助适配器的 MxGPU

准备概述

  1. 安装 XenServer

  2. 安装 AMD MxGPU 主机驱动程序,适用于 XenServer

  3. 重新启动 XenServer 主机。

安装,位置为 XenServer

XenServer 可以从XenServer下载页面下载。

安装以下对象:

  • XenServer 7.6 基础安装 ISO

  • XenCenter 7.6 Windows 管理控制台

有关安装的详细信息,请参阅《XenServer 安装指南》。

安装 AMD MxGPU 主机驱动程序,适用于 XenServer

完成以下步骤以安装主机驱动程序。

  1. 可以使用 XenCenter 或使用 xe CLI 安装包含驱动程序的更新。

    • 要使用 XenCenter 进行安装,请转至工具 > 安装更新 > 从磁盘中选择更新或补充包

    • 要使用 xe CLI 进行安装,请将更新复制到主机并在更新所在的目录中运行以下命令:

       xe-install-supplemental-pack mxgpu-1.0.5.amd.iso
      
  2. 重新启动 XenServer 主机。

  3. 重新启动 XenServer 主机后,请验证是否已正确安装并加载 MxGPU 软件包:通过在 XenServer 主机控制台中运行以下命令检查是否已加载 gim 内核驱动程序:

    modinfo gim
    modprobe gim
    
  4. 确认 gim 内核驱动程序已成功创建 MxGPU 虚拟功能,这些功能将向来宾提供。运行以下命令:

    lspci | grep "FirePro S7150"
    

    此命令的输出将显示虚拟功能具有 S7150V 标识符。

  5. 在 XenCenter 中使用“GPU”选项卡确认 MxGPU 虚拟 GPU 类型是否已在系统中作为可用类型列出。

安装 AMD MxGPU 驱动程序后,直通选项对 GPU 不再可用。请改为使用 MxGPU.1 选项。

创建启用了 MxGPU 的 VM

请先安装 VM,然后再将 VM 配置为使用 MxGPU。确保 AMD MxGPU 支持 VM 操作系统。有关详细信息,请参阅来宾支持和限制

安装 VM 后,请按照创建启用了 vGPU 的 VM 中的说明进行操作,完成配置。

Intel GVT-d 和 GVT-g

XenServer 支持 Intel 虚拟 GPU (GVT-g),即一种不需要额外硬件的图形加速解决方案。它使用某些 Intel 处理器中嵌入的 Intel Iris Pro 功能,以及在 VM 内部安装的标准 Intel GPU 驱动程序。

Intel GVT-d 和 GVT-g 与 Citrix Virtual Apps and Desktops 的 HDX 3D Pro 功能兼容。有关详细信息,请参阅 HDX 3D Pro

注意:

由于处理器中嵌入了 Intel Iris Pro 图形功能,因此,CPU 密集型应用程序会导致电源从 GPU 转移。因此,您可能体验不到对纯 GPU 密集型工作负载所执行的完整图形加速功能。

Intel GVT-g 系统要求和配置

要使用 Intel GVT-g,您的 XenServer 主机必须具有以下硬件:

  • 具有 Iris Pro 图形的 CPU。必须在硬件兼容性列表中将此 CPU 作为图形支持的 CPU 列出
  • 配备了启用了图形的芯片组的主板。例如,适用于 Xeon E3 v4 CPU 的 C226,或适用于 Xeon E3 v5 CPU 的 C236。

注意:

在 Intel GPU 直通 (GVT-d) 与 Intel 虚拟 GPU (GVT-g) 之间切换时,请务必重新启动主机。

配置 Intel GVT-g 时,特定 XenServer 主机上支持的 Intel 虚拟 GPU 的数量取决于其 GPU 条大小。GPU 条大小在 BIOS 中称为“Aperture 大小”。Citrix 建议您将 Aperture 大小设置为 1024 MB,以支持每个主机最多配备七个虚拟 GPU。

如果将 Aperture 大小配置为 256 MB,则只有一个 VM 能够在主机上启动。将其设置为 512 MB 会导致只有三个 VM 在 XenServer 主机上启动。超过 1024 MB 的 Aperture 大小不受支持,并且增加在主机上启动的 VM 数量。

启用 Intel GPU 直通

XenServer 支持对使用 Intel 集成 GPU 设备的 Windows 7 和 Windows 8.1(32/64 位)使用 GPU 直通功能。有关支持的硬件的详细信息,请参阅硬件兼容性列表

在 Intel 服务器上使用 Intel GPU 时,XenServer 主机的控制域 (dom0) 将有权访问集成 GPU 设备。在此类情况下,GPU 可用于直通。要在 Intel 服务器上使用 Intel GPU 直通功能,请在将 GPU 传递到 VM 之前禁用 dom0 与 GPU 之间的连接。

要禁用此连接,请完成以下步骤:

  1. 资源窗格中,选择 XenServer 主机。

  2. 常规选项卡上,单击属性,然后单击左侧窗格中的 GPU

  3. 集成 GPU 直通部分中,选择此服务器将不使用集成 GPU

    集成 GPU 直通界面

    此步骤将禁用 dom0 与 Intel 集成 GPU 设备之间的连接。

  4. 单击确定

  5. 重新启动 XenServer 主机以使更改生效。

    Intel GPU 现在将在创建新 VM 过程中在“GPU 类型”列表中以及 VM 的属性选项卡中显示。

    注意:

    禁用 dom0 与 GPU 之间的连接后,XenServer 主机的外部控制台输出(例如 VGA、HDMI、DP)将不可用。

准备主机以处理图形