9.18.9. 配置虚拟 GPU
使用 NVIDIA GPU Operator 创建虚拟 GPU (vGPU),并将其分配给 OpenShift Virtualization 中的虚拟机(VM)。
9.18.9.1. 关于在 OpenShift Virtualization 中使用虚拟 GPU 复制链接链接已复制到粘贴板!
您可以使用支持的 GPU 卡为虚拟机创建 vGPU。您可以使用 NVIDIA GPU Operator 管理集群节点上这些 vGPU 的生命周期并创建。您必须将这些设备添加到 HyperConverged 自定义资源(CR)中,以便 OpenShift Virtualization 可以发现并提供给虚拟机。
有关功能和支持详情,请参考您的硬件供应商文档。
- 介质设备
- 划分为一个或多个虚拟设备的物理设备。vGPU 是一个介质设备(mdev)类型,物理 GPU 的性能会被划分到各个虚拟设备中。您可以将介质设备分配给一个或多个虚拟机(VM),但客户机数量必须与您的 GPU 兼容。有些 GPU 不支持多个虚拟机。
9.18.9.1.1. 添加内核参数以启用 IOMMU 驱动程序 复制链接链接已复制到粘贴板!
在配置介质设备前,您必须启用输入输出内存管理单元 (IOMMU) 驱动程序。要在内核中启用 IOMMU 驱动程序,请创建 MachineConfig 对象并添加内核参数。
先决条件
- 有集群管理员权限。
- 您的 CPU 硬件是 Intel 或 AMD。
- 您在 BIOS 中为直接 I/O 扩展或 AMD IOMMU 启用 Intel 虚拟化技术。
-
已安装 OpenShift CLI(
oc)。
流程
创建用于标识内核参数的
MachineConfig对象。以下示例显示了 Intel CPU 的内核参数。apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker name: 100-worker-iommu spec: config: ignition: version: 3.2.0 kernelArguments: - intel_iommu=on # ...-
metadata.labels.machineconfiguration.openshift.io/role指定新内核参数仅应用到 worker 节点。 -
metadata.name指定该内核参数(100)在机器配置及其目的中的排名。如果您有 AMD CPU,请将内核参数指定为amd_iommu=on。 -
spec.kernelArguments将内核参数指定为 Intel CPU 的intel_iommu。
-
创建新的
MachineConfig对象:$ oc create -f 100-worker-kernel-arg-iommu.yaml
验证
输入以下命令并查看输出来验证新的
MachineConfig对象是否已添加:$ oc get MachineConfig输出示例:
NAME IGNITIONVERSION AGE 00-master 3.5.0 164m 00-worker 3.5.0 164m 01-master-container-runtime 3.5.0 164m 01-master-kubelet 3.5.0 164m 01-worker-container-runtime 3.5.0 164m 01-worker-kubelet 3.5.0 164m 100-master-chrony-configuration 3.5.0 169m 100-master-set-core-user-password 3.5.0 169m 100-worker-chrony-configuration 3.5.0 169m 100-worker-iommu 3.5.0 14s输入以下命令验证 IOMMU 是否在操作系统(OS)级别启用:
$ dmesg | grep -i iommu如果启用了 IOMMU,则会显示输出,如下例所示:
输出示例:
Intel: [ 0.000000] DMAR: Intel(R) IOMMU Driver AMD: [ 0.000000] AMD-Vi: IOMMU Initialized