Auf einem ESXi-Host werden virtuelle Maschinen, die virtuelle SR-IOV-Funktionen (VFs) für Netzwerke verwenden, ausgeschaltet.

Problem

Auf einem ESXi-Host können virtuelle Maschinen, die virtuelle SR-IOV-Funktionen (VFs) für Netzwerke verwenden, nicht eingeschaltet werden, wenn die Gesamtanzahl der zugewiesenen virtuellen Funktionen sich der im Handbuch Maximalwerte für die Konfiguration von vSphere angegebenen, maximal zulässigen Anzahl von VFs nähert.

Die Protokolldatei vmware.log der virtuellen Maschine enthält eine Meldung ähnlich der Folgenden über die VF:

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

Die Protokolldatei vmkernel.log von VMkernel enthält Meldungen ähnlich der Folgenden über die der virtuellen Maschine zugewiesenen VF:

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

Ursache

Die Anzahl der zuteilbaren Interrupt-Vektoren steigt mit der Anzahl der physischen CPUs auf einem ESXi-Host. Ein ESXi-Host mit 32 CPUs kann insgesamt 4096 Interrupt-Vektoren bereitstellen. Wird der Host gestartet, verbrauchen Geräte auf dem Host (z. B. Speichercontroller, physische Netzwerkadapter und USB-Controller) einen Teil der 4096-Vektoren. Wenn diese Geräte mehr als 1024 Vektoren benötigen, wird die maximale Anzahl der potenziell unterstützten VFs reduziert.

Mit dem Einschalten einer virtuelle Maschine und dem Starten des VF-Treibers des Gastbetriebssystems werden Interrupt-Vektoren verbraucht. Wenn die erforderliche Anzahl der Interrupt-Vektoren nicht verfügbar ist, wird das Gastbetriebssystem unerwartet und ohne Fehlermeldung heruntergefahren.

Derzeit ist keine Regel vorhanden, mit der die Anzahl der verbrauchten oder verfügbaren Interrupt-Vektoren auf einem Host ermittelt werden kann. Diese Anzahl hängt von der Hardwarekonfiguration des Hosts ab.

Lösung

  • Um die virtuellen Maschinen einschalten zu können, verringern Sie die Gesamtanzahl der den virtuellen Maschinen auf dem Host zugewiesenen VFs.
    Ändern Sie z. B. den SR-IOV-Netzwerkadapter einer virtuellen Maschine in einen Adapter, der mit einem vSphere Standard-Switch oder vSphere Distributed Switch verbunden ist.