什么是IOMMU,它将改善我的VM性能吗?


Answers:


21

长话短说,IOMMU唯一可以帮助您的方法是直接开始将硬件资源分配给VM。拥有它并不能使事情变得更快。

确切地知道什么主板/ CPU正在宣传此功能会有所帮助。IOMMU是系统特定的IO映射机制,可以与大多数设备一起使用。

IOMMU听起来像Intel VT-d和AMD IOV 的通用名称。在这种情况下,我认为您无法多路复用设备,这就像在所有这些精美的虚拟化指令都存在之前就通过PCI直通:)。SR-IOV不同,外围设备本身必须携带支撑。硬件知道它已被虚拟化,可以将自身的硬件切片委托给VM。许多VM可以以非常低的开销同时与SR-IOV设备通信。

唯一比SR-IOV快的是PCI直通,尽管在这种情况下,只有一个VM可以使用该设备,即使主机操作系统也不能使用它。例如,PCI直通对于运行大量数据库的VM很有用,而该数据库可通过附加到FiberChannel SAN而受益。

但是,接近硬件确实有局限性,例如,对于需要实时迁移的部署,这会使您的VM的可移植性降低。这适用于SR-IOV和PCI直通。

默认的虚拟化Linux部署通常使用VirtIO,从一开始它就非常快。


我从主板的《用户指南》中读到,说如果芯片组支持,它可以提供对主机硬件的某种物理访问。
Uri Herrera

我刚刚读了Xen Wiki,IOMMU似乎也做SR-IOV,但是我不使用Xen,显然Virtualbox并没有很好地利用它。
Uri Herrera

不,大多数计算机没有IOMMU。也许您在考虑IO-APIC?
psusi 2011年

1
实际上,此Wikipedia文章对此进行了很好的解释:en.wikipedia.org/wiki/X86_virtualization。支持IOMMU的最大好处是,我们可以在运行时更改通过哪些设备。在我们必须在内核arg列表中指定一系列设备之前,只有那些外围设备才可以通过。通过IOMMU,您可以根据需要重新映射设备。同样,这是互斥访问,您的主机正在使用它,或者其中一个VM正在使用它。这实际上是一个以服务器为中心的功能。
ppetraki 2011年

1
@UriHerrera我建议您使用KVM,它也支持Intel和AMD的虚拟化扩展。它更加灵活,并且具有更多功能,包括VirtualBox中提供的功能。
Oxwivi 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.