2020-05-20T09:02:00Z
Rony_Sklar - PeerSpot reviewer
Community Manager at PeerSpot (formerly IT Central Station)
  • 7
  • 25586

What is IOMMU?

Can you explain what an IOMMU is? How does it improve VM performance?

7
PeerSpot user
7 Answers
Syed Abid Hussain - PeerSpot reviewer
Snr. Infrastructure Architect (Data Centre) at DHA
Real User
Top 5Leaderboard
2021-07-28T07:16:27Z
Jul 28, 2021

IOMMU is a component in a memory controller that translates device virtual addresses into physical addresses. 


The IOMMU’s DMA re-mapping functionality is necessary in order for VMDirectPath I/O to work. DMA transactions sent by the passthrough PCI function carry guest OS physical addresses which must be translated into
host physical addresses by the IOMMU.


Hardware-assisted I/O MMU virtualization called Intel Virtualization Technology for Directed I/O (VT-d) in
Intel processors and AMD I/O Virtualization (AMD-Vi or IOMMU) in AMD processors, is an I/O memory
management feature that remaps I/O DMA transfers and device interrupts. This feature (strictly speaking, is a
function of the chipset, rather than the CPU) can allow virtual machines to have direct access to hardware I/O
devices, such as network cards, storage controllers (HBAs), and GPUs.

Search for a product comparison in Server Virtualization Software
Allan Trambouze - PeerSpot reviewer
Senior Consultant at Cofomo
Consultant
2020-05-27T00:44:25Z
May 27, 2020

DEEPEN DHULLA did explain well IOMMU. IOMMU has to be activated at the bios level. It exists on Intel and AMD platforms. It is used a lot inside virtualization platforms like VMware VSphere. It provides direct access to the underlayer hardware for a VM.


https://docs.vmware.com/en/VMw...

DEEPEN DHULLA - PeerSpot reviewer
Director & CTO at TechnoInfotech
Real User
Top 20
2020-05-26T10:08:49Z
May 26, 2020

In virtualization, guest operating systems can use hardware that is not specifically made for virtualization. Higher performance hardware such as graphics cards use DMA to access memory directly; in a virtual environment, all memory addresses are re-mapped by the virtual machine software, which causes DMA devices to fail. The IOMMU handles this re-mapping, allowing the native device drivers to be used in a guest operating system.


Read more technical :


https://en.wikipedia.org/wiki/... and also


https://wiki.archlinux.org/ind...


https://www.linux-kvm.org/page...


In plain language, it helps in using hardware resources in VM, as good as it had direct hardware full access., thus you use the original driver and code in VM too and are able to get the best performance.

Luis Apodaca - PeerSpot reviewer
IT Support and Network Admin at Escuela Carlos Pereyra
User
Top 5
2021-08-11T20:07:26Z
Aug 11, 2021

The easy way to understand is: whatever device you plug into the host hardware it's going to be able for the VM. 


The idea is to share resources and minimize the hardware cost.

AllanTrambouze - PeerSpot reviewer
Consultant senior en technologie de l'information at Cofomo Québec
Real User
2021-07-30T00:48:15Z
Jul 30, 2021

input–output memory management unit (IOMMU) is a memory management unit(MMU) that connects a direct-memory-access–capable (DMA-capable) I/O bus to the main memory. Like a traditional MMU, which translates CPU-visible virtual addresses to physical addresses, the IOMMU maps device-visible virtual addresses (also called device addresses or I/O addresses in this context) to physical addresses. 


The advantages of having an IOMMU, compared to direct physical addressing of the memory (DMA), include:



  • Large regions of memory can be allocated without the need to be contiguous in physical memory – the IOMMU maps contiguous virtual addresses to the underlying fragmented physical addresses. Thus, the use of vectored I/O (scatter-gather lists) can sometimes be avoided.

  • Devices that do not support memory addresses long enough to address the entire physical memory can still address the entire memory through the IOMMU, avoiding overheads associated with copying buffers to and from the peripheral's addressable memory space.

  • It also helps a guest Virtualized operating System to Remap memory and Share a memory. 

SA
CEO at a comms service provider with 51-200 employees
User
2020-07-26T19:08:54Z
Jul 26, 2020

IOMMU stands for Input-Output Memory Management Unit. It connects i/o devices to the DMA bus the same way processor is connected to the memory via the DMA bus - https://en.wikipedia.org/wiki/Input%E2%80%93output_memory_management_unit. To me although I am not an expert the advantages are speed and security.

Learn what your peers think about KVM. Get advice and tips from experienced pros sharing their opinions. Updated: November 2022.
655,774 professionals have used our research since 2012.
JA
Project Coordinator with 201-500 employees
User
2020-05-27T02:49:08Z
May 27, 2020

The only way IOMMU will help is if you start assigning HW resources directly to the VM. Just having it available doesn't make things faster.

It would help to know exactly what Motherboard/CPU is advertising this feature. IOMMU is a system specific IO mapping mechanism and can be used with most devices.

IOMMU sounds like a generic name for Intel VT-d and AMD IOV. In which case I don't think you can multiplex devices, it's a lot like PCI passthrough before all these fancy virtualization instructions existed :). SR-IOV is different, the peripheral itself must carry the support. The HW knows it's being virtualized and can delegate a HW slice of itself to the VM. Many VMs can talk to an SR-IOV device concurrently with very low overhead.

The only thing faster than SR-IOV is PCI passthrough though in that case only one VM can make use of that device, not even the host operating system can use it. PCI passthrough would be useful for say a VM that runs an intense database that would benefit from being attached to a FiberChannel SAN.

Getting closer to the HW does have limitations however, it makes your VMs less portable for deployments that require live migration for example. This applies to both SR-IOV and PCI passthrough.

Default virtualized Linux deployments usually use VirtIO which is pretty fast to begin with

Related Questions
AB
User at Visiting Nurse Service of NY
Jan 8, 2022
Hi community, I'm working at a healthcare company with 1,001-5,000 employees. Please let me know which virtualization software (Oracle VM, Azure VM, Microsoft Hyper-V, Google Compute Engine, VMware, ...) would you recommend for my organization?  Please let me know why would you choose the suggested solution.
2 out of 6 answers
SP
Principal System Engineer at BCBS of MN
Nov 29, 2021
I am not sure what workloads you're planning to run on the virtualized platform - databases, SAP, Hadoop, etc. But VMware vSphere is a great virtual platform to run (mixed of different types of workloads).  It is simple to deploy and maintain.  Do you still have 3 tiers of traditional infrastructure? Network Storage and Compute? Do you plan to implement HCI (Hyper-Converged Infrastructure)? 
Oan-Ali - PeerSpot reviewer
Head of Architecture and DevOps at a financial services firm with 10,001+ employees
Nov 29, 2021
Hi  If you are looking for on-premise VMware would suffice most of your requirements. However,  if you are allowed for Cloud I would recommend to select Microsoft Azure. I have recently locked the on-premise Data Center to Azure for one of the Healthcare providers in Dubai.
Syed Abid Hussain - PeerSpot reviewer
Snr. Infrastructure Architect (Data Centre) at DHA
Nov 29, 2021
Hi community, Can you please share your experience regarding real-time Virtual-to-Virtua (lV2V) replication from primary to secondary storage in any hypervisor platform? Thanks for your help!
See 1 answer
Evgeny Belenky - PeerSpot reviewer
Director of Community at PeerSpot (formerly IT Central Station)
Nov 29, 2021
Hi @Abbasi Poonawala, @Chris Childerhose, @Daniel Aramayo, @Steffen Hornung ​and @reviewer1362099, Can you possibly share your experience with @Syed Abid Hussain ​or assist with this question? Thanks for the help!
Related Articles
Chris Childerhose - PeerSpot reviewer
Lead Infrastructure Architect at ThinkON
Jul 27, 2022
Every Virtualization Administrator deals with frustrations daily, and having a management platform to help with daily tasks will ease the burden. But how do you know which one is right for you? How would you go about choosing the right platform that will help you in your daily tasks? Software Criteria When choosing a management tool, there are many things to consider based on your virtual e...
Related Articles
Chris Childerhose - PeerSpot reviewer
Lead Infrastructure Architect at ThinkON
Jul 27, 2022
Choosing a Virtualization Management Platform
Every Virtualization Administrator deals with frustrations daily, and having a management platf...
Download Free Report
Download our free KVM Report and get advice and tips from experienced pros sharing their opinions. Updated: November 2022.
DOWNLOAD NOW
655,774 professionals have used our research since 2012.