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