哪種虛擬化技術(shù)最適合你的使用環(huán)境?本文從架構(gòu)、性能、應(yīng)用環(huán)境等重點(diǎn)分析了具有代表性六大虛擬化技術(shù),并分別分析了不同類別間的不同特點(diǎn)以及其各自適合的企業(yè)環(huán)境特點(diǎn)。以供廣大企業(yè)用戶借鑒。
VMware憑Virtual Infrastructure 3繼續(xù)領(lǐng)跑
旗艦虛擬化產(chǎn)品的新版本改進(jìn)了硬件支持功能。
VMware基于硬件仿真的產(chǎn)品系列長期以來領(lǐng)導(dǎo)x86虛擬化市場。VMware Workstation和Server需要“主機(jī)”操作系統(tǒng):Linux或者Windows,才能在各種操作系統(tǒng)環(huán)境下運(yùn)行“客戶”虛擬機(jī),這些環(huán)境包括BSD、Linux、NetWare、Unix和Windows。不過,這家公司面向企業(yè)市場的ESX Server產(chǎn)品采用了略有不同的方法。ESX Server實際上是非常精簡、受到嚴(yán)加控制的基于Linux的操作系統(tǒng)――安裝在裸機(jī)系統(tǒng)上,用不著需要主機(jī)操作系統(tǒng)。因而,它的硬件支持功能比較有限,不過它管理每個虛擬系統(tǒng)所需的開銷比較小,能夠支持更多的并行虛擬服務(wù)器實例。
VMware的硬件抽象方法非常靈活,但帶來的開銷勢必比基于主機(jī)的虛擬化產(chǎn)品大得多。折衷方案就是,允許每個虛擬服務(wù)器可以真正與平臺分開、可在BIOS層面進(jìn)行定制。VMware的服務(wù)器產(chǎn)品還提供了客戶端工具,可以從管理員工作站連接到每個虛擬服務(wù)器的控制臺,以便管理;另外提供了可自動創(chuàng)建及維護(hù)虛擬服務(wù)器的應(yīng)用編程接口(API)。
VMware現(xiàn)在應(yīng)該推出了Virtual Infrastructure 3套件,它為市場推出了具有許多增強(qiáng)功能的新版本ESX Server。在后端方面,VMware添加了支持四路CPU虛擬機(jī)的功能,每個虛擬機(jī)的內(nèi)存容量可高達(dá)16GB,還為64位客戶操作系統(tǒng)提供了官方支持。SAN連接功能也達(dá)到了新的水平。ESX Server 3可以從NFS共享區(qū)域或者iSCSI SAN卷讀取虛擬機(jī)磁盤文件,可從SAN直接支持運(yùn)行中的虛擬機(jī),甚至可以從SAN來引導(dǎo)。
VMware憑借新發(fā)布的ESX Server 3版本,徹底改變了Web用戶界面,使得Web體驗更出眾、更完善。不過, VirtualCenter顯然仍是一款更出色的管理工具,可用于配置、管理及自動遷移VMware虛擬機(jī)。Virtual Infrastructure 3的一項新增特性名為分布式可用性服務(wù):萬一遇到硬件故障,這項特性可以讓VirtualCenter把虛擬機(jī)從一個物理主機(jī)自動遷移到另一個物理主機(jī)。
該版本的另一個新特性就是分布式資源調(diào)度,這個工具可以在硬件資源之間自動遷移虛擬機(jī)。譬如說,如果在虛擬機(jī)里面運(yùn)行的某個數(shù)據(jù)庫服務(wù)器耗用了一臺物理主機(jī)上的太多資源,從而影響了在同一主機(jī)上運(yùn)行的其他虛擬機(jī)的性能,VirtualCenter就會把其他服務(wù)器遷移到另一個ESX服務(wù)器實例上,從而兼顧所有虛擬機(jī)對資源的需求。
如果把這些工具部署到實際使用的數(shù)據(jù)中心,管理員可以把每個物理服務(wù)器看成是屬于龐大資源池的一部分,用不著為每臺服務(wù)器手動分配資源來處理負(fù)載。此外,分布式可用性服務(wù)意味著硬件故障不再是以前的威脅了。
VMware在x86虛擬化市場占有最大的份額,也理應(yīng)是這樣。在測試環(huán)境下,測試版本的ESX Server 3在服務(wù)器上運(yùn)行似乎非常穩(wěn)定,只有VirtualCenter出現(xiàn)了一些小的異常――這通常是測試版本代碼的特點(diǎn)。如果交付的Virtual Infrastructure 3承諾的所有功能沒有縮水,它會把虛擬化技術(shù)進(jìn)一步推向主流。
微軟期待Longhorn提高虛擬化速度
接近內(nèi)核的hypervisor其速度應(yīng)當(dāng)會超過Virtual Server 2005。
微軟的Virtual Server 2005 R2采用了與VMware同樣的設(shè)計思路,不過需要Windows Server 2003作為主機(jī)操作系統(tǒng);另外與VMware ESX Server不同的是,它無法在裸機(jī)環(huán)境下運(yùn)行。最新版本添加了相當(dāng)漂亮的Web用戶界面及支持Linux虛擬機(jī)(VM)的功能。而且它可以免費(fèi)下載。
微軟還在準(zhǔn)備虛擬機(jī)管理器(Virtual Machine Manager),這個虛擬化管理工具基于Virtual Server 2005 R2。它目前只是測試版,微軟計劃今年晚些時候發(fā)布正式版本的虛擬機(jī)管理器。
盡管這樣,微軟仍面臨激烈的競爭,這些新產(chǎn)品恐怕功能太少、交付時間太晚。初步測試表明,Virtual Server 2005 R2功能良好,但受到了似乎與I/O瓶頸有關(guān)的性能問題的阻礙。另外,雖然x64版本在面向AMD Opteron和英特爾擴(kuò)展內(nèi)存64位(EM64T)處理器的Windows Server 2003 x64上運(yùn)行,但實際上作為32位應(yīng)用在Windows on Windows(WoW)里面運(yùn)行,這進(jìn)一步阻礙了該虛擬產(chǎn)品在這些架構(gòu)上的性能。
按照微軟的一貫思路,所有虛擬服務(wù)器管理工具都需要Windows和Internet Explorer 6.0或更高版本,而與虛擬服務(wù)器控制臺的所有交互都通過嵌入在瀏覽器窗口里面的ActiveX控件來處理。Web圖形用戶界面布局漂亮,不過有時會很奇怪,可以比較輕松地完成一些簡單任務(wù),譬如把ISO鏡像映射到虛擬機(jī)光盤驅(qū)動器。
與x86虛擬化市場的其他產(chǎn)品相比,微軟的虛擬機(jī)服務(wù)器缺少管理工具。不過微軟最近宣布了系統(tǒng)中心虛擬機(jī)管理器,它不但用來管理虛擬服務(wù)器,還用來為將內(nèi)置在Longhorn里面的Windows服務(wù)器虛擬化服務(wù)提供管理框架。
虛擬機(jī)管理器的目的類似VMware VirtualCenter,但多了幾項額外特性。它體現(xiàn)了微軟在物理到虛擬遷移工具(僅限于Windows服務(wù)器)方面的思路,并且借鑒了卷影復(fù)制服務(wù)(VSC),執(zhí)行文件塊級別的服務(wù)器遷移。另外還包括諸多合并工具,它們可以查看物理數(shù)據(jù)中心;根據(jù)性能和資源利用率方面的衡量指標(biāo),建議采取相應(yīng)的虛擬化遷移策略。
所有這些工具都可以充分利用活動目錄等微軟的現(xiàn)有技術(shù)來完成工作,這在以Windows為中心的基礎(chǔ)設(shè)施下是一個優(yōu)點(diǎn)。不過雖然虛擬服務(wù)器現(xiàn)在支持Linux客戶操作系統(tǒng),但微軟并還沒有想方設(shè)法用其管理工具支持Linux,而是偏向于讓第三方獨(dú)立軟件開發(fā)商處理這項任務(wù)。
預(yù)計微軟會在最初發(fā)布Longhorn Server后的三個月內(nèi)為這項操作系統(tǒng)交付hypervisor,并且已承諾:由于更加接近操作系統(tǒng)的內(nèi)核,將會帶來更好的虛擬化性能。如果真是這樣,那么獨(dú)立的虛擬服務(wù)器產(chǎn)品可能會成為明日黃花。它目前提供的所有功能將成為標(biāo)準(zhǔn)的服務(wù)器角色,酷似域控制器或者應(yīng)用服務(wù)器。另一方面,如果Longhorn未能解決虛擬機(jī)性能速度緩慢的問題,微軟在虛擬化市場可能會繼續(xù)處于落伍的位置。
Solaris容器將服務(wù)器推向極限
Sun的內(nèi)置Unix虛擬化方案可以盡量提高利用率。
Sun公司最初利用Solaris Domains把虛擬化特性添加到了專用的Uni x操作系統(tǒng),這項技術(shù)以前只出現(xiàn)在價格不菲、功能強(qiáng)大的Sun硬件上,譬如E10000。不過這個平臺對安裝的大多數(shù)環(huán)境來說過于龐大了。Sun利用Solaris容器(Solaris Containers),為主流市場引入了類似功能。容器可運(yùn)行在使用Sparc或者x86版本的Solaris 10上,再加上引入的多核Sun Sparc T1處理器,兩者共同為Sun的虛擬化策略注入了新的活力。
Solaris容器讓安裝的多個Solaris 10可以在一臺物理服務(wù)器上運(yùn)行,所有虛擬服務(wù)器在這臺服務(wù)器上共享通用內(nèi)核,但運(yùn)行不同的實體,虛擬服務(wù)器上面的所有進(jìn)程統(tǒng)一在主機(jī)內(nèi)核里面運(yùn)行。雖然Solaris Zones并不是什么新概念,但作為Solaris容器增強(qiáng)版的這項虛擬化技術(shù)還是頗受歡迎。
Zones控制資源的粒度比早期的一些技術(shù)細(xì)得多。它們允許管理員創(chuàng)建按CPU分配的資源池。為Zones分配這些資源池需要為Zones分配可用資源,無論這資源是一個專用的CPU還是幾個CPU組成的池。Zones甚至允許管理員把單個CPU的一部分分配給虛擬機(jī),以前這些方面需要使用Solaris資源管理器來控制。
Solaris 10里面的合理分配調(diào)度程序負(fù)責(zé)按比例從資源池分配資源給不同分區(qū)里面的不同容器。因而,不同容器的兩個分區(qū)可能會有不同的資源分配比重,以便按需要把更多資源分配給其中一個分區(qū),這樣管理員就可以高度控制資源利用率了。
與基于Solaris的所有產(chǎn)品一樣,Sun的工具集基本上也是基于命令行,這樣管理員就可以用腳本編寫資源分配和部署工具了。通過命令行創(chuàng)建容器和Zones是相當(dāng)簡單直觀的過程。除了這些工具外,Sun還提供名為Solaris容器管理器的另一個產(chǎn)品,該產(chǎn)品是N1管理工具集的一部分。這個添加到Sun管理中心的圖形用戶界面工具讓管理員可以跨多個主機(jī)系統(tǒng)來配置及管理容器。
Sun也承認(rèn),不能單單著眼于Solaris;它也一直致力于在x86系統(tǒng)上的容器里面提供與Linux二進(jìn)制代碼兼容的功能。迄今為止,這項功能仍處于初期階段,但Sun聲稱,運(yùn)行Linux應(yīng)用程序的Solaris容器獲得的速度實際上超過在Linux內(nèi)核上本地運(yùn)行的速度,這絕對是一個巧妙的手法。
容器是面向低中檔Sparc服務(wù)器的惟一的虛擬化方案,但Sun同樣經(jīng)銷用于Opteron系列上的VMware產(chǎn)品。即便如此,使用任何平臺的Solaris客戶關(guān)注容器將是明智之舉。容器無疑具有Sun的產(chǎn)品特點(diǎn):全面性和復(fù)雜性,而且具有穩(wěn)定的性能。
Virtuozzo迎合大量服務(wù)器環(huán)境
多個虛擬服務(wù)器在一個內(nèi)核上運(yùn)行,具有高性能和出色管理等優(yōu)點(diǎn)。
SWsoft公司的Virtuozzo能夠處理在一個主機(jī)系統(tǒng)上運(yùn)行的大量虛擬服務(wù)器,它有一套出色的管理工具和開放API,從而簡化了自動化管理。
Virtuozzo并不與VMware或者微軟的虛擬產(chǎn)品正面競爭,因為它不提供硬件仿真機(jī)制,不過這也讓它的擴(kuò)展性遠(yuǎn)勝于其他虛擬化產(chǎn)品,每個物理主機(jī)可望提供幾百個虛擬服務(wù)器。因此,Virtuozzo及基于主機(jī)的其他虛擬化產(chǎn)品的主要對象是大規(guī)模的Web和應(yīng)用主機(jī)托管環(huán)境及一些質(zhì)量保證應(yīng)用。Virtuozzo采用的方法類似Solaris 容器和BSD限制分區(qū)(BSD jail),原因就在于經(jīng)過改動的操作系統(tǒng)內(nèi)核的單一實例可以支持多個虛擬專用服務(wù)器(VPS)。面向Linux的Virtuozzo支持這款免費(fèi)操作系統(tǒng)的多個版本。它可以安裝在Red Hat、Fedora或者CentOS等平臺上,可以管理運(yùn)行任何這些Linux版本的VPS,包括Suse Linux Enterprise Server 9和Debian,不過它們都共享一個內(nèi)核。另一方面,面向Windows的Virtuozzo提供類似功能,但可以運(yùn)行Windows 2000/2003 VPS。
當(dāng)然,Virtuozzo的共享主機(jī)設(shè)計意味著,運(yùn)行在特定服務(wù)器上的每個VPS在操作系統(tǒng)內(nèi)核方面肯定有著同樣的基本配置。因此,需要應(yīng)用和服務(wù)運(yùn)行在VOS上將確定這種方案是否適合特定情形。
VPS在Virtuozzo下的性能相當(dāng)出眾,大多數(shù)情況下,開銷不到3%。
另外,Virtuozzo管理工具也極為全面。它們允許管理員定制每個虛擬服務(wù)器的細(xì)節(jié),并且監(jiān)控單臺服務(wù)器的性能,它們還提供了全面的報警和報告功能。因為Virtuozzo原本就是為了讓每個物理主機(jī)處理大量的VPS,所以管理工具也旨在處理大量的服務(wù)器版本以及應(yīng)用軟件的動態(tài)安裝。
要完成構(gòu)建20臺服務(wù)器的任務(wù),只要選擇預(yù)定義模板,然后指定起始IP地址及另外幾個全局配置選項,就這么簡單。20臺服務(wù)器可以在短短幾分鐘內(nèi)全部構(gòu)建完畢,即可使用?缍鄠VPS安裝應(yīng)用軟件同樣很簡單,只需要拖放操作。所有的應(yīng)用模板可通過Red Hat軟件包管理器(RPM)或者文件樹來構(gòu)建,這樣一來,構(gòu)建定制模板就非常簡單。用于把定制代碼與Virtuozzo后端程序集成的API也相當(dāng)全面,為實現(xiàn)VPS創(chuàng)建及改動的完全自動化提供了一條非常便捷的道路。
除了Virtuozzo商業(yè)產(chǎn)品外,SWsoft還支持開放源代碼版本的Virtuozzo:OpenVZ,該產(chǎn)品可以免費(fèi)下載。不過,該版本缺少Virtuozzo的優(yōu)秀管理工具。正是優(yōu)秀的管理工具使得Virtuozzo解決方案真正脫穎而出。
Xen 3.0讓準(zhǔn)虛擬化技術(shù)成為主流
開放源代碼hypervisor把虛擬化技術(shù)融入了操作系統(tǒng)內(nèi)核。
三年前Xen項目引起人們的注意之前,準(zhǔn)虛擬化(paravirtualization)聞所未聞。這項技術(shù)是指,經(jīng)過改動的操作系統(tǒng)把特權(quán)操作指令重定向至功能薄薄的“hypervisor”層,而不是直接把它們發(fā)送到CPU。特權(quán)操作指令是裸機(jī)代碼,負(fù)責(zé)調(diào)整虛擬內(nèi)存以及與設(shè)備之間進(jìn)行通信。這種方案的效率遠(yuǎn)遠(yuǎn)高于在CPU指令層截獲特權(quán)操作系統(tǒng)并加以重定向,而VMware、微軟虛擬服務(wù)器及基于硬件仿真的其他虛擬化解決方案都屬于后者。
Xen把自己植入到Linux源代碼樹里面,相當(dāng)于新的CPU架構(gòu)。如果你把Linux和作為目標(biāo)架構(gòu)的Xen一起編譯,最后就會得到準(zhǔn)虛擬化功能是內(nèi)置、而不是外掛的Linux。引導(dǎo)時,Xen小小的hypervisor在Xen Linux主機(jī)內(nèi)核加載前先加載。之后,只要一個簡單的命令即可啟動Linux、BSD、NetWare,或者經(jīng)過修改后作為Xen客戶運(yùn)行的其他少數(shù)主機(jī)操作系統(tǒng)。
Xen的一大優(yōu)點(diǎn)是,它詳細(xì)地介紹了物理系統(tǒng)遷移到虛擬系統(tǒng)(這個過程通常很麻煩)的方法:使用dd命令,把引導(dǎo)驅(qū)動器從另一個服務(wù)器拷貝到本地文件上,然后把Xen指向該文件,最后就可以引導(dǎo)虛擬機(jī)了。用不著尋求幫助。
盡管安裝及運(yùn)行簡單,但開放源代碼的Xen絕不是沒有多少特性的簡易方案。Xen客戶虛擬機(jī)運(yùn)行速度快,這還不足以描述其優(yōu)點(diǎn)。Xen的速度之快不僅僅體現(xiàn)在計算速度方面。衡量虛擬化性能的一個標(biāo)準(zhǔn)就是吞吐量,而Xen在這方面不負(fù)所望。存儲和網(wǎng)絡(luò)I/O速度飛快;說到存儲,Xen具有非同尋常的靈活性?蛻籼摂M機(jī)可以使用專用的驅(qū)動器或者陣列、現(xiàn)有驅(qū)動器上的專用分區(qū),或者安裝在主機(jī)上的其中一個文件系統(tǒng)上的磁盤鏡像文件。
Xen配置參數(shù)保存在文本文件中,其管理界面是一小組簡單的命令行指令。Novell正在為Xen開發(fā)GUI管理界面;不過要是服務(wù)器數(shù)量有限,Xen簡短、可編制腳本的單行命令在啟動、關(guān)閉、查詢虛擬機(jī)控制臺的狀態(tài)及連接到虛擬機(jī)控制臺等方面很出眾。把運(yùn)行中的虛擬機(jī)從一個物理服務(wù)器遷移到另一個(Virtual Iron和VMWare VirtualCenter等虛擬產(chǎn)品具有的一項特性)也是單行命令即可實現(xiàn)的;Xen聲稱,其實時遷移的速度最快。確實,遷移過程只需要幾分之一秒,在HTTP和SMTP(電子郵件)會話過程中幾乎注意不到。由于開銷很小,Xen可以完全用于維持高可用性。
XenSource網(wǎng)站聲稱,“Xen現(xiàn)在是、將來也一直是開放源代碼!毕鄬ι虡I(yè)軟件,開放源代碼項目往往需要作一番取舍:開放社區(qū)只有接受這種取舍,才能推廣開放源代碼運(yùn)動。但Xen不需要照顧和優(yōu)待才能獲勝。等Xen 3.0在今年第三季度交付,那既是開放源代碼項目的里程碑,又是得到贊助公司XenSource支持的商業(yè)企業(yè)解決方案,它將因為物有所值的優(yōu)點(diǎn)而成為開放源代碼項目的典范。
AMD和英特爾把虛擬化功能嵌入到芯片內(nèi)
如果軟件不必從事所有的繁重任務(wù),性能就會得到提升。
如今AMD和英特爾都提供了硬件輔助的虛擬化技術(shù),這不是什么技術(shù)突破,卻為今后取得技術(shù)突破拉開了帷幕。AMD的安全虛擬機(jī)(SVM)和英特爾的虛擬化技術(shù)(VT)表明CPU的設(shè)計理念及由此而來的架構(gòu)將會出現(xiàn)巨大變化。
AMD和英特爾都已力圖解決同一個問題,最終提出了相似但獨(dú)特的解決方案。問題就是落后的CPU架構(gòu)采用軟件虛擬化,從而帶來了龐大的開銷。解決方案就是讓CPU處理繁重任務(wù)。
這兩家芯片生產(chǎn)商采取的第一步都是先使各自的CPU能夠截獲并重定向改變系統(tǒng)狀態(tài)的請求。在單機(jī)單操作系統(tǒng)模式下,操作系統(tǒng)有權(quán)自行改變CPU、芯片組及外圍設(shè)備的狀態(tài)。這對實現(xiàn)高效虛擬化而言顯然是個障礙。如果對系統(tǒng)所作的改變不生效,客戶操作系統(tǒng)實例就會崩潰。維持這樣一個不切實際的單機(jī)主系統(tǒng)是實現(xiàn)虛擬化的沉重負(fù)擔(dān)。
需要的重要補(bǔ)救方法就是確保:沒有哪個操作系統(tǒng)能夠以阻止計算機(jī)與其他操作系統(tǒng)共享的方式改變系統(tǒng)狀態(tài)。軟件通過執(zhí)行特權(quán)指令來改變系統(tǒng)狀態(tài)。確認(rèn)及重定向這些指令屬于軟件虛擬化一部分最繁重的任務(wù),這也是AMD和英特爾決定首先要解決的問題。
如果操作系統(tǒng)基于SVM或者VT運(yùn)行,任何特權(quán)操作指令在完成之前都能被截獲、并被發(fā)送到由hypervisor建立的入口點(diǎn)。Hypervisor是“管理管理程序的管理程序”,它成了惟一持有及授予改變系統(tǒng)狀態(tài)這項特權(quán)的主體。譬如說,如果客戶要求映射一部分虛擬內(nèi)存的請求被截獲,hypervisor代碼就會交出早就為該客戶預(yù)留的一部分內(nèi)存,從而滿足這個請求。
在虛擬化服務(wù)器上,這類特權(quán)操作每秒執(zhí)行幾百次或者幾千次,因而你能想象得到,如果用軟件來處理,情形會相當(dāng)糟糕。英特爾和AMD把特權(quán)指令截獲功能嵌入到了CPU里面,并且為新指令添加了保存及恢復(fù)擴(kuò)展系統(tǒng)狀態(tài)(如果你愿意,也可以是操作系統(tǒng)實例上下文)的功能。VT和SVM的優(yōu)點(diǎn)不止這些,但截獲和上下文是最重要的優(yōu)點(diǎn)。
AMD充分利用了其AMD64架構(gòu)的優(yōu)點(diǎn),特別是CPU的板上內(nèi)存控制器。英特爾的內(nèi)存控制器在CPU外面,因而并不意識到VT。AMD64的板上內(nèi)存控制器已得到了升級,具有嵌套分頁功能(nested paging),從而為每個客戶實例提供了各自的內(nèi)存地址轉(zhuǎn)換表。英特爾的架構(gòu)需要客戶內(nèi)存地址轉(zhuǎn)換用軟件來實現(xiàn)。
兩者實施的虛擬化技術(shù)還有其他不同之處,AMD的功能遠(yuǎn)勝過英特爾的。不過,具有硬件加速功能的虛擬化解決方案一開始都會把目光鎖定這兩種技術(shù)之間的重疊之處。隨后,我們會看到為了利用AMD64改進(jìn)之處而專門開發(fā)的產(chǎn)品。 |