Sur un hôte ESXi, une ou plusieurs machines virtuelles qui utilisent des fonctions virtuelles SR-IOV pour la mise en réseau sont mises hors tension.

Problème

Sur un hôte ESXi, la mise sous tension d'une ou de plusieurs machines virtuelles qui utilisent des fonctions virtuelles SR-IOV pour la mise en réseau échoue lorsque le nombre total de fonctions virtuelles attribuées s'approche du nombre maximal de fonctions virtuelles spécifié dans le guide Configurations maximales pour vSphere.

Le fichier journal de la machine virtuelle vmware.log contient le message suivant sur la fonction virtuelle :

PCIPassthruChangeIntrSettings: vf_name failed to register interrupt (error code 195887110)

Le fichier journal VMkernel vmkernel.log contient les messages suivants sur la fonction virtuelle attribuée à la machine virtuelle :

VMKPCIPassthru: 2565: BDF = vf_name intrType = 4 numVectors: 3
WARNING: IntrVector: 233: Out of interrupt vectors

Cause

Le nombre de vecteurs d'interruption pouvant être alloués augmente en fonction du nombre de CPU physiques dont dispose un hôte ESXi. Un hôte ESXi qui dispose de 32 CPU peut fournir un total de 4 096 vecteurs d'interruption. Lorsque l'hôte démarre, les périphériques sur l'hôte (contrôleurs de stockage, adaptateurs réseau physiques et contrôleurs USB) consomment un sous-ensemble des 4096 vecteurs. Si ces périphériques nécessitent plus de 1024 vecteurs, le nombre maximal de fonctions virtuelles potentiellement prises en charge est réduit.

Lorsqu'une machine virtuelle est mise sous tension et que le pilote de la fonction virtuelle du système d'exploitation invité démarre, des vecteurs d'interruption sont consommés. Si le nombre de vecteurs d'interruption n'est pas disponible, le système d'exploitation invité s'arrête de façon inattendue sans message d'erreur.

Il n'existe actuellement aucune règle permettant de déterminer le nombre de vecteurs d'interruption consommés ou disponibles sur un hôte. Ce nombre dépend de la configuration matérielle de l'hôte.

Solution

  • Pour pouvoir mettre sous tension les machines virtuelles, réduisez le nombre de fonctions virtuelles attribuées aux machines virtuelles sur l'hôte.
    Par exemple, remplacez l'adaptateur réseau SR-IOV d'une machine virtuelle par un adaptateur connecté à un commutateur standard vSphere ou un commutateur vSphere Distributed Switch.