Device Passthough
设备直通(Device Passthrough)是一种虚拟化技术,允许虚拟机(VM)直接访问物理硬件设备,而不需要通过虚拟化层的中介。这种技术提供了接近于原生的性能,并且在某些应用场景下具有重要的意义,例如高性能计算(HPC)、高性能网络和存储应用等。以下是对设备直通的详细介绍。
在传统虚拟化环境中,虚拟机通过虚拟化层(如 KVM、Xen、VMware ESXi 等)与硬件设备交互。虽然这种方法提供了设备抽象和管理的便利,但会增加额外的开销,导致性能下降。 设备直通技术通过允许虚拟机直接访问物理设备,消除了这些中介层,从而提高了性能。这对于需要高吞吐量和低延迟的应用程序尤为重要。
Device Passthough 实现
VT-d 是 Intel 提供的一种 I/O 虚拟化技术,允许虚拟机管理程序(Hypervisor)将物理设备直接分配给虚拟机,并通过 IOMMU(I/O Memory Management Unit)进行 DMA 和中断重映射。
IOMMU 是一种硬件单元,用于管理 I/O 设备的内存访问,提供地址转换和访问控制。它确保设备只能访问分配给它的内存区域,防止 DMA 攻击。
VT-d DMA Remapping
首先回顾下什么是 DMA?
DMA是指在不经过CPU干预的情况下外设直接访问(Read/Write)主存(System Memroy)的能力。 DMA带来的最大好处是:CPU不再需要干预外设对内存的访问过程,而是可以去做其他的事情,这样就大大提高了CPU的利用率。
在设备直通(Device Passthough)的虚拟化场景下,直通设备在工作的时候同样要使用DMA技术来访问虚拟机的主存以提升IO性能。那么问题来了,直接分配给某个特定的虚拟机的,我们必须要保证直通设备DMA的安全性,一个VM的直通设备不能通过DMA访问到其他 VM 的内存,同时也不能直接访问 Host 的内存,否则会造成极其严重的后果。
因此,必须对直通设备进行 “DMA隔离(DMA isolation)” 和 “DMA地址翻译”,隔离将直通设备的DMA访问限制在其所在VM的物理地址空间内保证不发生访问越界,地址翻译则保证了直通设备的 DMA 能够被正确重定向到虚拟机的物理地址空间内。
为什么直通设备会存在DMA访问的安全性问题呢ÿ