同じ Nova コンピューティング ノードで、複数の vGPU プロファイルを使用するインスタンスを構成することや、vGPU プロファイルが異なる複数のインスタンスを作成することができます。
複数の vGPU プロファイルの構成はサポートに制限があり、
vSphere と
VMware Integrated OpenStack には次の制限が適用されます。
- Nova コンピューティング CR では、
profile_fb_size_kb
を 2097152 などの大きな整数に設定することはできません。
- vGPU プロファイルが異なる仮想マシンを同じ ESXi で同時にパワーオンすることはできません。ESXi ホストにグラフィック カードが 1 枚しかない場合は、vgpu-profileB を使用する仮想マシンを実行する前に、vgpu-profileA を使用している仮想マシンをパワーオフする必要があります。
- 2 つの異なる vGPU プロファイルを使用するインスタンスをパワーオンしないでください。
- 2 つの同じ vGPU プロファイルを使用するインスタンスをパワーオンするには、未稼動の GPU グラフィック カードが少なくとも 2 枚必要です。グラフィック カードは、特定の vGPU プロファイルに対してのみサポートを提供する必要があります。たとえば、NVIDIA Tesla T4 グラフィック カードの場合、作成できるのは 2 つの
grid_t4_16q
プロファイルを使用するインスタンスだけです。他の vGPU プロファイルはサポートされません。
- 16 GB のグラフィック RAM を備えた 1 枚のグラフィック カードが構成されている ESXi の場合、実行がサポートされるのは
grid_t4_2q
プロファイルを使用する 8 つのインスタンス、または grid_t4_4q
を使用する 4 つのインスタンスのみです。グラフィック RAM の合計が、指定された値を超えることはできません。
- VMware Integrated OpenStack では、仮想マシンの作成に使用できるグラフィック カードを検出することも指定することもできません。場合によっては、実行中のインスタンスとは異なる vGPU プロファイルを使用するインスタンスの起動に利用できるグラフィック カードがあることを確認する必要があります。管理者は、validate_instance_vgpu と list_vms_by_device コマンドを使用して、ESXi を使用できるデバイスの情報を取得できます。グラフィック カードを解放するには、
shutt off instance from openstack
を実行する必要があります。
gpu_profile: grid_t4-2q
など、nova-compute.conf のデフォルトの GPU プロファイル設定では、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 マネージャでコマンドを実行することもできます。
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"
- Nova コンピューティングを再構成せずに、異なる vGPU プロファイルを使用する仮想マシンを作成します。
1 つの ESXi ホストに 2 枚のグラフィック カードがあるか、1 枚のグラフィック カードを備えた 2 つの 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
- 2 つの vGPU プロファイルを使用するインスタンスを作成します。
- NVIDIA GRID vGPUの説明に従って nova-compute.conf を構成します。
- フレーバーを作成し、プロパティ
vmware:vgpu_profiles
に 2 つの vGPU プロファイルを設定します。
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] |
+--------------+----------------+--------------+---------+----------------------------+
2 つの
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 マネージャでコマンドを実行します。
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"
- 出力から、0000:03:00.0 と 0000:82:00.0 というアドレスの 2 枚のグラフィック カードがホスト 10.196.4.135 にあることがわかります。使用される 2 つのプロファイル グリッドは、
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 Server Web コンソールから仮想マシンをパワーオフしないでください。
openstack server stop inst_def-3 inst_def-2 inst_def-5