可以为实例配置多个 vGPU 配置文件,也可以在同一 Nova 计算节点中创建多个具有不同 vGPU 配置文件的实例。
对配置多个 vGPU 配置文件的支持有限,
vSphere 和
VMware Integrated OpenStack 存在以下限制:
- 您无法在 Nova 计算 CR 中将
profile_fb_size_kb
设置为大型整数,例如 2097152。 - 不能在同一 ESXi 上同时打开具有不同 vGPU 配置文件的多个虚拟机的电源。如果 ESXi 主机中只有一个显卡,则必须先关闭具有 vgpu-profileA 的虚拟机电源,然后再运行具有 vgpu-profileB 的虚拟机。
- 不能打开具有两个不同 vGPU 配置文件的实例的电源。
- 要打开具有两个相同 vGPU 配置文件的实例的电源,必须至少具有两个未使用的 GPU 显卡,并且这些显卡只能为特定的 vGPU 配置文件提供支持。例如,对于 NVIDIA Tesla T4 显卡,它只能创建具有两个
grid_t4_16q
配置文件的实例。不支持其他 vGPU 配置文件。 - 对于配置了一个图形 RAM 为 16-G 的显卡的 ESXi,它仅支持运行八个具有
grid_t4_2q
配置文件的实例,或四个具有grid_t4_4q
的实例。总图形 RAM 不能超过指定的值。 - VMware Integrated OpenStack 无法检测或指定可用于创建虚拟机的显卡。在某些情况下,您必须确保有一个显卡可用于具有的 vGPU 配置文件不同于正在运行的实例的引导实例。管理员可以使用 validate_instance_vgpu 和 list_vms_by_device 命令来获取可使用 ESXi 的设备的信息。要释放显卡,必须执行
shutt off instance from openstack
。 - 对于 nova-compute.conf 中的默认 GPU 配置文件设置(如
gpu_profile: grid_t4-2q
),可以引导兼具vmware:vgpu=1
和vmware:vgpu_profiles=grid_t4-2q
的实例。但是,建议不要在同一 Nova 计算节点内以两种方式引导实例。 - 不支持调整大小和迁移。
过程
- 对于列表支持的 GPU 配置文件,您可以在 Nova 计算节点内的特定 Nova 计算 Pod 中运行命令。
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Host Name | Profile Names | +--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 10.196.4.135 | [grid_t4-8q, grid_t4-8c, grid_t4-8a, grid_t4-4q, grid_t4-4c, grid_t4-4a, grid_t4-2q, grid_t4-2b4, grid_t4-2b, grid_t4-2a, grid_t4-1q, grid_t4-1b4, grid_t4-1b, grid_t4-1a, grid_t4-16q, grid_t4-16c, grid_t4-16a] | +--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
您也可以在 VMware Integrated OpenStack Manager 中运行命令。osctl exec -it <compute-pod-name> -- bash -c "export PYTHONWARNINGS=\"ignore:Unverified HTTPS request\" && nova-manage --config-file /tmp/share/nova-compute.conf --config-file /etc/nova/nova.conf --log-file /tmp/nova-manage.log graphic list_vgpus"
- 创建具有不同 GPU 配置文件的虚拟机,而不重新配置 Nova 计算。
确保一个 ESXi 主机中有两个显卡,或者有两个各安装了一个显卡的 ESXi。
- 按照NVIDIA GRID vGPU中所述配置 nova-compute.conf。
- 创建特定实例,并设置属性
vmware:vgpu_profiles
。openstack flavor create --public --disk 20 --ram 4096 --vcpus 2 --property "vmware:vgpu_profiles=grid_t4-4q" gpu_flavor_4q
- 从
gpu_flavor_4q
引导实例。openstack server create --flavor gpu_flavor_4q --image Photo3 --network net1 gpu_inst1
- 创建特定实例,在不同的配置文件中设置属性 vmware:vgpu_profiles。
openstack flavor create --public --disk 20 --ram 4096 --vcpus 2 --property "vmware:vgpu_profiles=grid_t4-8a" gpu_flavor_8a
- 从
gpu_flavor_8a
引导实例。openstack server create --flavor gpu_flavor_8a --image Photo3 --network net1 gpu_inst2
- 创建具有两个 GPU 配置文件的实例。
- 按照NVIDIA GRID vGPU中所述配置 nova-compute.conf。
- 创建特定实例,在两个 GPU 配置文件中设置属性
vmware:vgpu_profiles
。openstack flavor create --public --disk 20 --ram 4096 --vcpus 2 --property "vmware:vgpu_profiles=grid_t4-16q,grid_t4-16q" gpu_flavor_2_profiles
- 从
gpu_flavor_2_profiles
引导实例。openstack server create --flavor gpu_flavor_2_profiles --image Photo3 --network net1 gpu_inst3
- 关闭某些实例的电源以释放显卡空间。
如果没有未使用的显卡,要引导具有不同 GPU 配置文件的实例,则必须关闭某些实例的电源。
- 验证对不匹配的资源提供程序的修复。
如果看到以下日志,表示某些资源提供程序与 ESXi 中的 GPU 使用不匹配。
osctl exec -it <compute-pod-name> -- bash -c "export PYTHONWARNINGS=\"ignore:Unverified HTTPS request\" && nova-manage --config-file /tmp/share/nova-compute.conf --config-file /etc/nova/nova.conf graphic validate_instance_vgpu --fix true
按以下方式更改日志:instance 718bb1c4-c0ec-40a9-9ebd-c9ab97e85c9d's graphic_str NVIDIATesla T4 (host_40478:0000:03 does not match provider NVIDIATesla T4 (host_40478:0000:82 Fix the provider for instance 718bb1c4-c0ec-40a9-9ebd-c9ab97e85c9d move 9b2901c2-3646-5cef-9664-81c6483d5687 to 95e5f2c3-54ad-51f9-9002-66dc8b93ce5c
要解决此问题,请添加 --fix 命令。instance 9e7c44f9-129a-4264-ab40-d369e6b8dab9 matches instance ba155ebc-b59b-4b7a-80f8-4afbd98cd1aa matches instance 30c57985-56c9-43bb-96be-305eb5e4742e matches instance 609cbc58-8a34-4d52-962c-4acc2496994c matches Done
- 列出 Nova 计算节点内具有 GPU 设备的虚拟机。可以在特定的 Nova 计算 Pod 中运行此命令。
nova-manage --config-file /tmp/share/nova-compute.conf --config-file /etc/nova/nova.conf graphic list_vms_by_device +--------------+----------------+--------------+-------------------------------------------------------+---------------+ | Host Name | Device Name | pciId | VM Name | Profile Names | +--------------+----------------+--------------+-------------------------------------------------------+---------------+ | 10.196.4.135 | NVIDIATesla T4 | 0000:03:00.0 | inst_def-3 (718bb1c4-c0ec-40a9-9ebd-c9ab97e85c9d) | [grid_t4-2q] | | 10.196.4.135 | NVIDIATesla T4 | 0000:03:00.0 | inst_def-2 (9e7c44f9-129a-4264-ab40-d369e6b8dab9) | [grid_t4-2q] | | 10.196.4.135 | NVIDIATesla T4 | 0000:03:00.0 | inst_def-5 (ba155ebc-b59b-4b7a-80f8-4afbd98cd1aa) | [grid_t4-2q] | | 10.196.4.135 | NVIDIATesla T4 | 0000:82:00.0 | yingji-t4-4q-1 (7b6769b4-015f-4d3d-ad0e-ab2236cb9343) | [grid_t4-4q] | | 10.196.4.135 | NVIDIATesla T4 | 0000:82:00.0 | yingji-t4-4q-3 (8c853458-539f-4b08-b208-518c88f24e86) | [grid_t4-4q] | | 10.196.4.135 | NVIDIATesla T4 | 0000:82:00.0 | yingji-t4-4q-2 (8db11b02-45ac-4837-8e82-2ebe0b84bd08) | [grid_t4-4q] | +--------------+----------------+--------------+-------------------------------------------------------+---------------+ For the instance with 2 grid_t4-16q profiles, the display looks like below. +--------------+----------------+--------------+---------+----------------------------+ | Host Name | Device Name | pciId | VM Name | Profile Names | +--------------+----------------+--------------+---------+----------------------------+ | 10.196.4.135 | NVIDIATesla T4 | 0000:03:00.0 | vm-08 | [grid_t4-16q, grid_t4-16q] | | 10.196.4.135 | NVIDIATesla T4 | 0000:82:00.0 | vm-08 | [grid_t4-16q, grid_t4-16q] | +--------------+----------------+--------------+---------+----------------------------+
对于具有两个grid_t4-16q
配置文件的实例,显示内容如下所示:+--------------+----------------+--------------+---------+----------------------------+ | Host Name | Device Name | pciId | VM Name | Profile Names | +--------------+----------------+--------------+---------+----------------------------+ | 10.196.4.135 | NVIDIATesla T4 | 0000:03:00.0 | vm-08 | [grid_t4-16q, grid_t4-16q] | | 10.196.4.135 | NVIDIATesla T4 | 0000:82:00.0 | vm-08 | [grid_t4-16q, grid_t4-16q] | +--------------+----------------+--------------+---------+----------------------------+
在 VMware Integrated OpenStack Manager 中运行命令。osctl exec -it <compute-pod-name> -- bash -c "export PYTHONWARNINGS=\"ignore:Unverified HTTPS request\" && nova-manage --config-file /tmp/share/nova-compute.conf --config-file /etc/nova/nova.conf --log-file /tmp/nova-manage.log graphic list_vms_by_device"
- 从输出中,我们可以看到主机 10.196.4.135 上具有两个地址为 0000:03:00.0 和 0000:82:00.0 的显卡。使用的两个配置文件网格是
grid_t4-2q
和grid_t4-4q
。因此,没有网卡可用于具有其他配置文件的实例。要使用其他 vgpu-profile 引导 实例,必须释放一些显卡。要释放 10.196.4.135 上地址为 0000:03:00.0 的设备,必须关闭实例inst_def-3
、inst_def-2
和inst_def-5
的电源。您必须在工具箱中使用 OpenStack 命令。注: 请勿从 vCenter Web 控制台关闭虚拟机电源。openstack server stop inst_def-3 inst_def-2 inst_def-5
- 验证对不匹配的资源提供程序的修复。