La prise en charge de vSphere SR-IOV repose sur l'interaction entre les fonctions virtuelles et la fonction physique du port de carte réseau pour l'amélioration des performances et sur l'interaction entre le pilote de la fonction physique et le commutateur de l'hôte pour le contrôle du trafic.

Dans un hôte qui exécute le trafic des machines virtuelles au-dessus des adaptateurs physiques SR-IOV, les adaptateurs de machine virtuelle contactent directement les fonctions virtuelles pour communiquer les données. Toutefois, la possibilité de configurer les réseaux dépend des stratégies actives sur le port auquel les machines virtuelles sont associées.

Sur un hôte ESXi sans SR-IOV, le commutateur virtuel envoie le trafic réseau externe via ses ports sur l'hôte à partir de ou vers l'adaptateur physique du groupe de ports approprié. Le commutateur virtuel applique également les stratégies de mise en réseau sur les paquets gérés.

Figure 1. Chemins de données et de configuration de la prise en charge SR-IOV de vSphere

Le chemin de données et le chemin de contrôle de la prise en charge SR-IOV de vSphere impliquent différents composants.

Le chemin de données relie directement la machine virtuelle à la fonction virtuelle sur la carte réseau. Le chemin de contrôle inclut le commutateur virtuel et les stratégies actives sur la machine virtuelle.

Chemin de données dans SR-IOV

Une fois l'adaptateur réseau de machine virtuelle attribué à une fonction virtuelle, le pilote de la fonction virtuelle du système d'exploitation invité fait appel à la technologie d'unité de gestion de mémoire E/S (IOMMU, I/O memory management unit) pour accéder à la fonction virtuelle qui doit recevoir ou envoyer les données sur le réseau. Le noyau VMkernel, en l'occurrence le commutateur virtuel, ne traite pas le flux de données, ce qui réduit la latence globale des charges de travail compatibles SR-IOV.

Chemin de configuration dans SR-IOV

Si le système d'exploitation invité tente de modifier la configuration d'un adaptateur de machine virtuelle mappé à une fonction virtuelle, la modification a lieu si elle est autorisée par la stratégie du port associé à l'adaptateur de machine virtuelle.

Le workflow de configuration se déroule de la façon suivante :

  1. Le système d'exploitation invité demande une modification de configuration à la fonction virtuelle.
  2. La fonction virtuelle transmet la demande à la fonction physique via un mécanisme de messagerie.
  3. Le pilote de la fonction physique vérifie la demande de configuration auprès du commutateur virtuel (commutateur standard ou commutateur de proxy hôte d'un commutateur distribué).
  4. Le commutateur virtuel vérifie la demande de configuration par rapport à la stratégie du port auquel l'adaptateur de machine virtuelle compatible avec la fonction virtuelle est associé.
  5. Le pilote de la fonction physique configure la fonction virtuelle si les nouveaux paramètres sont conformes à la stratégie du port de l'adaptateur de machine virtuelle.

    Par exemple, si le pilote de la fonction virtuelle tente de modifier l'adresse MAC, l'adresse initiale est conservée si la stratégie de sécurité du port ou du groupe de ports n'autorise pas la modification des adresses MAC. Même si le système d'exploitation invité indique que la modification a été effectuée, un message du journal signale que l'opération a échoué. Par conséquent, le système d’exploitation invité et le périphérique virtuel enregistrent différentes adresses MAC. Il est possible que l'interface réseau du système d'exploitation invité ne parvienne ni à obtenir une adresse IP ni à communiquer. Dans ce cas, vous devez réinitialiser l'interface du système d'exploitation invité afin d'obtenir l'adresse MAC la plus récente du périphérique virtuel, ainsi qu'une adresse IP.