新 城
2005年11月,英特爾發布了新的Xeon MP處理器系統7000系列,X86平臺歷史上第一個硬件輔助虛擬化技術——VT(Vanderpool Technology)技術也隨之誕生。這一里程碑式的事件也拉開了X86平臺普遍虛擬化計算的帷幕。
虛擬化: 概念與優勢
所謂虛擬化,是指將單臺電腦/服務器軟件環境分割為多個獨立分區,每個分區均可以按照需要模擬電腦/服務器的一項技術。它的技術實質是通過中間層次實現計算資源的管理和再分配,使資源利用實現最大化。
虛擬化分區帶來的最大好處是使同一個物理平臺能夠同時運行多個同類或不同類的操作系統,以分別作為不同業務和應用的支撐平臺。分區使得應用之間能夠更好地隔離,避免在同一個系統運行多個應用時相互影響; 同時使得系統的備份、遷移和升級更加簡單靈活,由于資源管理中間層的存在,不但操作變得非常簡單,而且可以很容易實現在線實施; 當然,最重要的是分區可以實現計算資源的實時按需動態分配,負載大的分區可以獲得更多的計算資源,在負載下降時,計算資源可以被回收,返還或再分配給其他的分區,以最大限度地實現資源整合和按需動態分配。
硬件輔助虛擬化: 一種更高效可靠的實現方式
虛擬化有兩種實施方式: 純軟件虛擬化方式和硬件輔助虛擬化方式。
虛擬化技術最早在大型主機上采用,但隨著X86處理器性能的提高和應用的普及,業界很多公司都看到了虛擬化在X86平臺上實施的價值,因此VMware、Xen、微軟和SWsoft等軟件廠商紛紛推出了支持X86平臺的虛擬化軟件。
這些軟件虛擬化產品的基本思路是在操作系統與硬件層之間或者操作系統之上建立一層獨立控制、分配硬件資源的軟件層來達到虛擬化系統資源的目的。不過,不同的虛擬化產品其實現模式也有很大的不同,通過介于底層硬件和操作系統之間的軟件層實現虛擬化功能的代表為VMware和Xen的產品,而SWsoft的產品則是在特定的操作系統之上“虛擬”出多個系統資源副本(SWsoft有支持Windows和Linux的版本),其好處是沒有對系統軟件的修改,對系統性能的影響較小,但由于實現虛擬化的層級不夠“低”,靈活性不如前者,如VMware的產品可以在Linux系統基礎上虛擬化出Windows的應用環境。
對于X86處理器來說,其保護模式下一共有4個不同優先級,分別從Ring 0直到Ring3。這些Ring的優先級隨其所執行功能的不同也有所不同。其中Ring 0用于操作系統內核,優先級最高,擁有最高的“特權”,Ring 1和Ring 2用于操作系統服務,優先級次之,Ring 3用于應用程序,優先級最低。
軟件虛擬化技術工作原理
位于Ring 0特權空間的操作系統可以優先訪問各種硬件資源。軟件虛擬化技術是在Ring 0 中運行一個稱為虛擬機監視器(VMM)的軟件中間層,以負責控制和排列各個分區訪問硬件資源的優先順序。它要求在軟件堆棧的較高層運行操作系統——通常是在Ring 1或者與系統應用共用的Ring 3。
由于操作系統設計缺省工作在Ring 0 特權級別,而現在Ring 0被VMM所擁有,所以傳統的純軟件虛擬化技術需要VMM通過復雜的軟件編程來解決這個矛盾。其中一種方法是通過打補丁修改操作系統內核源代碼讓其認知到工作在Guest OS (虛擬機上的操作系統) 虛擬操作系統模式下,另一種方法是需要對運行期間操作系統的某些硬件調用指令作二進制碼翻譯等。由于上述原因,傳統的純軟件實現方式在測試、驗證和維護每款新操作系統和相關補丁方面,需要花費大量的時間和資金, 同時二進制碼翻譯需要消耗處理器的很多計算資源。
英特爾VT技術工作原理
純軟件虛擬化運行時的開銷會造成系統運行速度較慢,有數據表明其引起的系統性能下降可能超過10%,尤其是在服務器整合領域,當虛擬化系統數目巨大時,其性能損失更為可觀。另外由于要通過軟件捕獲分配基本資源的處理器指令,不但過程復雜,可靠性不高,對不同平臺的兼容性也容易產生問題。
這也是硬件輔助虛擬化技術誕生的重要原因。與軟件方案相比,VT技術對如何在不同的情形下分配給Guest OS 想要的Ring 特權級別做了重要的改進,在軟件堆棧中為VMM提供了專用的空間,可以支持未經修改的操作系統和應用在專門為它們設計的環境中運行,從而簡化了硬件調用。
同時,VT通過硬件底層指令集來支持虛擬機監視器(VMM)與已安裝Guest OS 之間的切換,效率和可靠性明顯提高。
另外,VT技術還設計了保留VMM和已安裝的Guest OS的處理器狀態信息的專用內存地址空間,這樣不但可以縮短各個操作系統訪問硬件之間的間隔時間, 同時提高了各個虛擬機上的操作系統之間的安全隔離性。
硬件輔助虛擬化通過提高客戶虛擬系統的隔離性而增強了虛擬化的性能、靈活性和可靠性。在實施時也更加簡單。
不僅僅是服務器
雙核處理器及64位平臺支持功能為虛擬化技術提供了一個更加穩定可靠的平臺基礎。繼去年英特爾宣布在X86服務器平臺支持硬件輔助虛擬化技術之后,即將于今年第三季度早期發布的博銳商用桌面平臺也將引入虛擬化技術,而64位安騰平臺也將在今年實現對VT技術的支持。
雖然虛擬化的概念和實施最早來源于大型服務器主機,但隨著以英特爾和VMware、微軟等為代表的軟硬件廠商將虛擬化技術引入X86平臺,一個嶄新的時代即將到來。著名的市場調研和分析機構Gartner認為,未來十年內,虛擬化將是PC行業所面臨的最具革命性的一種技術。
由于多核處理器的誕生,使虛擬化技術可以分配的硬件資源得到了擴充,因此不僅僅是在服務器平臺上,即使是在工作站和桌面平臺上,硬件輔助虛擬化的價值也將越來越明顯。
在服務器領域,虛擬化可以帶來更高的部件及系統級利用率,帶來具有透明負載均衡、動態遷移、故障自動隔離、系統自動重構的高可靠服務器應用環境,以及更為簡潔、統一的服務器資源分配管理模式。這方面帶來的效能提升非常明顯。有一項針對Gap時裝公司的數據表明,支持VT技術的Xeon MP服務器平臺結合VMware的虛擬化軟件可以實現高達30:1的服務器整合率。
在工作站環境中,虛擬化可以在單個工作站中整合多種環境,讓開發人員在同一平臺上的各個分區中托管一個連續疊合的軟件堆棧。這可以提高硬件的使用率并簡化整個產品周期的管理工作。
而虛擬化除了可以為臺式機帶來類似數據中心的靈活性和響應能力外,還可以結合iAMT(主動管理)技術對PC實施遠端控制,在不影響終端用戶工作的情況下運行安全和管理服務,甚至通過獨立的分區來過濾網絡流量,防止病毒或者惡意代碼到達用戶終端。
迎接普遍虛擬化計算時代
毫無疑問,虛擬化實現的層次越“低”,其效能、可靠性和安全性就越高。隨著功能的增多,僅僅在處理器芯片層面支持虛擬化就顯得不夠了。必須要把核心功能軟件固化到系統固件層。由于系統固件層是獨立于操作系統之上的,并且可以通過編程來不斷更新升級虛擬化功能支持,因此其好處是不但可以更方便地支持任何操作系統(包括Unix、Linux、Windows和MacOS等),效率和靈活性也會更高。
目前英特爾平臺的BIOS還不具備這種靈活強大的可編程能力。不過其下一代BIOS系統EFI可以通過高級語言(如C)編程,而不是像目前這樣僅支持匯編語言。而微軟下一代操作系統Vista也將支持EFI。
對X86平臺來說,英特爾虛擬化(VT)技術是一項不斷發展完善的技術。從處理器、芯片組、內存、基本BIOS、存儲設備到顯卡,下一步將實現把I/O 設備映射到系統的虛擬機,這意味著一個更廣泛部署的硬件虛擬化技術——實現包括計算、存儲、I/O處理在內的整個計算平臺的虛擬化。
屆時,整個計算機資源得到更充分的管理和利用,系統的性能、可靠性、安全性和可管理性也將實現質的飛躍。
毫無疑問,那是人類夢想的普遍虛擬化時代的最終實現。