和处理器上的Intel VT-i和VT-x一样,Intel VT-d技术是一种基于North Bridge北桥芯片(或者按照较新的说法:MCH/IOH)的硬件辅助虚拟化技术,通过在北桥中内置提供DMA虚拟化和IRQ虚拟化硬件,实现了新型的I/O虚拟化方式。Intel VT-d技术通过硬件实现的如硬件缓冲、地址翻译等措施,增加了两种设备虚拟化方式:
直接分配:虚拟机直接分配物理I/O设备给虚拟机,这个模型下,虚拟机内部的驱动程序直接和硬件设备直接通信,只需要经过少量,或者不经过VMM的管理。为了系统的健壮性,需要硬件的虚拟化支持,以隔离和保护硬件资源只给指定的虚拟机使用,硬件同时还需要具备多个I/O容器分区来同时为多个虚拟机服务,这个模型几乎完全消除了在VMM中运行驱动程序的需求。例如CPU,虽然CPU不算是通常意义的I/O设备——不过它确实就是通过这种方式分配给虚拟机,当然CPU的资源还处在VMM的管理之下。
原生共享,要实现这个功能,设备需要支持PCI SR-IOV规范,并需要系统支持VT-d
原生共享:这个模型是I/O分配模型的一个扩展,对硬件具有很高的要求,需要设备支持多个Function接口,每个接口可以单独分配给一个虚拟机,这个模型无疑可以提供非常高的虚拟化性能表现。
最后这种设备虚拟化方式到了网卡上的实现就是VMDc方式,这种方式上,网卡需要提供多个Function以提供给虚拟机,每个虚拟机直接连接到网卡的Function上,所以叫做Virtual Machine Direct Connect虚拟机直接连接。
VMDc利用SR-IOV功能将虚拟机的虚拟网卡直接映射到物理网卡的Virtual Function上
支持VMDc技术的网卡提供了多个Function,Function有两类:Physical Function(用来配制管理网卡)和Virtual Function,每一个虚拟机都可以映射到一个Virtual Function,不同的虚拟机使用不同的Virtual Function,从而提供了充足的性能以及虚拟机隔离能力。