Die vSphere SR-IOV-Unterstützung basiert auf der Interaktion zwischen den virtuellen Funktionen (VFs) und der physischen Funktion (PF) des Netzwerkkartenports für bessere Leistung und Interaktion zwischen dem Treiber der PF und dem Host-Switch für die Steuerung des Datenverkehrs.

In einem Host, der VM-Datenverkehr auf physischen SR-IOV-Adaptern ausführt, nehmen VM-Adapter direkte Verbindung mit den virtuellen Funktionen auf, um Daten auszutauschen. Die Möglichkeit zur Konfiguration von Netzwerken basiert jedoch auf den aktiven Richtlinien für den Port, der die virtuellen Maschinen bereithält.

Auf einem ESXi-Host ohne SR-IOV sendet der virtuelle Switch externen Netzwerkverkehr über seine Ports auf dem Host vom oder zum physischen Adapter für die entsprechende Portgruppe. Der virtuelle Switch wendet die Netzwerkrichtlinien auch auf verwaltete Pakete an.

Abbildung 1. Daten- und Konfigurationspfade in der SR-IOV-Unterstützung von vSphere


Der Datenpfad und der Steuerpfad der SR-IOV-Unterstützung in vSphere umfassen verschiedene Komponenten. Der Datenpfad verbindet die virtuelle Maschine direkt mit der virtuellen Funktion auf der Netzwerkkarte. Der Steuerpfad enthält den virtuellen Switch und die aktiven Richtlinien auf der virtuellen Maschine.

Datenpfad in SR-IOV

Nachdem der Netzwerkadapter der virtuellen Maschine einer virtuellen Funktion zugewiesen wurde, verwendet der VF-Treiber im Gastbetriebssystem die IOMMU-Technologie (I/O Memory Management Unit) für den Zugriff auf die virtuelle Funktion, die die Daten über das Netzwerk senden oder empfangen muss. Der VMkernel, also speziell der virtuelle Switch, verarbeitet den Datenfluss nicht, was zu einer Reduzierung der Gesamtlatenz von SR-IOV-fähigen Arbeitslasten führt.

Konfigurationspfad in SR-IOV

Falls das Gastbetriebssystem versucht, die Konfiguration eines VM-Adapters zu ändern, der einer VF zugewiesen ist, wird die Änderung vorgenommen, wenn die Richtlinie auf dem Port, der mit dem VM-Adapter verknüpft ist, dies erlaubt.

Der Konfigurationsablauf besteht aus folgenden Vorgängen:

  1. Das Gastbetriebssystem fordert eine Konfigurationsänderung für die VF an.

  2. Die VF leitet die Anforderung über einen Mailbox-Mechanismus an die PF weiter.

  3. Der PF-Treiber prüft die Konfigurationsanforderung mit dem virtuellen Switch (Standard-Switch oder Host-Proxy-Switch eines Distributed Switch).

  4. Der virtuelle Switch prüft die Konfigurationsanforderung anhand der Richtlinie auf dem Port, mit dem der VF-fähige VM-Adapter verknüpft ist.

  5. Der PF-Treiber konfiguriert die VF, wenn die neuen Einstellungen mit der Port-Richtlinie des VM-Adapters übereinstimmen.

    Wenn beispielsweise der VF-Treiber versucht, die MAC-Adresse zu ändern, bleibt die Adresse gleich, falls die Änderung der MAC-Adresse in der Sicherheitsrichtlinie für die Portgruppe oder den Port nicht erlaubt ist. Das Gastbetriebssystem zeigt möglicherweise an, dass die Änderung erfolgreich war, aber eine Protokollmeldung gibt an, dass der Vorgang fehlgeschlagen ist. In der Folge speichern das Gastbetriebssystem und das virtuelle Gerät unterschiedliche MAC-Adressen ab. Die Netzwerkschnittstelle im Gastbetriebssystem ist dann möglicherweise nicht in der Lage, eine IP-Adresse abzurufen und zu kommunizieren. In diesem Fall müssen Sie die Schnittstelle im Gastbetriebssystem zurücksetzen, um die neueste MAC-Adresse vom virtuellen Gerät und dann eine IP-Adresse abzurufen.