¿Qué es IOMMU y mejorará el rendimiento de mi máquina virtual?

El chipset de mi placa base soporta esta característica IOMMU, he leído (pero no entendido realmente) que mejora el rendimiento de la máquina virtual al permitir que la máquina virtual haga uso del hardware físico real en lugar del hardware virtual.

¿Esto realmente mejora el rendimiento de la máquina virtual? y si es así, ¿cómo puedo hacer que Virtualbox se beneficie de ello?

Solución

Resumiendo, la única manera de que una IOMMU te ayude es si empiezas a asignar recursos HW directamente a la VM. Simplemente tenerlo no hace las cosas más rápidas.

Ayudaría saber exactamente qué placa base/CPU anuncia esta característica. IOMMU es un mecanismo de mapeo IO específico del sistema y puede ser usado con la mayoría de los dispositivos.

IOMMU suena como un nombre genérico para Intel VT-d y AMD IOV. En cuyo caso no creo que pueda multiplexar dispositivos. creo que se puedan multiplexar dispositivos, es muy parecido a PCI passthrough antes de que existieran todas estas instrucciones de virtualización :). SR-IOV es diferente, el propio periférico debe llevar el soporte. El HW sabe que está siendo virtualizado y puede delegar una parte de sí mismo a la VM. Muchas VMs pueden hablar con un dispositivo SR-IOV concurrentemente con una sobrecarga muy baja.

Lo único más rápido que SR-IOV es PCI passthrough aunque en ese caso sólo una VM puede hacer uso de ese dispositivo, ni siquiera el sistema operativo anfitrión puede usarlo. PCI passthrough sería útil para, por ejemplo, una máquina virtual que ejecuta una base de datos intensa que se beneficiaría de estar conectada a una SAN FiberChannel.

Acercarse al HW tiene limitaciones, sin embargo, hace que tus VMs sean menos portables para despliegues que requieren migración en vivo, por ejemplo. Esto se aplica tanto a SR-IOV como a PCI passthrough.

Los despliegues Linux virtualizados por defecto suelen utilizar VirtIO que es bastante rápido para empezar.

Comentarios (8)