Sie können eine -Instanz mit mehreren vGPU-Profilen konfigurieren oder -Instanzen mit unterschiedlichen vGPU-Profilen im selben Nova Compute-Knoten erstellen.
Die Konfiguration mehrerer vGPU-Profile wird nur begrenzt unterstützt und die folgenden Einschränkungen gelten für
vSphere aud
VMware Integrated OpenStack:
- Sie können
profile_fb_size_kb
nicht auf eine große Ganzzahl wie 2097152 in Nova Compute CR festlegen.
- Sie können virtuelle Maschinen mit unterschiedlichen vgpu-Profilen auf ESXi nicht gleichzeitig einschalten. Wenn nur eine Grafikkarte auf dem ESXi-Host vorhanden ist, müssen Sie die virtuelle Maschine mit vgpu-profileA ausschalten, bevor Sie eine virtuelle Maschine mit vgpu-profileB ausführen.
- Sie dürfen keine Instanz mit zwei verschiedenen vgpu-Profilen einschalten.
- Um eine Instanz mit zwei gleichen vgpu-Profilen einzuschalten, müssen Sie über mindestens zwei nicht aktivierte GPU-Grafikkarten verfügen und die Grafikkarte darf nur Unterstützung für ein bestimmtes vgpu-Profil bieten. Beispielsweise kann für die Grafikkarte NVIDIA Tesla T4 nur eine Instanz mit zwei
grid_t4_16q
-Profilen erstellt werden. Es gibt keine Unterstützung für andere vgpu-Profile.
- Für ESXi, das mit einer Grafikkarte mit 16-G-Grafik-RAM konfiguriert ist, werden nur acht Instanzen mit
grid_t4_2q
-Profilen oder vier Instanzen mit grid_t4_4q
unterstützt. Der gesamte Grafik-RAM darf den angegebenen Wert nicht überschreiten.
- VMware Integrated OpenStack kann nicht ermitteln oder angeben, welche Grafikkarte für die VM-Erstellung verwendet werden kann. In einigen Fällen müssen Sie sicherstellen, dass eine Grafikkarte zum Starten der Instanz mit vgpu-profile verfügbar ist, die sich von den ausgeführten Instanzen unterscheidet. Der Administrator kann die Befehle validate_instance_vgpu und list_vms_by_device verwenden, um die Informationen der Geräte abzurufen, die ESXi verwenden können. Um die Grafikkarte freizugeben, müssen Sie
shutt off instance from openstack
verwenden.
- Für eine Standard-GPU-Profileinstellung in nova-compute.conf wie
gpu_profile: grid_t4-2q
können Sie die Instanz sowohl mit vmware:vgpu=1
als auch mit vmware:vgpu_profiles=grid_t4-2q
starten. Es wird jedoch nicht empfohlen, die Instanz auf beide Arten innerhalb desselben Nova Compute-Knotens zu starten.
- Es gibt keine Unterstützung für Größenänderung und Migration.
Prozedur
- Zum Auflisten unterstützter vgpu-Profilen können Sie innerhalb des Nova Compute-Knotens den Befehl in einem bestimmten Nova Compute-Pod ausführen.
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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] |
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Sie können den Befehl auch im
VMware Integrated OpenStack Manager ausführen.
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"
- Erstellen Sie VMs mit unterschiedlichen vgpu-Profilen, ohne Nova Compute neu zu konfigurieren.
Stellen Sie sicher, dass sich zwei Grafikkarten in einem ESXi-Host befinden oder zwei ESXi mit einer installierten Grafikkarte vorhanden sind.
- Konfigurieren Sie nova-compute.conf wie in NVIDIA GRID vGPU beschrieben.
- Erstellen Sie einen Typ und legen Sie die Eigenschaft
vmware:vgpu_profiles
fest.
openstack flavor create --public --disk 20 --ram 4096 --vcpus 2 --property "vmware:vgpu_profiles=grid_t4-4q" gpu_flavor_4q
- Starten Sie eine Instanz von
gpu_flavor_4q
.
openstack server create --flavor gpu_flavor_4q --image Photo3 --network net1 gpu_inst1
- Erstellen Sie einen Typ und legen Sie die Eigenschaft vmware:vgpu_profiles mit einem anderen Profil fest.
openstack flavor create --public --disk 20 --ram 4096 --vcpus 2 --property "vmware:vgpu_profiles=grid_t4-8a" gpu_flavor_8a
- Starten Sie eine Instanz von
gpu_flavor_8a
.
openstack server create --flavor gpu_flavor_8a --image Photo3 --network net1 gpu_inst2
- Erstellen Sie eine -Instanz mit zwei vgpu-Profilen.
- Konfigurieren Sie nova-compute.conf wie in NVIDIA GRID vGPU beschrieben.
- Erstellen Sie einen Typ und legen Sie die Eigenschaft
vmware:vgpu_profiles
mit zwei vgpu-Profilen fest.
openstack flavor create --public --disk 20 --ram 4096 --vcpus 2 --property "vmware:vgpu_profiles=grid_t4-16q,grid_t4-16q" gpu_flavor_2_profiles
- Starten Sie eine Instanz von
gpu_flavor_2_profiles
.
openstack server create --flavor gpu_flavor_2_profiles --image Photo3 --network net1 gpu_inst3
- Schalten Sie einige Instanzen aus, um Speicherplatz auf der Grafikkarte freizugeben.
Wenn keine nicht verwendeten Grafikkarten vorhanden sind, müssen Sie einige Instanzen ausschalten, wenn Sie Instanzen mit unterschiedlichen vgpu-Profilen starten möchten.
- Validieren Sie den Fix für die nicht übereinstimmenden Ressourcenanbieter.
Wenn die folgenden Protokolle angezeigt werden, bedeutet dies, dass einige Ressourcenanbieter nicht mit der GPU-Verwendung in
ESXi übereinstimmen.
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
Ändern Sie die Protokolle wie folgt:
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
Um das Problem zu beheben, fügen Sie den Befehl
--fix hinzu.
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
- Listet virtuelle Maschinen mit GPU-Gerät innerhalb des Nova Compute-Knotens auf. Sie können diesen Befehl in einem bestimmten Nova Compute-Pod ausführen.
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] |
+--------------+----------------+--------------+---------+----------------------------+
Für die Instanz mit zwei
grid_t4-16q
-Profilen sieht die Anzeige wie folgt aus:
+--------------+----------------+--------------+---------+----------------------------+
| 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] |
+--------------+----------------+--------------+---------+----------------------------+
Führen Sie den Befehl in
VMware Integrated OpenStack Manager aus.
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"
- Anhand der Ausgabe ist ersichtlich, dass zwei Grafikkarten mit Adresse (0000:03:00.0 und 0000:82:00.0) auf dem Host 10.196.4.135 vorhanden sind. Die beiden verwendeten Profilraster sind
grid_t4-2q
und grid_t4-4q
. So ist beispielsweise keine Grafikkarte für Instanzen mit anderen Profilen verfügbar. Um die Instanz mit einem anderen vgpu-Profil zu starten, müssen Sie eine Grafikkarte freigeben. Um das Gerät mit der Adresse 0000:03: 00.0 auf 10.196.4.135 freizugeben, müssen Sie die Instanzen inst_def-3
, inst_def-2
und inst_def-5
ausschalten. Sie müssen den OpenStack-Befehl in der Toolbox verwenden.
Hinweis: Schalten Sie die virtuellen Maschinen nicht über die vCenter-Webkonsole aus.
openstack server stop inst_def-3 inst_def-2 inst_def-5