Il supporto di vSphere SR-IOV si basa sull'interazione tra le funzioni virtuali (VF) e la funzione fisica (PF) della porta NIC per migliorare le prestazioni e l'interazione tra il driver della PF e il commutatore host per il controllo del traffico.
In un host che esegue il traffico della macchina virtuale sopra le schede fisiche SR-IOV, le schede della macchina virtuale contattano direttamente le funzioni virtuali per comunicare i dati. Tuttavia, la possibilità di configurare le reti dipende dai criteri attivi per la porta che contiene le macchine virtuali.
In un host ESXi senza SR-IOV, il commutatore virtuale invia il traffico di rete esterno attraverso le sue porte sull'host da o verso la scheda fisica per il gruppo di porte pertinente. Il commutatore virtuale applica inoltre i criteri di rete ai pacchetti gestiti.
Il percorso dati connette direttamente la macchina virtuale con la funzione virtuale sulla NIC. Il percorso di controllo include il commutatore virtuale e i criteri attivi nella macchina virtuale.
Percorso dati in SR-IOV
Dopo aver assegnato la scheda di rete della macchina virtuale a una funzione virtuale, il driver VF nel sistema operativo guest utilizza la tecnologia di Unità di gestione della memoria I/O (IOMMU) per accedere alla funzione virtuale che deve ricevere o inviare i dati sulla rete. VMkernel, ovvero il commutatore virtuale in particolare, non elabora il flusso di dati, riducendo la latenza complessiva dei carichi di lavoro abilitati per SR-IOV.
Percorso di configurazione in SR-IOV
Se il sistema operativo guest tenta di modificare la configurazione di una scheda di macchina virtuale mappata a una VF, la modifica viene effettuata se consentito dal criterio sulla porta associata alla scheda della macchina virtuale.
Il workflow di configurazione è costituito dalle seguenti operazioni:
- Il sistema operativo guest richiede una modifica della configurazione sulla VF.
- La VF inoltra la richiesta alla PF tramite un meccanismo di casella di posta.
- Il driver PF verifica la richiesta di configurazione con il commutatore virtuale (commutatore standard o commutatore proxy dell'host di un commutatore distribuito).
- Il commutatore virtuale verifica la richiesta di configurazione rispetto al criterio nella porta a cui è associata la scheda della macchina virtuale abilitata per la VF.
- Il driver PF configura la VF se le nuove impostazioni sono conformi al criterio della porta della scheda della macchina virtuale.
Ad esempio, se il driver VF tenta di modificare l'indirizzo MAC, l'indirizzo rimane lo stesso se la modifica dell'indirizzo MAC non è consentita nel criterio di protezione per il gruppo di porte o la porta. Il sistema operativo guest potrebbe indicare che la modifica è stata eseguita correttamente, ma un messaggio di log indica che l'operazione non è riuscita. Di conseguenza, il sistema operativo guest e il dispositivo virtuale salvano indirizzi MAC diversi. L'interfaccia di rete nel sistema operativo guest potrebbe non essere in grado di acquisire un indirizzo IP e comunicare. In questo caso, è necessario reimpostare l'interfaccia nel sistema operativo guest per ottenere l'indirizzo MAC più recente dal dispositivo virtuale e acquisire un indirizzo IP.