Che cos'è IOMMU e migliorerà le prestazioni della mia macchina virtuale?


28

Il chipset della mia scheda madre supporta questa funzionalità IOMMU , ho letto (ma non capisco davvero) che migliora le prestazioni della VM consentendo alla VM di utilizzare l'hardware fisico effettivo anziché l'hardware virtuale.

Questo porta davvero un miglioramento delle prestazioni nella VM? e se lo fa, come posso trarre vantaggio da Virtualbox?

Risposte:


21

Per farla breve, l'unico modo in cui una IOMMU ti aiuterà è se inizi ad assegnare risorse HW direttamente alla VM. Solo averlo non rende le cose più veloci.

Sarebbe utile sapere esattamente quale scheda madre / CPU pubblicizza questa funzione. IOMMU è un meccanismo di mappatura IO specifico del sistema e può essere utilizzato con la maggior parte dei dispositivi.

IOMMU sembra un nome generico per Intel VT-d e AMD IOV. Nel qual caso non penso che tu possa multiplexare i dispositivi, è molto simile al passthrough PCI prima che esistessero tutte queste fantasiose istruzioni di virtualizzazione :). SR-IOV è diverso, la periferica stessa deve supportare. L'HW sa che viene virtualizzato e può delegare una porzione HW di se stesso alla VM. Molte macchine virtuali possono parlare con un dispositivo SR-IOV contemporaneamente con un sovraccarico molto basso.

L'unica cosa più veloce di SR-IOV è il passthrough PCI sebbene in quel caso solo una VM possa utilizzare quel dispositivo, nemmeno il sistema operativo host può usarlo. Il passthrough PCI sarebbe utile per dire una VM che esegue un intenso database che trarrebbe vantaggio dall'essere collegato a una SAN Fibre Channel.

Avvicinarsi a HW presenta tuttavia delle limitazioni, che rendono le VM meno portatili per le distribuzioni che richiedono, ad esempio, la migrazione in tempo reale. Questo vale sia per SR-IOV che per PCI passthrough.

Le distribuzioni Linux virtualizzate predefinite di solito usano VirtIO, che è piuttosto veloce per cominciare.


L'ho letto dalla Guida per l'utente della mia scheda madre, dicendo che se il chipset lo supporta potrebbe fornire una sorta di accesso fisico all'hardware dell'host.
Uri Herrera,

Ho appena letto il wiki di Xen, IOMMU sembra fare anche ciò che fa SR-IOV, ma non uso Xen e apparentemente Virtualbox non ne fa buon uso.
Uri Herrera,

No, la maggior parte dei computer non ha un IOMMU. Forse stai pensando IO-APIC?
psusi,

1
In realtà questo articolo di Wikipedia lo spiega abbastanza bene: en.wikipedia.org/wiki/X86_virtualization . La grande vittoria per il supporto IOMMU è che possiamo cambiare i dispositivi che attraversiamo in fase di esecuzione. Prima dovevamo specificare una gamma di dispositivi nell'elenco arg del kernel e solo quelle periferiche erano idonee per il passthrough. IOMMU ti consente di rimappare i dispositivi come ritieni opportuno. Anche in questo caso si tratta di un accesso esclusivo, o l'host lo sta utilizzando, oppure una delle macchine virtuali lo è. Questa è davvero una funzione incentrata sul server.
ppetraki,

1
@UriHerrera Ti consiglio di usare KVM, che supporta anche le estensioni di virtualizzazione di Intel e AMD. È più flessibile e ha più funzionalità tra cui quelle presenti in VirtualBox.
Oxwivi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.