如果 vSphere IaaS control plane 环境中的 ESXi 主机具有一个或多个 NVIDIA GRID GPU 图形设备,则可以将虚拟机配置为使用 NVIDIA GRID 虚拟 GPU (vGPU) 技术。您还可以在 ESXi 主机上配置其他 PCI 设备,使其可用于直通模式下的虚拟机。

vSphere IaaS control plane 中部署具有 vGPU 的虚拟机

NVIDIA GRID GPU 图形设备旨在优化复杂的图形操作,使这些操作能够以高性能运行且不会出现 CPU 过载。NVIDIA GRID vGPU 在多个虚拟机中共享一个物理 GPU 作为单独的启用 vGPU 的直通设备,从而提供无与伦比的图形性能、成本效益和可扩展性。

注意事项

使用 NVIDIA vGPU 时,需要考虑以下注意事项:
  • 三区域 主管 不支持具有 vGPU 的虚拟机。
  • ESXi 主机进入维护模式时,具有由虚拟机服务管理的 vGPU 设备的虚拟机将自动关闭电源。这可能会暂时影响虚拟机中运行的工作负载。主机处于维护模式后,虚拟机将自动打开电源。
  • DRS 在集群的主机之间以广域优先的方式分发 vGPU 虚拟机。有关详细信息,请参见《vSphere 资源管理》指南中的 DRS 放置 vGPU 虚拟机

要求

要配置 NVIDIA vGPU,请满足以下要求:

  • 确认 ESXi《VMware 兼容性指南》的支持之列,并与供应商联系,确认主机满足电源要求和配置要求。
  • 在至少一个处于直接共享模式的设备上配置 ESXi 主机图形设置。请参见《vSphere 资源管理》文档中的配置主机图形
  • 用于具有 vGPU 设备的虚拟机的内容库必须包含引导模式设置为 EFI 的映像,例如 CentOS。
  • 安装 NVIDIA vGPU 软件。NVIDIA 提供了包含以下组件的 vGPU 软件包。

    有关详细信息,请参见相应的 NVIDIA 虚拟 GPU 软件文档。

使用 vSphere Client 将 vGPU 设备添加到虚拟机类

创建或编辑现有虚拟机类,以添加 NVIDIA GRID 虚拟 GPU (vGPU)。

前提条件

所需特权:
  • 命名空间.修改集群范围的配置
  • 命名空间.修改命名空间配置
  • 虚拟机类.管理虚拟机类

过程

  1. 创建或编辑现有虚拟机类。
    选项 操作
    创建新虚拟机类
    1. vSphere Client 主菜单中,选择工作负载管理
    2. 单击服务选项卡,然后单击虚拟机服务窗格上的管理
    3. VM 服务页面上,单击VM 类,然后单击创建 VM 类
    4. 按照提示操作。
    编辑虚拟机类
    1. vSphere Client 主菜单中,选择工作负载管理
    2. 单击服务选项卡,然后单击虚拟机服务窗格上的管理
    3. VM 服务页面上,单击VM 类
    4. 在现有虚拟机类窗格中,单击管理,然后单击编辑
    5. 按照提示操作。
  2. 配置页面上,单击虚拟硬件选项卡,单击添加新设备,然后选择 PCI 设备
    “添加新设备”菜单中的“PCI 设备”选项
  3. 设备选择页面上的可用设备列表中选择“NVIDIA GRID vGPU”,然后单击选择
    该设备将显示在“虚拟硬件”页面上。
  4. 单击高级参数选项卡,然后使用以下属性和值设置参数。
    选项 描述
    参数
    pciPassthru0.cfg.enable_uvm 1
    pciPassthru1.cfg.enable_uvm 1
    为高级参数添加属性和值
  5. 查看配置,然后单击完成

结果

虚拟机类窗格上的 PCI 设备标记表示该虚拟机类已启用 vGPU。

虚拟机类窗格上的“PCI 设备”标记

使用数据中心 CLI 将 vGPU 设备添加到虚拟机类

除了 vSphere Client 之外,您还可以使用数据中心 CLI (DCLI) 命令添加 vGPU 和高级配置。

有关 DCLI 命令的详细信息,请参见使用数据中心 CLI 创建和管理虚拟机类

过程

  1. 使用 root 用户帐户登录到 vCenter Server,然后键入 dcli +i 以在交互模式下使用 DCLI。
  2. 运行以下命令以创建虚拟机类。
    在以下示例中, my-class 虚拟机类包括两个 CPU、2048 MB 内存以及一个具有两个示例 vGPU 配置文件( mockup-vmiop-8cmockup-vmiop)的 VirtualMachineConfigSpec。extraConfig 字段 pciPassthru0.cfg.enable_uvmpciPassthru1.cfg.enable_uvm 设置为 1。
    dcli +i +show-unreleased com vmware vcenter namespacemanagement virtualmachineclasses create --id my-class --cpu-count 2 --memory-mb 2048 --config-spec '{"_typeName":"VirtualMachineConfigSpec","deviceChange":[{"_typeName":"VirtualDeviceConfigSpec","operation":"add","device":{"_typeName":"VirtualPCIPassthrough","key":20,"backing":{"_typeName":"VirtualPCIPassthroughVmiopBackingInfo","vgpu":"mockup-vmiop-8c"}}},{"_typeName":"VirtualDeviceConfigSpec","operation":"add","device":{"_typeName":"VirtualPCIPassthrough","key":20,"backing":{"_typeName":"VirtualPCIPassthroughVmiopBackingInfo","vgpu":"mockup-vmiop"}}}],"extraConfig":[{"_typeName":"OptionValue","key":"pciPassthru0.cfg.enable_uvm","value":{"_typeName":"string","_value":"1"}},{"_typeName":"OptionValue","key":"pciPassthru1.cfg.enable_uvm","value":{"_typeName":"string","_value":"1"}}]}'
    

vSphere IaaS control plane 中的虚拟机中安装 NVIDIA 客户机驱动程序

如果虚拟机包含为 vGPU 配置的 PCI 设备,则在 vSphere IaaS control plane 环境中创建并引导虚拟机后,请安装 NVIDIA vGPU 图形驱动程序以完全启用 GPU 操作。

前提条件

  • 部署具有 vGPU 的虚拟机。确保虚拟机 YAML 文件引用具有 vGPU 定义的虚拟机类。请参见在 vSphere IaaS control plane 中部署虚拟机
  • 确认已从 NVIDIA 下载站点下载 vGPU 软件包,解压缩软件包,并准备好客户机驱动器组件。有关信息,请参见相应的 NVIDIA 虚拟 GPU 软件文档。
    注: 驱动程序组件的版本必须与 vSphere 管理员在 ESXi 主机上安装的 vGPU Manager 版本相对应。

过程

  1. 将 NVIDIA vGPU 软件 Linux 驱动程序包(例如 NVIDIA-Linux-x86_64-version-grid.run)复制到客户机虚拟机。
  2. 尝试运行驱动程序安装程序之前,请终止所有应用程序。
  3. 启动 NVIDIA vGPU 驱动程序安装程序。
    sudo ./NVIDIA-Linux-x86_64-version-grid.run
  4. 接受 NVIDIA 软件许可协议,然后选择,自动更新 X 配置设置。
  5. 确认已安装驱动程序。
    例如,
    ~$ nvidia-smi
    Wed May 19 22:15:04 2021
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 460.63       Driver Version: 460.63       CUDA Version: 11.2     |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |                               |                      |               MIG M. |
    |===============================+======================+======================|
    |   0  GRID V100-4Q        On   | 00000000:02:00.0 Off |                  N/A|
    | N/AN/AP0    N/A/  N/A|    304MiB /  4096MiB |      0%      Default |
    |                               |                      |                  N/A|
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                                  |
    |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
    |        ID   ID                                                   Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+

vSphere IaaS control plane 中部署具有 PCI 设备的虚拟机

除了 vGPU 之外,您还可以在 ESXi 主机上配置其他 PCI 设备,使其可在直通模式下供虚拟机使用。

vSphere IaaS control plane 支持动态 DirectPath I/O 设备。使用动态 DirectPath I/O,虚拟机可以直接访问连接到主机的物理 PCI 和 PCIe 设备。您可以使用动态 DirectPath I/O 将多个 PCI 直通设备分配给一个虚拟机。每个直通设备都可以通过其 PCI 供应商和设备标识符来指定。
注: 为 PCI 直通设备配置动态 DirectPath I/O 时,请将 PCI 设备连接到主机,并将其标记为可用于直通。请参见 《vSphere 网络连接》文档中的 为主机上的网络设备启用直通功能