可以為執行個體設定多個 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 運算節點內以兩種方式將執行個體開機。 - 不支援調整大小和移轉。
程序
- 對於支援的 vGPU 設定檔清單,您可以在 Nova 運算節點內的特定 Nova 運算網繭中執行命令。
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 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"
- 建立具有不同 vGPU 設定檔的虛擬機器,而不重新設定 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
- 建立具有兩個 vGPU 設定檔的執行個體。
- 按照NVIDIA GRID vGPU中所述設定 nova-compute.conf。
- 建立類型模板,在兩個 vGPU 設定檔中設定內容
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
- 關閉某些執行個體的電源以釋放圖形卡空間。
如果沒有未使用的圖形卡,若要將具有不同 vGPU 設定檔的執行個體開機,則必須關閉某些執行個體的電源。
- 驗證對不相符的資源提供者的修正。
如果看到以下記錄,表示某些資源提供者與 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 運算網繭中執行此命令。
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 設定檔的執行個體開機,必須釋放一些圖形卡。若要釋放 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
- 驗證對不相符的資源提供者的修正。