Intel VT-d技術是一種基于North Bridge北橋芯片的硬件輔助虛擬化技術,通過在北橋中內置提供DMA虛擬化和IRQ虛擬化硬件,實現了新型的I/O虛擬化方式,Intel VT-d能夠在虛擬環境中大大地提升 I/O 的可靠性、靈活性與性能。
傳統的IOMMUs(I/O memory management units,I/O內存管理單元)提供了一種集中的方式管理所有的DMA——除了傳統的內部DMA,還包括如AGP GART、TPT、RDMA over TCP/IP等這些特別的DMA,它通過在內存地址范圍來區別設備,因此容易實現,卻不容易實現DMA隔離,因此VT-d通過更新設計的IOMMU架構, 實現了多個DMA保護區域的存在,最終實現了DMA虛擬化。這個技術也叫做DMA Remapping。
VT-d實現 的中斷重映射可以支持所有的I/O源,包括IOAPICs,以及所有的中斷類型,如通常的MSI以及擴展的MSI-X。
VT-d進行的改動還有很多,如硬件緩沖、地址翻譯等,通過這些種種措施,VT-d實現了北橋芯片級別的I/O設備虛擬化。VT-d最終體現到虛擬化模型上的就是新增加了兩種設備虛擬化方式:
直接I/O設備分配, 虛擬機直接分配物理I/O設備給虛擬機,這個模型下,虛擬機內部的驅動程序直接和硬件設備直接通信,只需要經過少量,或者不經過VMM的管理。為了系統的健壯性,需要硬件的虛擬化支持,以隔離和保護硬件資源只給指定的虛擬機使用,硬件同時還需要具備多個I/O容器分區來同時為多個虛擬機服務,這個模型幾乎完全消除了在VMM中運行驅動程序的需求。例如CPU,雖然CPU不算是通常意義的I/O設備——不過它確實就是通過這種方式分配給虛擬機,當然CPU的資源還處在VMM的管理之下。
運用VT-d技術,虛擬機得以使用直接I/O設備分配方式或者I/O設備共享方式來代替傳統的設備模擬/額外設備接口方式,從而大大提升了虛擬化的I/O性能。
![]()