In un host ESXi, una o più macchine virtuali che utilizzano le funzioni virtuali SR-IOV per la rete sono spente.

Problema

In un host ESXi, una o più macchine virtuali che utilizzano le funzioni virtuali SR-IOV per la rete non vengono accese correttamente se il numero totale di funzioni virtuali assegnate è prossimo al numero massimo di funzioni virtuali specificate nella guida Valori massimi per la configurazione di vSphere.

Il file di registro della macchina virtuale vmware.log contiene il seguente messaggio relativo alla funzione virtuale:

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

Il file di registro VMkernel vmkernel.log contiene i seguenti messaggi relativi alla funzione virtuale assegnata alla macchina virtuale:

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

Causa

Il numero di vettori di interrupt allocabili aumenta con il numero di CPU fisiche in un host ESXi. Un host ESXi con 32 CPU può fornire un totale di 4096 vettori di interrupt. Quando l'host viene avviato, i dispositivi nell'host, come i controller di storage, le schede di rete fisiche e i controller USB, utilizzano un sottoinsieme dei 4096 vettori. Se questi dispositivi richiedono più di 1024 vettori, il numero massimo di funzioni virtuali potenzialmente supportate viene ridotto.

Quando una macchina virtuale viene accesa e viene avviato il driver delle funzioni virtuali del sistema operativo guest, vengono utilizzati vettori di interrupt. Se il numero di vettori di interrupt richiesto non è disponibile, il sistema operativo guest viene arrestato in modo imprevisto senza alcun messaggio di errore.

Al momento non è disponibile alcuna regola per determinare il numero di vettori di interrupt utilizzati o disponibili in un host. Questo numero dipende dalla configurazione hardware dell'host.

Soluzione

  • Per poter accendere le macchine virtuali, ridurre il numero totale di funzioni virtuali assegnate alle macchine virtuali nell'host.
    Ad esempio, sostituire la scheda di rete SR-IOV di una macchina virtuale con una scheda connessa a vSphere Standard Switch o vSphere Distributed Switch.