VT技術

VT技術

英特爾的硬體輔助虛擬化技術(Virtualization Technology,簡稱VT技術)是一種設計更簡單、實施更高效和可靠的方法,是世界上首個X86平台的硬體輔助虛擬化解決方案。它對如何在不同的情形下分配給Guest OS (虛擬機上的作業系統) 想要的Ring 特權級別做了很好的改進。

基本信息

虛擬化

所謂虛擬化,是指將單台電腦軟體環境分割為多個獨立分區,每個分區均可以按照需要模擬電腦的一項技術。它的技術實質是通過中間層次實現計算資源的管理和再分配,使資源利用實現最大化。

虛擬化分區帶來的最大好處是使同一個物理平台能夠同時運行多個同類或不同類的作業系統,以分別作為不同業務和套用的支撐平台。分區使得套用之間能夠更好地隔離,通過把不同的套用安裝到不同的分區上,可以避免在同一個系統運行多個套用時相互影響,包括計算資源爭用,單一套用的崩潰對整個系統造成影響,或單一套用的維護和升級影響其他套用的運行,以及各套用對系統平台環境組件版本的不同要求等矛盾;同時使得系統的備份、遷移和升級更加簡單靈活,由於資源管理中間層的存在,不但操作變得非常

VT技術 VT技術

簡單,而且可以很容易實現線上實施;當然,最重要的是分區可以實現計算資源的實時按需動態分配,負載大的分區可以獲得更多的計算資源。在負載下降時,計算資源可以被回收、返還或再分配給其他的分區,以最大限度地實現資源整合和按需動態分配。

2005年8月,Intel首次公布了其針對硬體虛擬化的Vanderpool技術細節,這種技術可以用於PC和伺服器系統,它可以讓一台計算機同時運行多個作業系統。Vanderpool技術通過增添新的指令,使得Intel處理器支持硬體虛擬化; 而軟體方面則由一個被稱為虛擬機監視器(VMM)的程式對虛擬機進行24小時不間斷的管理。分析家認為,到2010年,大約95% 的新出產的Wintel伺服器都會採用帶有虛擬化技術的硬體。

同年11月,Intel又宣布,虛擬化技術Vanderpool被改成VT,並已經被Acer和聯想套用在其基於Intel Pentium 4的PC上。Intel推出的Pentium 4核心為Prescott處理器,型號為Intel Pentium 4 662及Intel Pentium 4 672。Intel在6×2處理器中加入Intel VT技術,讓一個平台能在獨立的分區 (partitions) 或 “ 容 器 ” (containers)內執行多個作業系統與套用程式,單一的實體運算系統能以多個“虛擬”系統的方式進行運作。

英特爾虛擬化技術(IntelVT)增強了純軟體虛擬化解決方案的可靠性、支持性、安全性和靈活性。矽晶片的這一先進特性表明技術上已取得重大突破,開銷從此將有所下降,各種作業系統將獲得支持。

英特爾虛擬化技術是一組可增強純軟體虛擬化解決方案能力的矽晶片技術。這些虛擬化解決方案可支持多個作業系統,並支持相關套用在單個分區同時運行。這樣,單個物理系統可作為多個邏輯虛擬系統運行。英特爾的硬體技術(英特爾虛擬化技術)通過提高虛擬化解決方案的可靠性、支持性、安全性和靈活性來改進現有的純軟體虛擬化解決方案。

英特爾與領先的虛擬機監控器(VMM)廠商攜手,可確保軟硬體虛擬化解決方案能夠完美地組合在一起,這將有助於提高下一代客戶解決方案的性能。

虛擬作業系統模型是基於虛擬機運行的主機作業系統創建了一個虛擬層,用來虛擬機主機的作業系統。在這個虛擬層之上,可以創建多個相互隔離的虛擬專用伺服器(Virtual Private Server, VPS)。這些VPS可以最大化的效率共享硬體、軟體許可證以及管理資源。對其用戶和應用程式來講,每一個VPS平台的運行和管理都與一台獨立主機完全相同,因為每一個VPS均可獨立進行重啟並擁有自己的root訪問許可權、用戶、IP位址、記憶體、過程、檔案、應用程式、系統函式館以及配置檔案。對於運行著多個應用程式和擁有實際數據的產品伺服器來說,虛擬作業系統的虛擬機可以降低成本消耗和提高系統效率。swsoft的virtuozzo是這一領域的成熟產品。

PC、NB,雖然可以安裝多個作業系統,但是都只能同時運行一個作業系統,如果想要同時運行多個作業系統,答案就是虛擬。早在VT技術誕生之前,VMware,Vitrual PC等虛擬機軟體就做了一個很好的典範,它們虛擬一台計算機的底層,然後過了作業系統,從而能夠同時運行多個作業系統。不過VMware,Vitrual PC等軟體的性能有一定限制,而且其作為一個軟體,必須運行在某個作業系統之上,這就造成了其虛擬系統的性能,完全無法和獨立系統相提並論。為了解決這些問題,VT技術就應運而生了。硬體層之上就是作業系統,而通過VT技術,在這兩者之前增加了一個名叫Virtual Machine Moniter(VMM)的軟體。VMM可以為每個作業系統提供一個虛擬的硬體環境,從而實現多個作業系統的共存。此外,由於所有的作業系統都是建立在一個虛擬的硬體上,任何一個作業系統的重啟、重裝甚至刪除,都不會影響其它作業系統的運行。

優勢

虛擬化能使用戶在一台伺服器上同時運行多個作業系統,這與“多重任務處理”技術有些類似。不過“多重任務處理”技術只允許用戶在同一機器設備的同一作業系統中運行多個程式,而虛擬化則可讓用戶在同一機器設備中運行多個作業系統。這樣用戶能更靈活高效地配用計算機資源,並且有助於提高安全性能。

想像一下,一個作業系統幾乎不需花任何時間就可被啟動,即使它崩潰了,你只需簡單地將它剔除出去,同時立即裝載一個新的。如果你正在同時運行幾個作業系統,當你準備給其中一個載入新的映像時,你可馬上將它關閉,並把該系統正在處理的工作分流給其他系統運行。如果你有5個RedHat的副本正在運行Apache伺服器軟體,而其中一個因滿負荷而停止回響,沒問題,你只需簡單地將回響請求轉交給其他4個系統處理,同時重啟那個停止工作的系統就行了。

如果你已為你正在運行的作業系統存儲了一份“快照”,那么每當有一些不愉快的事情發生時你都可重新啟動它,例如被黑客攻擊、感染病毒。從一個安全的分區載入映像並修復好它就行了。虛擬化還可讓用戶毫不費時地重新安裝作業系統而不需像以往使用Ghost那樣去安裝設備驅動。你可簡單地就像使用普通程式那樣去載入、卸載和存儲作業系統。

同樣,它也允許你在同一台機器上使用多個不同的作業系統。如果你是一名程式設計師,需要編寫代碼使它們在Windows95/98/Me/2000/XP上都能運行,你可在你的辦公桌上準備5台機器或是1台運行了5種虛擬化作業系統的電腦。同時,作為程式設計師的你需在每個瀏覽器的每個版本上校驗這些代碼,很明顯微軟不會讓你在一個已擁有高版本IE的情況下去安裝更低版本的IE去做這些事,但你可一個個地安裝舊的作業系統或採取更好一些的解決方法——讓它們同時運行。

(1)英特爾虛擬化技術專為虛擬機監視器(VMM)提供的全新特權空間,可支持未經修改的作業系統和套用在專門為它們設計的環境中運行,從而簡化硬體調用。

(2)通過硬體底層指令集來支持虛擬機監視器(VMM)與已安裝Guest OS(虛擬機上的作業系統)之間的切換,使得虛擬化技術更加簡單、高效、可靠。

(3)虛擬機監視器(VMM)和已安裝的Guest OS(虛擬機上的作業系統)的處理器狀態信息保留在專用記憶體地址空間中,這樣可以縮短各個作業系統訪問硬體之間的間隔時間,同時提高了各個虛擬機上的作業系統之間的安全隔離性。

實現方式

虛擬化有兩種實施方式:傳統的純軟體虛擬化方式和更新的硬體輔助虛擬化方式。在保護模式下,X86處理器一共有4個不同優先權,術語稱為Ring,從Ring 0-Ring3。Ring 0的優先權最高,Ring 3最低。Ring 0用於作業系統核心, Ring 1和Ring 2用於作業系統服務,Ring 3用於應用程式。

位於Ring 0特權空間的作業系統可以優先訪問各種硬體資源。傳統的虛擬化技術是在Ring 0 中運行一個稱為虛擬機監視器(VMM)的軟體中間層,以負責控制和排列各個分區訪問硬體資源的優先順序。它要求在軟體堆疊的較高層運行作業系統——通常是在Ring 1或者與系統套用共用Ring 3。

由於傳統的純軟體實現方式在測試、驗證和維護每款新作業系統和相關補丁方面,付出了大量的時間和資金, 同時二進制碼翻譯需要消耗處理器的很多計算資源。純軟體虛擬化運行時的開銷會造成系統運行速度較慢,有數據表明其引起的系統性能下降可能達5%-20%。

使用方式

根據intel的資料,intel虛擬技術的實現需要同時具有處理器、晶片組、BIOS、VMM軟體的支持,這些特定的平台軟體必須全部到位。同時性能方面要視不同的硬體和軟體平台而定,intel虛擬技術支持的BIOS和VMM程式正在開發之中。

據我們所知,還沒有支持虛擬技術的VMM軟體,所以即使你買了一款支持VT技術的CPU,你還要等待Intel放出VMM軟體才能使用上VT技術。同時還要等主機板廠商放出VMM支持的BIOS(或者保證使得現有的主機板BIOS支持虛擬技術)。

未知的就是,至關重要的虛擬技術VMM軟體intel將是免費放出還是需要交費才可以。定價如何才合適呢?類似的軟體虛擬技術,VMware Workstation 5價格為189~199美元之間,所以我們希望intel即使不免費提供VMM軟體也會比這個價格要少很多。

系統套用

由於許多供應商都提供虛擬化軟體,因此,過去只有在大型機上才具備的諸多功能,如今基於英特爾架構的伺服器也已將能夠實現。在所有的系統中,可用的解決方案包括如下的實例:

* VMWare(EMC):ESX Server、VMWare 伺服器(VMWare Server)、VMWare Player、VMware Workstation6.5以上以及 VirtualCenter*

* 微軟:Virtual Server,Virtual PC和Windows 7 中的Windows Virtual PC

* Xen 開放原始碼社區:Xen

* Virtual Iron:Virtual Iron

* SW Soft:Virtuozzo

* Parallels:Parallels Workstation

英特爾正積極與軟體廠商合作,幫助推動該系統的發展。英特爾正與 Vmware在多個市場開發與培訓計畫上展開合作,包括通過直接參與製作目標材料內容,直接向 IT經理宣講並引薦虛擬化的價值。為了幫助培育市場並推動虛擬化技術的普及,英特爾還投資開發了一套完整的虛擬化技術初學者套件。該虛擬化技術初學者套件包括特性完備的產品,以及有助於新客戶開始使用虛擬化技術的支持資源。

英特爾和微軟也已聯手,計畫將英特爾虛擬化技術擴展到諸多領域(包括:支持映射 I/O設備到伺服器的虛擬機),它們將遵循一套名為英特爾定向 I/O虛擬化技術(IntelVTDIO)的全新規範。英特爾虛擬化技術(IntelVT)家族以及英特爾定向 I/O虛擬化技術(IntelVTDIO)的一部分功能,有助於提升 I/O在虛擬環境下的可靠性、靈活性和性能。微軟已與英特爾合作開發規範,確保為用戶提供最佳功能。

支持英特爾虛擬化技術的英特爾台式機平台於 2005 年開始發售,移動平台以及基於英特爾至強處理器的伺服器和工作站平台 2006 年初發售。支持英特爾虛擬化技術的基於英特爾安騰處理器的伺服器將於 2006 年晚些時候開始發售。

VT作用

VT的目的

VT的目的是在儘可能最小化程式設計師痛苦的同時儘可能多的增加“virtualization holes”(虛擬化孔)。這種解決方案中,VT-X針對X86而VT-i針對Itanium,分別引入了一種新的模式針對不同的CPU.這裡我們主要來看看VT-X,實際上VT-i的功能與VT-X有很多相同的地方。

這種新的模式被稱為VMX,並且引入了一個虛擬化機監控器VMM運行於其中。它被設定在R0級別下,你可以認為是R-1級或者看成是在環的旁邊運行。主機作業系統和所有的程式在VMX模式中運行,與此同時VMM運行在VMX根模式中。

任何一個運行在VMX模式下的作業系統,都擁有所有運行於非VT系統中的一般作業系統的功能和特性。它也處在R0級別中,與平常一樣有權利處理每一件事情,而且並不知道有什麼東西正在它的旁邊運行。當情況得到授權,CPU進入VMX根模式,VMM就可以切換到其他一個運行在另一VMX實例的作業系統。這些切換被稱做VM登錄和VM退出。

VT技術所表現出來的不可思議的地方就在於它將從VMX模式到VMX根模式(或從VMX根模式到VMX模式)的登錄和退出處理易於操作。一旦主機作業系統被涉及到,那它一定是獨自處在自己的世界裡的,你必須保存虛擬化世界的完整狀態並當你返回時重新載入它。雖然在VT里還有很多事物要去處理,但它被設計為一項任務,所以客觀地說它實際是一個簡單而並不費力的進程。

因為每一個作業系統實例都在正確的位置運行,所以前面所提到的4個問題也就不存在了。相關聯的工作區也不再需要,與此有關的系統開銷沒有了。這些能有效提高速度。但這些並非免費,只是付出的代價要少很多。

啟動一個新的主機作業系統,你需為其留出一塊4kB的存儲區並將它傳遞給一個VMPTLRD指令。這塊區域將用來存儲該系統實例不被激活時的所有狀態和重要Bit位。只要該作業系統實例存在,則這塊區域一直有效,直到在其上運行一條VMCLEAR指令。這樣就設立了一個虛擬化機實例。

如果你想要把控制權交給虛擬化機,你要么登錄VMX非根模式或簡單一點,運行VMX模式即可。這些提到的VM登錄指令就是VMLAUNCH和VMRESUME,兩者並沒有太大的區別。VMRESUME指令只是簡單地從剛開始已經初始化的4kB存儲區里載入CPU狀態,並把控制權交給主機作業系統。VMLAUNCH做的也是同樣的工作,但它會啟動一個虛擬化機控制構件VMCS,它包含一些設立VM的現場背後的記錄,因為這需花費一些時間,所以人們儘量避免在並發登錄時使用VMLAUNCH.

從這一點來看,主機作業系統開始了它的愉快之旅,儘可能地運轉,毫無察覺是否有其他東西正在它的一旁運行。正如過去所計畫的一樣,它存在於自己的世界裡,全速運行,或接近全速。唯一的問題是你如何打破這一切美好的景象而將它關閉到一邊,以使得機器里的其他作業系統能真正運行。這就是VT技術所體現出來的複雜的一面——VMCS中一些特別的位映像。

這些位映像是一些32位的欄位,每一個Bit位標誌一個事件。如果某個事件被觸發,則對應的Bit位被置位,CPU觸發一條VM退出指令,並將控制權返還給運行在VMX根模式下的VMM.VMM可做任何想做的事,然後將VMRESUME指令傳遞給下一個作業系統,或剛離開的那個作業系統。這個被啟動的作業系統同樣很好地運行著,直到觸發另一條VM退出指令。如此這樣以每秒上千次的速度重複著。

什麼能觸發這些指令呢?它們可以是引腳信號、CPU、異常和頁面錯誤這些平台事件,所有這些都會觸發VM退出指令。VT技術的完美之處在於它有很強的適應性,另一個與此類似之處就是在調試程式中設定斷點,你可在每個事件上都設定一個,或者一個也不設定,這都取決於你自己。

引腳信號事件要做的是當有一個內部中斷或一個不可禁止中斷髮生時,則觸發退出指令。而CPU事件,則是當你設定任意Bit位在某一欄位,當相應的CPU狀態接收到它時,則觸發退出指令。雖然大多數指令需要去設定,但也有一些指令無條件地引發VM退出指令。這是在一個非常細小的層面上控制VM,允許每當你需要時登錄和退出。

異常位映像也是一些32位的欄位,每個Bit位標誌每個32位指令地址的異常情況。如果Bit位被設定並有一個異常被拋出,它就會引發VM退出指令。如果Bit位是空的或沒有異常,那么主機作業系統則繼續它的快樂之旅,與平常一樣。這是一種從VMX模式退出而進入VMX根模式的系統開銷非常低的方法。

最後還有頁面錯誤退出,它與異常退出十分相像,只不過它用兩個32位欄位來控制。這些欄位內的Bit位對每一個可能出問題的頁面錯誤代碼進行映像,因此你可細心地從中挑選從哪裡退出。同樣,它也是基於很細小的層面,系統開銷也很低。

在計算機里,VT工作在一個比傳統的R0環更有特權的級別中。任何一個主機作業系統都可在沒有改變的舊有架構下運行,並且不知道一個控制程式在控制它們。當遭遇到某些用戶設定的觸發器,控制權將被轉交給運行在更高級別的VMX根模式上的VMM.因為這是一種被動觸發事件,而不需被積極監視,因此系統開銷降到了最低限。

VT技術使得安裝和卸載那些比以往VM模式更穩定的運行環境變得簡單。如果你需運行虛擬化系統,沒有理由不用一個擁有Vanderpool功能的CPU去實現它,而軟體虛擬化機會逐漸不被人關注。

這也許不錯,但必須記得,這必須付出代價。每一次登錄意味著建立4kB的存儲區域,每一次退出要向這4kB存儲區內寫入數據。這看上去有些耗費過多,可與那些較老的方式比較,它的速度驚人地快。

特點

通過在單個伺服器上運行一系列的虛擬機,IT經理便有可能將各種運行環境整合在少數幾台設備上。例如,許多企業專用、傳統的套用環境,或與多數企業使用的作業系統不兼容的非標準套用環境。這可能需要採用專用硬體,並增加設備及維護成本,使原本緊張的運營預算更加拮据。有了英特爾虛擬化技術,便無需單一用途的硬體,從而資源使用更加高效。同樣,通過採用虛擬化技術,無需附加硬體,即可實現分區的專用故障切換,從而提供了系統冗餘。此外,通過允許管理員配置每個容器上的不同安全設定,虛擬化能夠提供強大的安全支持。

就台式機而言,英特爾虛擬化技術支持在同一設備上進行不同的用途設定。例如,IT部門可使用獨立分區(在後台執行更新和維護)設定最終用戶系統。您甚至可在用戶設備上設定單獨的工作環境和個人環境,並針對每個環境指派不同的用戶許可權,以使其能夠安裝軟體和控制系統。上述配置可以在增加靈活性的同時,使企業資源免遭病毒和間諜軟體的攻擊。對網際網路連線分區的操作同樣也在受限許可權下,這能保護其免受外部攻擊,同時,您還能以 Administrator (管理員)身份運行一個單獨的虛擬機,以執行系統中的限制性任務。

局限

純軟體虛擬化解決方案在為 IT 部門和最終用戶提供巨大優勢的同時,也有較大的局限性。每個"客戶"作業系統很大程度上通過 VMM與硬體進行通信,VMM 為系統上每個虛擬機調解訪問。(注,許多到處理器和記憶體的訪問獨立於 VMM之外,而只有當諸如頁面錯誤這樣的事件發生時才會涉及到 VMM。)在純軟體虛擬化解決方案下,VMM在作業系統原先運行軟體堆疊的空間內運行,而作業系統則在原本運行套用的空間內運行。

這一額外的通信層需要二進制轉換,並通過提供到處理器、記憶體、存儲、顯示卡和網卡等物理資源的接口來仿真硬體環境。這種轉換必然增加系統的複雜性。此外,對客戶作業系統的支持受到虛擬機環境的限制,虛擬機環境性能會妨礙諸如 64位客戶作業系統等某些技術的部署。對於管理員而言,隨著軟體堆疊複雜性的增加,純軟體解決方案下的這種環境就更為複雜,這就增加了保障系統可靠性和安全性的難度。

分類

虛擬化技術大概可以分為以下四類:

硬體仿真

完全虛擬化

半虛擬化

作業系統級的虛擬化

硬體仿真:最複雜的虛擬化實現技術就是硬體仿真,在這種方法中,可以在宿主系統上創建一個硬體 VM 來仿真所想要的硬體。使用硬體仿真的主要問題是速度會非常慢,因為每條指令都必須在底層硬體上進行仿真。但是使用硬體仿真,您可以在一個 ARM 處理器主機上運行為 PowerPC設計的作業系統,而不需要任何修改。硬體仿真的產品有Bochs和qemu。

作業系統級的虛擬化:這種技術在作業系統本身之上實現伺服器的虛擬化。這種方法支持單個作業系統,並可以將獨立的伺服器相互簡單地隔離開來。比如Virtuozzo。好像套用不是很多?

而市面上主要的產品都是完全虛擬化或者半虛擬化的。

完全虛擬化(full virtualization):這種模型使用一個虛擬機,它在客戶作業系統和原始硬體之間進行協調。"協調"在這裡是一個關鍵,因為 VMM 在客戶作業系統和裸硬體之間提供協調。特定受保護的指令必須被捕獲下來並在 hypervisor 中進行處理,因為這些底層硬體並不由作業系統所擁有,而是由作業系統通過 hypervisor 共享。雖然完全虛擬化的速度比硬體仿真的速度要快,但是其性能要低於裸硬體,因為中間經過了 hypervisor 的協調過程。完全虛擬化的最大優點是作業系統無需任何修改就可以直接運行。惟一的限制是作業系統必須要支持底層硬體。

完全虛擬化又分為傳統的和硬體輔助的。傳統的完全虛擬化,虛擬機運行在作業系統之上,虛擬機管理程式本身運行在cpu的Ring 0,虛擬的Guest OS則運行在Ring 1(為了避免Guest OS破壞Host OS,Guest OS必須運行 在低於Ring 0的許可權)。但是這樣一來Guest的兼容性會受到影響,並且原來Guest OS要在Ring 0上執行的指令都必須經過hypervisor翻譯才能運行,速度會有所下降。而硬體輔助的完全虛擬化需要cpu硬體支持,有intel的VT和AMD的 AMD-V兩種技術,只有支持這兩種技術的cpu才可以使用。硬體輔助的虛擬化把虛擬機管理程式本身放到比Ring 0還低的模式運行(比如Ring -1),而把Guest OS放到Ring 0,這樣兼容性得到了提高,不過因為第一代硬體虛擬技術(VT和AMD-V)實現上還不夠成熟,所以效率上並不比傳統的完全虛擬化更高(只能是某幾方面高某幾方面低)。傳統的完全虛擬化技術已經發展了多年,其開發比較複雜,以前的技術一般都是為x86開發的,對於x64不好用,x64上有了VT和 AMD-V之後,估計廠商已經不願意再花力量為x64開發傳統的虛擬機了,所以想要運行64位的Guest OS,都需要VT或AMD-V的支持()。

半虛擬化(para virtualization):半虛擬化可以提供極高的性能,它與完全虛擬化有一些類似。這種方法使用了一個 hypervisor 來實現對底層硬體的共享訪問,還將與虛擬化有關的代碼集成到了作業系統本身中。與硬體輔助的完全虛擬化有一點相似是hypervisor運行在Ring -1,而Guest OS運行在Ring 0上。但是半虛擬化有一個缺點是必須修改客戶作業系統,因為半虛擬化為了提高效率,必須要讓Guest OS本身意識到自己運行在虛擬機上,所以在Guest OS的核心中需要有方法來與hypervisor進行協調,這個缺點很大的影響了半虛擬化技術的普及,因為Linux等系統可以修改,而其它不能修改的系統就不能用了。

硬體虛擬

英特爾虛擬化技術可提供基於晶片的功能,藉助兼容 VMM軟體,可為純軟體解決方案帶來很大改觀。由於虛擬化硬體提供作業系統直接運行的新架構,便不再需要二進制轉換。這就減少了相關的性能費用,並大大簡化了VMM 的設計,使 VMM 能按通用標準進行編寫,並且其性能將變得更加強大。

這些優勢增強了整個虛擬機解決方案的支持性。並且在英特爾虛擬化技術下運行的 VMM 在硬體層能夠得到充分的驗證,這種認證包括,它們能夠直接執行架構的完整指令集。

VMM 在英特爾虛擬化技術下所支持的作業系統的範圍,較純軟體 VMM解決方案所支持的作業系統類型更為廣泛。例如,純軟體 VMM 不支持 64 位客戶的作業系統,隨著英特爾安騰2 處理器和含英特爾64位擴展技術(IntelEM64T)的處理器的日漸普及,這一點將變成為其越發明顯的一項缺陷。基於英特爾虛擬化技術的虛擬機技術將支持 64位客戶作業系統,以及各種傳統作業系統,包括許多 Linux* 發行版本。

英特爾虛擬化技術為範圍廣泛的各種虛擬化解決方案(包括伺服器和台式機環境)提供了一個基礎。這種硬體輔助型虛擬化解決方案擴展了功能強大的計算引擎的能力,使其能夠同時針對多個不同角色進行處理。這項技術為下一代伺服器整合和故障防護操作提供了一個平台,並為台式機和移動客戶平台提供了高度可用性和安全性。

分析

微軟新一代的作業系統Windows 7已成為業界的熱門話題,由於Windows 7相對Windows Vista主要是最佳化升級,降低配置要求,使用戶獲得更佳的體驗,因此自計畫宣布以來便倍受關注。第一個Windows 7 Beta版正式發布後,不少喜歡嘗鮮的用戶已第一時間裝上,體驗新一代作業系統,Windows 7 RC版(後選正式版)發布後,用戶人數更是呈爆炸性增長! 根據大部分測試用戶的反映,Windows 7在性能等方面都要比Vista要強,甚至超越XP,這使得更多用戶期待Windows 7的正式發布。本月初,RC版發布了,相比之前的Beta版帶來了更多改進,其中一個重要的特性是免費附送的“XP模式”,也就是在Windows 7上,可安裝一個XP系統,用戶能隨時切換到“XP模式”,以兼容舊的軟體。但這個“XP模式”卻引出部分Intel CPU的問題……

“XP模式”一曝光,即獲得廣大用戶關注,尤其是XP系統的愛好者,紛紛表示支持,並促使更多用戶把目光轉移到Windows 7上。但是,使用“XP模式”有條件限制,CPU必須支持虛擬化技術(Virtualization Technolegy,簡稱VT),然而Intel眾多主流的CPU均不支持VT技術,包括主流的Pentium E5200、Core 2 E7400、Core 2 Q8200等,其銷量是相當驚人的,換句話說,不少主流的Intel平台與Windows 7的“XP模式”無緣。反觀AMD那邊,只有Sempron系列不支持VT技術,這樣,“XP模式”與虛擬化技術也就成為最近的熱門詞語。

VT虛擬化技術:Intel主流CPU基本不支持

微軟作為全球最大的軟體廠商,其Windows系統全球擁有80%以上的市場占有率,而Windows 7作為下一代作業系統,倍受關注,Intel的主流CPU卻不能使用其中的“XP模式”,先不討論這個“XP模式”對一般用戶是否有實際用途,但既然是AMD的CPU基本全面支持,而Intel多數CPU不支持,在競爭無疑處於劣勢。

要微軟重寫代碼或換個方式來支持“XP模式”顯然是不可能,畢竟涉及到執行效率與開發周期問題,那么Intel只能向微軟屈服,將旗下的主流CPU進行升級,加入虛擬化技術的支持了。

什麼是虛擬化技術?我的CPU是否支持?

其實虛擬化技術並非什麼新技術,只是Windows 7的XP模式出現,虛擬化技術一詞才被更多普通用戶所知曉。早在2005年,Intel和AMD便開始在其CPU中加入虛擬化技術的支持。但是Intel方面也只是部分高端CPU有虛擬化技術,主流級以下的基本不支持;而AMD方面則“厚道”很多,除了小部分入門級CPU(如Sempron)不支持外,其他絕大部分CPU支持。

既然虛擬化技術這么有用,那為什麼Intel和AMD之前不大力宣傳此技術呢?相信不少網友會產生這樣的疑問,在回答之前,我們先來了解一下虛擬化技術的概念:CPU的虛擬化技術就是單CPU模擬多CPU並行,允許一個平台同時運行多個作業系統,並且應用程式都可以在相互獨立的空間內運行而互不影響,從而顯著提高計算機的工作效率。舉一個簡單的例子,在Windows Vista里,通過軟體,同時安裝XP、Linux等作業系統,當需要使用時直接調用,但並非重啟電腦切換作業系統。

虛擬化,在Vista下裝Windows 7

在一個作業系統下再安裝多個系統,多數普通用戶是不會這樣做的,這也是之前CPU的虛擬化技術一詞在普通用戶中沒有流行的原因,因此在選購CPU時,對於CPU是否支持虛擬化技術,普通用戶通常不會在意。其實對於一些資深人員(例如程式設計師),虛擬化技術並不陌生,例如開發一個軟體,要保證它能在Windows 2000/XP/VISTA/7下完美兼容,不可能裝這么多系統、常重啟切換,而虛擬化技術就是很好的解決方案。

雖然虛擬化可以通過軟體實現,但是CPU硬體支持的話,執行效率會大大提升,也可以支持64位作業系統,這是其優點,而Windows 7的XP模式則是必須要CPU的虛擬化技術支持。

用軟體查看CPU是否支持VT技術

正因為Windows 7的XP模式出現,使CPU是否支持虛擬化技術成為熱門的話題,前面也提到,Intel多數主流CPU是不支持虛擬化技術的,例如當前熱賣的雙核Pentium E5200、Core 2 E7400以及四核Core 2 Q8200。AMD方面除了入門級Sempron不支持外,主流的Athlon系列、Phenom系列均支持。對於普通用戶,可用SecurAble軟體查看,例如當前的E7400不支持VT,因此在“Hardware Virtualization”上顯示的便是“NO”了。

主流CPU將支持VT技術

AMD主流CPU支持VT,Intel主流CPU暫時不支持

Windows 7的XP模式,確實是給用戶帶來不少驚喜,尤其是較喜歡XP系統的用戶,先不說XP模式對普通用戶的實用性如何,但當Windows 7正式發布後,肯定有不少用戶會衝著XP模式來安裝Windows 7,如果因為主流Intel CPU不支持VT技術而不能使用XP模式,用戶並能不接受,畢竟AMD大多數CPU是可以安裝使用的。在這種情況下,Intel也只能向微軟妥協,並宣布之後推出的主流CPU會加入VT技術的支持。

新加入VT技術支持的Intel CPU包括四核Core 2 Q8300、雙核Core 2 E7400/E7500和Pentium E5300/E5400,但這些新版本的CPU還未出貨,想買到支持VT的主流級Intel CPU,還得等一個月。但無論何如,這次Windows 7與CPU的VT技術,確實是軟體帶動了硬體的發展。

存在問題

在採用英特爾® 架構(IA)的系統上,虛擬化是一種純軟體解決方案。Microsoft Virtual Server* 、Virtual PC*、VMware ESX* 和 Workstation* 等產品(稱為“虛擬機* ”(VMM*))可處理英特爾架構系統的所有虛擬化問題。由於 VMM 必須創建一種規則,使主機作業系統直接與硬體進行通信,因此它必須採取一些措施。虛擬機主要採用以下兩種方法:

半虛擬化:此項技術要求更改作業系統、特別是核心的原始碼,以便其能夠在指定的 VMM 上運行。此方法類似於大型機方法,其中定製作業系統擴展與硬體配合密切。當然,半虛擬化將不能與商業化作業系統協作。

二進制解碼:VMM 在作業系統二進制代碼載入到虛擬機時對其進行更改。這一方法在支持英特爾架構的商業產品中十分常見,唯一的限制是只能安裝特定版本的作業系統,而新版本的作業系統均需要測試和驗證,並可能要求對 VMM 軟體進行升級。

兩款解決方案共同的問題在於軟體無法與基礎硬體協同工作,因此必須採用一些複雜的方案向軟體模擬某些硬體特性,同時讓主機作業系統誤認為該虛擬機是另一個套用。此外,VMM 還面臨著其它技術挑戰。

Win7

Windows 7 RC版發布的同時微軟還將提供一種全新的虛擬化技術“XP模式”(XPM),Windows 7 Professional、Enterprise和Ultimate版本用戶可以在Windows 7主機上運行虛擬XP環境下安全的軟體,不過該功能對硬體也有一定的要求,包括不小於2GB的記憶體,另外CPU還需要支持硬體虛級化。

根據最新查閱的Intel Processor Spec Finder,現給出支持Intel虛擬化技術(Intel VT)的處理器列表,提醒大家的是,雖然這些是查閱Intel Processor Spec Finder所得的結果,但是想確認你的CPU是否支持XP模式最好還是測試一下:

桌面

Core 2 Duo
E4300/4400/4500/4600/4700 NO
E6300/6320/6400/6420/6540/6550 YES
E6600/6700/6750/6850 YES
E7200/7300/7400/7500 NO
E8190 NO
E8200/8300/8400/8500/8600 YES
Core 2 Extreme
QX6700/6800/6850 YES
QX9650/9770/9775 YES
X6800 YES
Core 2 Quad
Q6600/6700 YES
Q8200/8200S/8300/8400/8400S NO
Q9300/9400/9400S YES
Q9450/9550/9550S/9650 YES
Core i7/Core i7 Extreme
I7-920/940 YES
I7-965 YES
Pentium D/Pentium EE
805/820/830/840 NO
915/925/935/945 NO
920/930/940/950/960 YES
955/965 YES
Pentium for Desktop
E5200/5300/5400 NO

處理器

英特爾處理器內更出色的虛擬化支持英特爾VT-x 有助於提高基於軟體的虛擬化解決方案的靈活性與穩定性。通過按照純軟體虛擬化的要求消除虛擬機監視器(VMM)代表客戶作業系統來聽取、中斷與執行特定指令的需要,不僅能夠有效減少 VMM 干預,還為 VMM 與客戶作業系統之間的傳輸平台控制提供了有力的硬體支持,這樣在需要 VMM干預時,將實現更加快速、可靠和安全的切換。

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

—— 英特爾VT FlexPriority:當處理器執行任務時,往往會收到需要注意的其它設備或套用發出的請求或“中斷”命令。為了最大程度減少對性能的影響,處理器內的一個專用暫存器(APIC任務優先權暫存器,或 TPR)將對任務優先權進行監控。如此一來,只有優先權高於當前運行任務的中斷才會被及時關注。

英特爾FlexPriority 可創建 TPR6 的一個虛擬副本,該虛擬副本可讀取,在某些情況下,如在無需干預時,還可由客戶作業系統進行更改。上述舉措可以使頻繁使用 TPR 的 32 位作業系統獲得顯著的性能提升。(例如,能夠將在 Windows Server* 2000上運行的套用的性能提高 35%。)

—— 英特爾虛擬化靈活遷移技術(Intel VT FlexMigration):虛擬化的一個重要優勢是能夠在無需停機的情況下,將運行中的套用在物理伺服器之間進行遷移。英特爾虛擬化靈活遷移技術(Intel VT FlexMigration)旨在實現基於英特爾處理器的當前伺服器與未來伺服器之間的無縫遷移,即使新的系統可能包括增強的指令集也不例外。藉助此項技術,管理程式能夠在遷移池內的所有伺服器中建立一套一致的指令,實現工作負載的無縫遷移。這便生成了可在多代硬體中無縫運行的更加靈活、統一的伺服器資源池。

網路

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

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

—— 藉助虛擬機直接互連(VMDc)大幅提升虛擬化性能:藉助PCI-SIG 單根 I/O 虛擬化(SR-IOV)標準,虛擬機直接互連(VMDc)支持虛擬機直接訪問網路 I/O 硬體,從而顯著提升虛擬性能。如前所述,英特爾VT-d 支持客戶作業系統與設備I/O 連線埠之間的直接通信信道。通過支持每個 I/O 連線埠的多條直接通信信道,SR-IOV 可對此進行擴展。例如,通過單個英特爾萬兆位伺服器網卡,可為 10 個客戶作業系統中的每個作業系統分配一個受保護的、1 Gb/秒的專用鏈路。這些直接通信鏈路繞過了 VMM 交換機,可進一步提升 I/O 性能並減少伺服器處理器的負載。

更出色的虛擬化平台

作為更出色的虛擬化物理平台,英特爾至強5500 系列處理器具有獨特的硬體輔助特性,可進一步改進虛擬數據中心,幫助控制伺服器的增長速度。基於英特爾微體系架構 Nehalem 的英特爾至強5500 系列處理器採用多項創新技術,可有效提高系統性能、增強 I/O、支持用戶將各代伺服器集中至同一個虛擬伺服器池中,同時提高系統的套用故障恢復、負載均衡和災難恢復能力,進一步擴展虛擬化優勢。

這些技術由一流的虛擬化軟體解決方案完全集成、全面測試並提供廣泛支持。它們為 IT 機構提供了業經驗證、行業領先的基礎,可最佳化其伺服器和虛擬化投資的價值。

晶片組

英特爾晶片組內更出色的虛擬化支持由於每台伺服器上整合了更多的客戶作業系統,數據進出系統的傳輸量(I/O 流量)有所增加並且更趨複雜。如果沒有硬體輔助,虛擬機監視器(VMM)必須直接參與每項 I/O 交易。這不僅會減緩數據傳輸速度,還會由於更頻繁的 VMM 活動而增大伺服器處理器的負載。這就如同在一個繁忙的購物中心,每位顧客都不得不通過一個門進出該中心,並且只能從中心經理那裡得到指示。這樣不僅會耽誤顧客的時間,也會使經理無法處理其它緊急事件。

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

完成初始分配之後,數據即可直接在客戶作業系統與為其分配的設備之間進行傳輸。這樣,I/O 流量的流動將更加迅速,而減少的 VMM 活動則會進一步縮減伺服器處理器的負載。此外,由於用於特定設備或客戶作業系統的 I/O 數據不能被其它任何硬體或客戶軟體組件訪問,系統的安全性與可用性也得到了進一步增強。

相關技術

非常熱門的Virtualization虛擬化技術的出現和套用其實已經有數十年的歷史了,在早期,這個技術主要套用在伺服器以及大型主機上面,隨著PC性能的不斷增長,Virtualization也開始逐漸在x86架構上流行起來。 虛擬化技術的各方面都有了進步,虛擬化也從純軟體逐深入到處理器級虛擬化,再到平台級虛擬化乃至輸入/輸出級虛擬化,代表性技術就是 Intel Virtualization Technology for Directed I/O, 簡寫為Intel VT-d。純軟體虛擬化主要的問題是性能和隔離性。Full Virtualization完全虛擬化技術可以提供較好的客戶作業系統獨 立性,不過其性能不高,在不同的套用下,可以消耗掉主機10%~30%的資源。而OS Virtualization可以提供良好的性能,然而各個客戶作業系統之間的獨立性並不強。無論是何種軟體方法,隔離性都是由Hypervisor軟體 提供的,過多的隔離必然會導致性能的下降。

相關詞條

相關搜尋

熱門詞條

聯絡我們