可以為執行個體設定多個 vGPU 設定檔,也可以在同一 Nova 運算節點中建立具有不同 vGPU 設定檔的執行個體。

對設定多個 vGPU 設定檔的支援有限, vSphereVMware 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_vgpulist_vms_by_device 命令來取得可使用 ESXi 的裝置的資訊。若要釋放圖形卡,必須執行 shutt off instance from openstack
  • 對於 nova-compute.conf 中的預設 GPU 設定檔設定 (如 gpu_profile: grid_t4-2q),可以將同時具有 vmware:vgpu=1vmware:vgpu_profiles=grid_t4-2q 的執行個體開機。但是,建議不要在同一 Nova 運算節點內以兩種方式將執行個體開機。
  • 不支援調整大小和移轉。

程序

  1. 對於支援的 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"
  2. 建立具有不同 vGPU 設定檔的虛擬機器,而不重新設定 Nova 運算。

    確保一個 ESXi 主機中有兩個圖形卡,或者有兩個各安裝了一個圖形卡的 ESXi

    1. 按照NVIDIA GRID vGPU中所述設定 nova-compute.conf。
    2. 建立類型模板,並設定內容 vmware:vgpu_profiles
      openstack flavor create --public --disk 20 --ram 4096 --vcpus 2 --property "vmware:vgpu_profiles=grid_t4-4q" gpu_flavor_4q
    3. gpu_flavor_4q 將執行個體開機。
      openstack server create --flavor gpu_flavor_4q --image Photo3 --network net1 gpu_inst1
    4. 建立類型模板,在不同的設定檔中設定內容 vmware:vgpu_profiles。
      openstack flavor create --public --disk 20 --ram 4096 --vcpus 2 --property "vmware:vgpu_profiles=grid_t4-8a" gpu_flavor_8a
    5. gpu_flavor_8a 將執行個體開機。
      openstack server create --flavor gpu_flavor_8a --image Photo3 --network net1 gpu_inst2
  3. 建立具有兩個 vGPU 設定檔的執行個體。
    1. 按照NVIDIA GRID vGPU中所述設定 nova-compute.conf。
    2. 建立類型模板,在兩個 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
    3. gpu_flavor_2_profiles 將執行個體開機。
      openstack server create --flavor gpu_flavor_2_profiles --image Photo3 --network net1 gpu_inst3
  4. 關閉某些執行個體的電源以釋放圖形卡空間。

    如果沒有未使用的圖形卡,若要將具有不同 vGPU 設定檔的執行個體開機,則必須關閉某些執行個體的電源。

    1. 驗證對不相符的資源提供者的修正。
      如果看到以下記錄,表示某些資源提供者與 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
    2. 列出 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"
    3. 從輸出中,我們可以看到主機 10.196.4.135 上具有兩個位址為 0000:03:00.00000:82:00.0 的圖形卡。使用的兩個設定檔網格為 grid_t4-2qgrid_t4-4q。因此,沒有圖形卡可用於具有其他設定檔的執行個體。若要將具有其他 vGPU 設定檔的執行個體開機,必須釋放一些圖形卡。若要釋放 10.196.4.135 上位址為 0000:03:00.0 的裝置,必須關閉執行個體 inst_def-3inst_def-2inst_def-5 的電源。您必須在工具箱中使用 OpenStack 命令。
      備註: 請勿從 vCenter Web 主控台關閉虛擬機器電源。
      openstack server stop inst_def-3 inst_def-2 inst_def-5