Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between virtio, emulated-IO, direct I/O, I/O passthrough, SR-IOV?

I can't figure out the difference between virtio, emulated-IO, direct I/O, I/O passthrough, SR-IOV, can anybody help

like image 791
procr Avatar asked Dec 03 '22 18:12

procr


1 Answers

  • virtio is a virtualized driver that lives in the KVM Hypervisor.

  • An emulated-IO is for example the virtual Ethernet Controller that you will find in a Virtual Machine.

  • direct I/O is the concept of having a direct I/O operation inside a VM. An example can be a Direct Memory Access to the memory space of a VM.

  • I/O passthrough, or PCI-passthrough, is the technology to expose a
    physical device inside a VM, bypassing the management of the
    Hypervisor. The VM will see the physical hardware directly. For that the corresponding driver should be installed in the guest OS. As the hypervisor will be bypassed, the performance with this device inside the VM is way better than with an emulated device.

  • SR-IOV for Single Root-I/O Virtualization is a technology where you can expose a physical device in several copies, which can be used individualy. For example with a NIC (Network Interface Card), using SR-IOV you can create several copies of the same device. Therefore, you can use all those copies inside different VMs as if you had several physical device. The performance are increased as with a PCI-Passthrough.

Hope it helps a bit

like image 198
Gabriel Laupre Avatar answered Mar 15 '23 22:03

Gabriel Laupre