Vous pouvez configurer une instance avec plusieurs profils vGPU ou créer des instances avec différents profils vGPU dans le même nœud de calcul Nova.
La prise en charge de la configuration de plusieurs profils vGPU est limitée et les restrictions suivantes s'appliquent à
vSphere et
VMware Integrated OpenStack :
- Vous ne pouvez pas définir
profile_fb_size_kb
sur un nombre entier volumineux tel que 2097152 dans le CR de calcul Nova.
- Vous ne pouvez pas mettre sous tension simultanément des machines virtuelles avec différents profils vgpu sur le même ESXi. S'il n'y a qu'une seule carte graphique dans l'hôte ESXi, vous devez mettre hors tension la machine virtuelle avec vgpu-profileA avant d'exécuter une machine virtuelle avec vgpu-profileB.
- Vous ne devez pas mettre sous tension une instance avec deux profils vgpu différents.
- Pour mettre sous tension une instance avec deux profils vgpu identiques, vous devez disposer d'au moins deux cartes graphiques GPU non engagées et la carte graphique doit fournir la prise en charge uniquement pour un profil vgpu spécifique. Par exemple, pour la carte graphique NVIDIA Tesla T4, il ne peut créer qu'une instance avec deux profils
grid_t4_16q
. Il n'y a pas de prise en charge pour d'autres profils vgpu.
- Pour le ESXi configuré avec une carte graphique de 16-G de RAM graphique, il prend uniquement en charge l'exécution de huit instances avec des profils
grid_t4_2q
ou quatre instances avec grid_t4_4q
. La RAM graphique totale ne peut pas dépasser la valeur spécifiée.
- VMware Integrated OpenStack ne peut pas détecter ni spécifier la carte graphique qu'il peut utiliser pour la création de machine virtuelle. Dans certains cas, vous devez vous assurer qu'une carte graphique est disponible pour démarrer l'instance avec un profil vgpu différent des instances en cours d'exécution. L'administrateur peut utiliser validate_instance_vgpu et la commande list_vms_by_device pour obtenir les informations des terminaux qui peuvent utiliser ESXi. Pour libérer la carte graphique, vous devez
shutt off instance from openstack
.
- Pour un paramètre de profil GPU par défaut dans nova-compute.conf comme
gpu_profile: grid_t4-2q
, vous pouvez démarrer l'instance avec les vmware:vgpu=1
et les vmware:vgpu_profiles=grid_t4-2q
. Toutefois, il n'est pas recommandé de démarrer l'instance des deux manières au sein du même nœud de calcul Nova.
- Il n'y a pas de prise en charge pour le redimensionnement et la migration.
Procédure
- Pour répertorier les profils vgpu pris en charge, dans le nœud de calcul Nova, vous pouvez exécuter la commande dans un pod de calcul Nova spécifique.
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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] |
+--------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Vous pouvez également exécuter la commande dans le gestionnaire
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"
- Créez des machines virtuelles avec différents profils vgpu sans reconfigurer le calcul Nova.
Assurez-vous que deux cartes graphiques sont installées sur un hôte ESXi ou sur deux ESXi avec une carte graphique installée.
- Configurez nova-compute.conf comme décrit dans vGPU NVIDIA GRID.
- Créez une saveur, définissez la propriété
vmware:vgpu_profiles
.
openstack flavor create --public --disk 20 --ram 4096 --vcpus 2 --property "vmware:vgpu_profiles=grid_t4-4q" gpu_flavor_4q
- Démarrez une instance à partir de
gpu_flavor_4q
.
openstack server create --flavor gpu_flavor_4q --image Photo3 --network net1 gpu_inst1
- Créez une saveur, définissez la propriété vmware:vgpu_profiles avec un profil différent.
openstack flavor create --public --disk 20 --ram 4096 --vcpus 2 --property "vmware:vgpu_profiles=grid_t4-8a" gpu_flavor_8a
- Démarrez une instance à partir de
gpu_flavor_8a
.
openstack server create --flavor gpu_flavor_8a --image Photo3 --network net1 gpu_inst2
- Créez une instance avec deux profils vgpu.
- Configurez nova-compute.conf comme décrit dans vGPU NVIDIA GRID.
- Créez une saveur, définissez la propriété
vmware:vgpu_profiles
avec deux profils 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
- Démarrez une instance à partir de
gpu_flavor_2_profiles
.
openstack server create --flavor gpu_flavor_2_profiles --image Photo3 --network net1 gpu_inst3
- Mettez hors tension certaines instances pour libérer de l'espace de carte graphique.
Lorsqu'il n'y a pas de cartes graphiques inutilisées, vous devez mettre hors tension certaines instances si vous voulez démarrer des instances avec différents profils vgpu.
- Valider le correctif pour les fournisseurs de ressources non égalés.
Si les journaux suivants s'affichent, cela signifie que certains fournisseurs de ressources ne correspondent pas à l'utilisation du GPU dans
ESXi.
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
Modifiez les journaux comme suit :
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
Pour résoudre ce problème, ajoutez la commande
--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
- Répertoriez les machines virtuelles avec un périphérique GPU dans le nœud de calcul Nova. Vous pouvez exécuter cette commande dans un pod de calcul Nova spécifique.
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] |
+--------------+----------------+--------------+---------+----------------------------+
Pour l'instance avec deux profils
grid_t4-16q
, l'affichage ressemble à ce qui suit :
+--------------+----------------+--------------+---------+----------------------------+
| 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] |
+--------------+----------------+--------------+---------+----------------------------+
Exécutez la commande dans le gestionnaire
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"
- À partir de la sortie, nous pouvons voir qu'il existe deux cartes graphiques avec l'adresse (0000:03:00.0 et 0000:82:00.0) sur l'hôte 10.196.4.135. Les deux grilles de profil utilisées sont
grid_t4-2q
et grid_t4-4q
. Par conséquent, aucune carte graphique n'est disponible pour l'instance avec d'autres profils. Pour démarrer l'instance avec un autre profil vgpu, vous devez libérer une carte graphique. Pour libérer le périphérique avec 0000:03:00.0 sur 10.196.4.135, vous devez mettre hors tension les instances inst_def-3
, inst_def-2
et inst_def-5
. Vous devez utiliser la commande OpenStack dans la boîte à outils.
Note : Ne mettez pas hors tension les machines virtuelles à partir de la console vCenter web.
openstack server stop inst_def-3 inst_def-2 inst_def-5