Was ist IOMMU und verbessert es die Leistung meiner VM?

28

Der Chipsatz meines Motherboards unterstützt dieses Feature IOMMU . Ich habe gelesen (aber nicht wirklich verstanden), dass es die VM-Leistung verbessert, indem die VM die tatsächliche physische Hardware anstelle der virtuellen Hardware verwendet.

Bringt dies wirklich eine Leistungsverbesserung in der VM? und wenn ja, wie kann ich Virtualbox davon profitieren lassen?

Uri Herrera
quelle

Antworten:

21

Kurz gesagt, eine IOMMU kann Ihnen nur helfen, wenn Sie beginnen, HW-Ressourcen direkt der VM zuzuweisen. Nur zu haben, macht die Dinge nicht schneller.

Es würde helfen, genau zu wissen, welche Hauptplatine / CPU diese Funktion bewirbt. IOMMU ist ein systemspezifischer E / A-Zuordnungsmechanismus und kann mit den meisten Geräten verwendet werden.

IOMMU klingt wie ein generischer Name für Intel VT-d und AMD IOV. In diesem Fall glaube ich nicht, dass Sie Geräte multiplexen können. Es ist viel wie PCI-Passthrough, bevor all diese ausgefallenen Virtualisierungsanweisungen existierten :). SR-IOV ist anders, das Peripheriegerät selbst muss die Unterstützung tragen. Die Hardware weiß, dass sie virtualisiert wird, und kann ein Hardware- Slice von sich selbst an die VM delegieren . Viele VMs können gleichzeitig mit sehr geringem Overhead mit einem SR-IOV-Gerät kommunizieren.

Das einzige, was schneller als SR-IOV ist, ist das PCI-Passthrough. In diesem Fall kann jedoch nur eine VM von diesem Gerät Gebrauch machen, nicht einmal das Host-Betriebssystem. PCI-Passthrough ist beispielsweise nützlich für eine VM, auf der eine umfangreiche Datenbank ausgeführt wird, die von der Anbindung an ein FibreChannel-SAN profitiert.

Die Annäherung an die Hardware hat jedoch Einschränkungen, sodass Ihre VMs für Bereitstellungen, die beispielsweise eine Livemigration erfordern, weniger portabel sind. Dies gilt sowohl für SR-IOV als auch für PCI-Passthrough.

Standardmäßige virtualisierte Linux-Bereitstellungen verwenden in der Regel VirtIO, was anfangs ziemlich schnell ist.

ppetraki
quelle
Ich habe das in der Bedienungsanleitung meines Motherboards gelesen und gesagt, dass es einen physischen Zugriff auf die Host-Hardware ermöglichen könnte, wenn der Chipsatz dies unterstützt.
Uri Herrera
Ich habe gerade das Xen-Wiki gelesen, IOMMU scheint zu tun, was SR-IOV auch tut, aber ich verwende Xen nicht, und anscheinend nutzt Virtualbox dies nicht gut aus.
Uri Herrera
Nein, die meisten Computer haben keine IOMMU. Vielleicht denken Sie an IO-APIC?
Psusi
1
Eigentlich erklärt dieser Wikipedia-Artikel das ziemlich gut: en.wikipedia.org/wiki/X86_virtualization . Der große Gewinn für die IOMMU-Unterstützung ist, dass wir ändern können, welche Geräte wir zur Laufzeit durchlaufen. Vorher mussten wir eine Reihe von Geräten in der Kernel-Arg-Liste angeben, und nur diese Peripheriegeräte konnten durchgelassen werden. Mit IOMMU können Sie Geräte nach Belieben neu zuordnen. Dies ist wiederum ein exklusiver Zugriff, der entweder von Ihrem Host oder von einer der VMs verwendet wird. Dies ist wirklich eine serverzentrierte Funktion.
ppetraki
1
@UriHerrera Ich empfehle die Verwendung von KVM, das auch die Virtualisierungserweiterungen von Intel und AMD unterstützt. Es ist flexibler und hat mehr Funktionen, einschließlich derer, die in VirtualBox zu finden sind.
Oxwivi