Intel VT

Intel VT

Intel VT即Intel公司的Virtualization Technology虛擬化技術。 為解決純軟體虛擬化解決方案在可靠性、安全性和性能上的不足,Intel在它的硬體產品上引入了Intel VT(Virtualization Technology,虛擬化技術)。2005年8月,Intel首次公布了針對硬體輔助虛擬化的Vanderpool(Intel VT虛擬化技術的前身)技術細節。Vanderpool技術通過增加新的指令,使得Intel處理器支持硬體虛擬化。2005年11月,Intel宣布,虛擬化技術Vanderpool改成VT,被Acer和聯想套用在其基於Intel Pentium 4的PC上。 Intel VT可以讓一個CPU工作起來像多個CPU在並行運行,從而使得在一部電腦內同時運行多個作業系統成為可能。這種VT技術並不是一個新鮮事物,市面上已經有一些軟體可以達到虛擬多系統的目的,比如VMware workstation、Virtual PC等,使用這種技術就可以單CPU模擬多CPU並行,可以實現單機同時運行多作業系統。

簡介

VT,就是虛擬化技術(Virtualization Technology)的縮寫。Intel VT就是指Intel的虛擬化技術。這種技術簡單來說就是讓可以讓一個CPU工作起來就像多個CPU並行運行,從而使得在一台電腦內可以同時運行多個作業系統。只有部份Intel 的CPU才支持這種技術。

技術對比

IntelVT虛擬化技術和多任務(Multitasking)、Hyper-Threading超執行緒技術是完全不同的。多任務是指在一個作業系統中多個程式同時並行運行,而在虛擬化技術中,你可以擁有多個獨立的作業系統同時運行,每一個作業系統中都有多個程式運行,每一個作業系統都運行在一個虛擬的CPU或虛擬主機(虛擬機)上。而Hyper-Threading超執行緒只是在SMP系統(SymmetricMultiProcessing)中單CPU模擬雙CPU來平衡程式運行性能,這兩個模擬出來的CPU是不能分離的,只能協同工作。

當然了,如果一個CPU同時支持Hyper-Threading和虛擬化技術的話,每一個虛擬CPU在各自的作業系統中都被看成是兩個對稱多任務處理的CPU。

技術發展

最早出現

虛擬化技術可能讓人聯想到早期IntelCPU上的“Virtual8086”技術,這種V86模式技術是用來兼容早期的8086/8088處理器而設計的,最早出現386機器上。使用V86模式你可以創建好幾個並行虛擬8086計算機來運行多個DOS程式.同樣道理,使用VT技術你也可以創建幾個完整的虛擬機來運行幾個完整的作業系統。

改進原因

可是既然已經有VMware這類可以達到虛擬目的的軟體,為什麼還要努力來實現硬體CPU內部的虛擬化技術呢?這是因為硬體CPU的虛擬化技術有許多優勢。支持虛擬化技術的CPU帶有多餘的指令集來控制虛擬過程,通過這些指令集,控制軟體VMM(VirtualMachineMonitor)會很容易提高性能,相比純軟體的虛擬化實現方式,會在很大程度上提高性能。

IntelVT虛擬化技術的實施需要處理器、晶片組、BIOS、VMM軟體的同時支持,這些特定的硬體、軟體必須全部到位。性能要視不同的硬體、軟體而定。支持Intel虛擬化技術的VMM(Hypervisor)已有開源項目和版本,並在持續最佳化中,某些廠商也已推出了成熟的商用版本。Intel將硬體輔助虛擬化集成到主要的伺服器組件中,幫助IT機構在每台伺服器上整合更多的套用和更繁重的工作負載,從而進一步提高靈活性、可靠性並降低總體擁有成本TCO(TotalCostofOwnership)。

核心技術

IntelVT虛擬化技術包括分別針對處理器、晶片組、網路的IntelVT-x、IntelVT-d和IntelVT-c技術:

1. IntelVT-x技術:增強處理器的VT虛擬化技術,包括IntelVTFlexPriority、IntelVTFlexMigration(Intel虛擬化靈活遷移技術)、ExtendedPageTables(IntelVT擴展頁表)。

IntelVT-x可以讓一個CPU工作起來像多個CPU在並行運行,從而使得在一台物理伺服器內可以同時運行多個作業系統。能夠降低(甚至消除)多個虛擬機作業系統之間的資源爭奪和限制,從硬體上極大地改善虛擬機的安全性和性能,有助於提高基於軟體的虛擬化解決方案的靈活性與穩定性。IntelVT-x技術可以消除VMM(VirtualMachineMonitor虛擬機監視器)參與虛擬機“中斷”請求的處理與特定指令的執行,這樣VMM操作和控制虛擬機時,將更加快速、可靠和安全。

此外,IntelVT-x具備的虛擬機遷移特性還可為IT投資提供有力保護,並進一步提高故障切換、負載均衡、災難恢復和維護的靈活性。

IntelVTFlexPriority(靈活優先權):當處理器執行任務時,往往會收到其它設備或套用發出的請求或“中斷”命令。為了最大程度減少對性能的影響,處理器內的一個暫存器專用來監控任務優先權,只有優先權高於當前運行任務的請求或“中斷”才被及時處理。

IntelVTFlexMigration(靈活遷移):虛擬化能夠在無需停機的情況下,將運行中的虛擬機在物理伺服器之間進行遷移。藉助此項技術,管理程式能夠在遷移池內的所有伺服器中建立一套一致的指令,實現工作負載的無縫遷移。需注意的是,在不同廠商、不同型號的處理器之間遷移,可能由於指令集不同而出現故障或問題。

ExtendedPageTables(擴展頁表):為了降低實現記憶體虛擬化的難度和提升記憶體虛擬化的性能,ExtendedPageTables直接在硬體上支持虛擬機記憶體的邏輯地址->虛擬機記憶體的物理地址->物理伺服器記憶體的物理地址的兩次轉換。

IntelVT-x已經擴展到了Intel多個產品系列中,包括Pentium、Celeron、Corei3、Corei5、Corei7、Core2Duo、CoreSolo、Core2Extreme、Core2Quad、Xeon、Quark、Atom、Itanium。

2. IntelVT-d技術:支持直接I/O訪問的IntelVT虛擬化技術。

如果每台伺服器上部署更多的虛擬機,虛擬機數據進出系統的I/O流量就會增加並且更趨複雜。如果沒有硬體支持,VMM必須直接參與每項I/O操作,不僅會減緩數據傳輸速度,還會由於VMM的頻繁活動而增大伺服器處理器的負載。這就如同在一個繁忙的停車場,每位車主都不得不通過獨一的進出口,並且只由獨一的門衛放行。這樣不僅會耽誤車主的時間,也會使門衛工作緊張無法處理其他事務。英特爾晶片組的IntelVT-d技術可以出色地解決上述問題。

IntelVT-d通過VMM將特定I/O設備安全分配給特定虛擬機來實現,從而減少VMM參與管理I/O流量的工作,不但加速了數據傳輸,而且消除了大部分的性能開銷。每個I/O設備在系統記憶體中都有一個專用區域,只有該I/O設備及分配到該設備的虛擬機才能對該記憶體區域進行訪問。

VMM完成初始分配之後,數據即可直接在虛擬機與為其分配的I/O設備之間進行傳輸。這樣,就加快了I/O的流動,減少VMM活動及伺服器處理器的負載。此外,由於特定設備或虛擬機的I/O數據記憶體區不能被其它硬體或虛擬機訪問,系統的安全性與可用性也得到了增強。

3. IntelVT-c技術:支持網路連線的Intel虛擬化技術,包括虛擬機設備佇列(VMDq)、虛擬機直接互連(VMDc)。

隨著企業在虛擬化環境中部署越來越多的套用,並利用實時遷移來均衡負載或提升可用性,對虛擬化I/O設備的要求也在顯著提高。通過將廣泛的硬體輔助特性集成到I/O設備(該設備用於保持伺服器與數據中心網路、存儲基礎設施及其它外部設備的連線)中,IntelVT-c可針對虛擬化進一步最佳化網路。這套技術組合的功能與郵局非常相似:將收到的信件、包裹分門別類,然後投遞到各自的目的地。IntelVT-c在專用網路晶片上執行這些功能,大幅提高了交付速度,減少了VMM與伺服器處理器的負載。IntelVT-c包括以下兩項關鍵技術(當前所有的英特爾萬兆伺服器網卡及千兆伺服器網卡均支持)。

虛擬機設備佇列(VMDq):最大限度提高I/O吞吐率。在傳統伺服器虛擬化環境中,VMM必須對每個單獨的數據包進行分類,並將其傳送到相應的虛擬機。這樣會占用大量的處理器周期。而藉助VMDq,該分類功能可由英特爾伺服器網卡內的專用硬體來執行,VMM只需負責將預分類的數據包組傳送到相應的虛擬機。這將降低I/O延遲,使處理器獲得更多的可用周期來處理業務套用。IntelVT-c可將I/O吞吐量提高一倍以上,使虛擬化套用達到接近物理伺服器的吞吐率。

虛擬機直接互連(VMDc):大幅提升虛擬化性能。VMDc支持虛擬機直接訪問網路I/O硬體,從而顯著提升虛擬機性能。如:通過單個英特爾萬兆伺服器網卡,可為10個虛擬機中的每個虛擬機分配一個受保護的、1Gb/s的專用鏈路。這些通信鏈路直接繞過了VMM交換機,進一步提升了I/O性能並減少伺服器處理器的負載。

相關詞條

熱門詞條

聯絡我們