英特爾的VT-d技術是什么?-虛擬化技術快速入門教程


VT-d技術:

我們知道對於服務器而言,很重要的一個組成部分就I/O,CPU的計算能力提升雖然可以更快地處理數據,但是前提是數據能夠順暢的到達CPU,因此,無論是存儲,還是網絡,以及圖形卡、內存等,I/O能力都是企業級架構的一個重要部分。為此,人們不但在傳輸帶寬上投資(比如從百兆以太網到千兆以太網再到萬兆以太網),還在各種系統和架構上進行了大量的投入(比如吞吐量更高的RAID系列、多層數據中心)

I/O虛擬化的關鍵在於解決I/O設備與虛擬機數據交換的問題,而這部分主要相關的是DMA直接內存存取,以及IRQ中斷請求,只要解決好這兩個方面的隔離、保護以及性能問題,就是成功的I/O虛擬化。和處理器上的Intel VT-i和VT-x一樣,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。

I/O設備會產生非常多的中斷請求,I/O虛擬化必須正確地分離這些請求,並路由到不同的虛擬機上。傳統設備的中斷請求可以具有兩種方式:一種將通過I/O中斷控制器路由,一種是通過DMA寫請求直接發送出去的MSI(message signaled interrupts,消息中斷),由於需要在DMA請求內嵌入目標內存地址,因此這個架構須要完全訪問所有的內存地址,並不能實現中斷隔離VT-d實現的中斷重映射(interrupt-remapping)架構通過重新定義MSI的格式來解決這個問題,新的MSI仍然是一個DMA寫 請求的形式,不過並不嵌入目標內存地址,取而代之的是一個消息ID,通過維護一個表結構,硬件可以通過不同的消息ID辨認不同的虛擬機區域。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性能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM