Xen和VMware 如何甄別兩種服務(wù)器虛擬化軟件
根據(jù)Gartner的預(yù)測,到2007年年底,《財富》前1000強中有30%左右的企業(yè),在部署Windows服務(wù)器時使用了一種關(guān)鍵的虛擬技術(shù)--分區(qū)。到2009年,那些沒有采用虛擬技術(shù)的企業(yè)將在IA(IntelArchitecture,英特爾架構(gòu))服務(wù)器上多支出25%的費用,而在RISC服務(wù)器上的額外支出也高達15%,這其中包括硬件、軟件、勞動力和占地空間等各方面的成本。
在傳統(tǒng)的典型IT架構(gòu)中,存在許多不合理之處,阻礙著現(xiàn)代企業(yè)的靈活性。由于應(yīng)用被捆綁在固定的平臺上,使得各項應(yīng)用擁有不同的平臺,需要有專用的、針對特定應(yīng)用的開發(fā)、測試、生產(chǎn)和災(zāi)難恢復(fù)環(huán)境,而且每個應(yīng)用環(huán)境都需按預(yù)計最大負載來構(gòu)建,彼此之間僅有較低的或根本沒有資源共享。
目前,在國內(nèi)企業(yè)數(shù)據(jù)中心,這一傳統(tǒng)架構(gòu)的缺點更加明顯,它們普遍根據(jù)需求隨時添加服務(wù)器設(shè)備,這些設(shè)備基本上都是分散的,具有不同品牌、不同配置,甚至架構(gòu)也不同,最致命的是在其上運行的應(yīng)用并不能充分利用服務(wù)器的所有資源,只用到15%~20%的服務(wù)器資源是普遍現(xiàn)象。使用虛擬化技術(shù)可以減少服務(wù)器數(shù)量的增加,簡化服務(wù)器管理,同時明顯提高服務(wù)器利用率、網(wǎng)絡(luò)靈活性和可靠性。將多種應(yīng)用整合到少量企業(yè)級服務(wù)器上即可實現(xiàn)這一目標。通過整合及虛擬化,數(shù)百臺服務(wù)器可以減少至數(shù)十臺;10%甚至更低的服務(wù)器利用率將提高到60%或更高,IT基礎(chǔ)設(shè)施的靈活性、可靠性和效率也將得到改進。而實施服務(wù)的虛擬化技術(shù),首先要面對的就是軟件選型。
VMware和Xen的結(jié)構(gòu)特點
目前Xen和VMware是市場上主流的兩大虛擬化產(chǎn)品。這兩大產(chǎn)品背后的架構(gòu)區(qū)別,將帶來不同的應(yīng)用體驗。
VMware
VMware有業(yè)界著名的虛擬機產(chǎn)品,其主打產(chǎn)品是VI3 (VMwareInfrastructure3)軟件套裝。VI3以其杰出的管理能力,受到了廣大數(shù)據(jù)中心的青睞。
在VMware中,最核心的軟件是 ESXServer。ESXServer直接安裝在裸機上,在硬件和操作系統(tǒng)之間形成一個虛擬化層。ESXServer將一臺物理服務(wù)器劃分為多個可移植的虛擬機環(huán)境。VMFS(VirtualMachine FileSystem)則是封裝ESXServer的存儲載體。ESX的虛擬層級實際上包裹了硬件,ESX創(chuàng)建了一個硬件接口層HardwareInterfaceLayer,所有虛擬機如果想跟硬件通信,必須經(jīng)過這個硬件接口層,完成諸如內(nèi)存偏移轉(zhuǎn)換的工作。這里需要強調(diào)的是,ESX的特點是完全包裹硬件,不允許程序直接訪問硬件。
當然,ESX只是VMware最基礎(chǔ)的技術(shù),VI3中其余的工具,用于完善虛擬化和可視化管理。其中,DRS(DistributedResourcedScheduler)可以將多個ESXServer資源合并為群集,同時,按照假定所有資源都在一臺主機上的方法,簡單管理群集。VirtualSMP可以讓單個虛擬機同時使用多個處理器。VMwareVmotion可以使虛擬機從一臺物理服務(wù)器遷移到另一臺物理服務(wù)器,遷移過程中不用宕機。此外,它也提供虛擬的雙機熱備和集成備份等功能。最后,所有虛擬化復(fù)雜的管理,都可以由VirtualCenter虛擬中心控制臺輕松完成。
Xen
VMM(VirtualMachineMonitor)是由劍橋大學(xué)計算機實驗室開發(fā)的一個開源項目,它能夠讓我們創(chuàng)建更多虛擬機,每一個虛擬機都是運行在同一個操作系統(tǒng)上的實例。
這些客戶OS可以是修補過的Linux2.4或2.6內(nèi)核,也可以是修補過的NetBSD/FreeBSD內(nèi)核。用戶應(yīng)用程序就運行在這些客戶OS上,并不需要修改任何代碼。但是,隨著將來的處理器能支持虛擬化的特性,內(nèi)核也就不需要打補丁了。比如Intel的VT和AMD的Pacifica處理器都將包括這種功能。
在Xen中,"系統(tǒng)管理程序"運行在0環(huán),客戶OS運行在1環(huán),應(yīng)用程序運行在3環(huán)。這種關(guān)系對于x64有一點不同,就是客戶內(nèi)核和應(yīng)用程序都運行在3環(huán)上。
Xen自稱為"系統(tǒng)管理程序",是因為它比客戶OS所需的系統(tǒng)管理代碼運行的特權(quán)級還高。當系統(tǒng)引導(dǎo)的時候,Xen裝載到0環(huán)的內(nèi)存中。它在1環(huán)上啟動修補過的內(nèi)核,稱做domain0(domain是指一個運行中的虛擬機,在其上有一個guestOS在執(zhí)行)。從這個domain開始,可以創(chuàng)建更多的domain,也可以銷毀它們,還可以進行domain遷移、設(shè)置參數(shù)等。系統(tǒng)創(chuàng)建的那些domain也運行在1環(huán)內(nèi)核中,用戶應(yīng)用程序運行在3環(huán)。
目前,修補過的Linux 2.4和2.6內(nèi)核可以作為domain0。據(jù)Xen開發(fā)者所說,將來domain0僅支持2.6的內(nèi)核補丁。構(gòu)造domain0的大部分工作是在Xen/arch/x86/domain_build.c中的construct_dom0()方法中實現(xiàn)的。物理設(shè)備驅(qū)動程序只能運行在特權(quán)級,也就是domain0上。Xen依靠Linux或其他修補過的OS內(nèi)核對它所管理的設(shè)備提供虛擬化支持。這樣的好處就是Xen的開發(fā)者不必再去開發(fā)設(shè)備驅(qū)動程序。在一個有標簽TLB的處理器上使用Xen能夠大大提高性能。標簽TLB能夠把ASID(AddressSpaceIdentifier)放在TLB入口處。有了這個特性,當處理器在系統(tǒng)管理程序和客戶OS之間切換時就不需要刷新TLB了,這大大減少了系統(tǒng)開銷。
最大區(qū)別體現(xiàn)在對I/O設(shè)備的處理上
VMware
ESX服務(wù)器的架構(gòu)是建立在直接執(zhí)行(直接在硬件上運行用戶級的虛擬機編碼)和二進制譯碼(對特權(quán)級別編碼進行動態(tài)編譯)的基礎(chǔ)上,從根本上說,它是把一個完整的x86平臺導(dǎo)出到虛擬機上。ESX服務(wù)器可以使大多數(shù)能在x86上執(zhí)行的操作系統(tǒng)都能在虛擬機上運行,而不需要進行任何修改。
Xen
的架構(gòu)中使用了一種虛擬化技術(shù)(Virtualization),對虛擬出來的客戶操作系統(tǒng)(GuestOS)進行修改,使它知道自己是在虛擬環(huán)境下運行。
這兩種方式最大的不同就是對I/O設(shè)備的處理。虛擬機I/O端口和每個物理I/O端口設(shè)備之間如何路由在很大程度上影響了虛擬平臺架構(gòu)的性能,以及便攜性、可持續(xù)性和穩(wěn)定性。Xen采用的是分離驅(qū)動模式,真實驅(qū)動存在于一個中間層,這個中間層叫服務(wù)虛擬機,其他虛擬機上的特殊驅(qū)動通過這個服務(wù)虛擬機進行通信。這種方法能提供很好的性能,但是對于傳統(tǒng)操作系統(tǒng)支持有限。
在ESX中,虛擬機的虛擬設(shè)備驅(qū)動與ESX內(nèi)核里的物理設(shè)備驅(qū)動直接相互連接。ESX虛擬機可以為其虛擬設(shè)備使用現(xiàn)成的(off-the-shelf)驅(qū)動。這不僅能提供高性能,還能提供更廣泛的操作系統(tǒng)支持。然而在這個模型里,新的設(shè)備驅(qū)動必須導(dǎo)入到ESX內(nèi)核中。為了解決I/O虛擬化的平衡問題和復(fù)雜性問題,戴爾與英特爾、AMD這樣的合作伙伴以及外設(shè)硬件供應(yīng)商一起,在芯片組和I/O設(shè)備中引入了虛擬化支持。
企業(yè)級虛擬化解決方案的另外一個重要部分就是管理。戴爾Open-Manage這樣的產(chǎn)品附送VMwareVirtualCenter、P2V和VMIm-porter,提供了整套工具,能有效進行部署、監(jiān)控、操作自動化,以及對虛擬IT數(shù)據(jù)中心進行管理。Novell和RedHat都在它們的操作系統(tǒng)中整合了對Xen平臺的管理,方法是運用像YaST和Anaconda這樣的安裝和配置工具,以及VirtualMachineManager這樣的管理工具。
服務(wù)器虛擬化管理解決方案
通過VMware虛擬化技術(shù),某企業(yè)信息中心將一臺物理服務(wù)器分割成多個相互隔離獨立的"虛擬環(huán)境"(以下簡稱VM),確保各部門間的應(yīng)用及數(shù)據(jù)完全隔離,增強了服務(wù)器的利用率。
1. 利用虛擬化技術(shù)進行服務(wù)器整合,全面提高服務(wù)保障水平。
2. 利用虛擬化技術(shù)進行統(tǒng)一管理維護,極大降低了管理工作量。
服務(wù)器整合改變了基礎(chǔ)設(shè)施的復(fù)雜現(xiàn)狀,允許管理人員使用VMware集中管理控制臺對多臺服務(wù)器進行集中管理。同時各部門也可以利用VMware用戶控制面板對單個VM進行管理維護,進行諸如啟動、停止、重啟、備份、恢復(fù)及遠程重新安裝等各種管理操作。VMware虛擬化技術(shù)強大、靈活的集中管理模式將使管理員從簡單機械的重復(fù)操作(如重裝系統(tǒng))中解脫出來,極大地降低了管理工作量。
3. 降低單點故障,提高服務(wù)保障水平。
服務(wù)器合并后降低了所需要管理的物理服務(wù)器數(shù)目,降低了單點故障率,與之對應(yīng)的是管理、維護工作量的極大下降。信息中心的管理人員可以有更多時間管理有限的幾臺服務(wù)器,確保所有應(yīng)用服務(wù)全天候正常運轉(zhuǎn),從而提高了服務(wù)保障水平。
4. 提高資源利用率,改善資源分配。
利用VMware虛擬化技術(shù),信息中心可以按照不同應(yīng)用所需的不同資源,動態(tài)地對物理服務(wù)器進行虛擬分區(qū),提供最合適的虛擬環(huán)境(即VM),極大地提高了每臺服務(wù)器的利用率,也使得資源分配更加合理。虛擬環(huán)境的大量使用,改變了以往在單臺服務(wù)器上只能部署單個應(yīng)用的弊病,而利用虛擬環(huán)境(VM)的安全隔離特性,完全實現(xiàn)了應(yīng)用程序隔離的目的,最大程度地保障了多用戶環(huán)境下的數(shù)據(jù)安全。
5. 降低備份/恢復(fù)的成本。
方案部署后,所有應(yīng)用全部運行在虛擬環(huán)境(VM)中,完全實現(xiàn)了軟硬件的隔離。VMware還真正實現(xiàn)了零宕機遷移技術(shù),可將遷移工作對業(yè)務(wù)的影響降低為零。無需使用昂貴的專用存儲設(shè)備,僅采用備份現(xiàn)有虛擬環(huán)境(VM)或進行VM整體遷移,就可以實現(xiàn)高質(zhì)量備份/恢復(fù)方案。
通過部署VMware虛擬化技術(shù),信息中心改善了基礎(chǔ)設(shè)施的管理方式,極大降低了管理工作量,節(jié)約了服務(wù)器管理和維護成本。除了降低單點故障可能性外,還緩解了因資源利用率不高而導(dǎo)致的整體資源緊張問題,增強了數(shù)據(jù)安全性和災(zāi)難恢復(fù)能力。
虛擬化一路走來
盡管虛擬化技術(shù)只是在近年才變得火爆,但是虛擬化卻有著悠久的歷史。早在20世紀60年代,IBM公司就發(fā)明了一種操作系統(tǒng)虛擬機技術(shù),允許用戶在一臺主機上運行多個操作系統(tǒng),讓用戶盡可能地充分利用昂貴的大型機資源。
最早使用虛擬化技術(shù)的是IBM 7044計算機。此后,IBM在20世紀60年代還開發(fā)了型號為Model67的System/360主機。Model67主機通過虛擬機監(jiān)視器(VirtualMachineMonitor)虛擬所有的硬件接口。1965年,IBM公司的"M44/44X"計算機項目,定義了虛擬內(nèi)存管理機制,用戶程序可以運行在虛擬的內(nèi)存中,對于用戶來說,這些虛擬內(nèi)存就好像一個個"虛擬機",為多個用戶的程序提供了獨立的計算環(huán)境。
IBM提出的虛擬機技術(shù),使一批新產(chǎn)品涌現(xiàn)出來,比如IBM360/40、IBM360/67以及VM/370,這些機器在當時都具有虛擬機功能,通過一種叫VMM(虛擬機監(jiān)控器)的技術(shù)在物理硬件之上生成了很多可以運行獨立操作系統(tǒng)軟件的虛擬機實例。
由于虛擬化技術(shù)在商業(yè)應(yīng)用上的優(yōu)勢,RISC(精簡指令集計算機)服務(wù)器與小型機成了虛擬化技術(shù)第二代受益者。1999年,IBM公司在AS/400上提出了上"邏輯分區(qū)(LPAR)"技術(shù)和新的高可用性集群解決方案。在POWER管理程序上運行的AS/400LPAR,令單臺服務(wù)器工作起來如同12個獨立的服務(wù)器。而在2002年,IBM的虛擬化技術(shù)又前行一步,其AIX5Lv5.2首次包括了IBM實現(xiàn)的動態(tài)邏輯分區(qū)(DLPAR)。DLPAR允許在無需重啟系統(tǒng)的情況下,將包括處理器、內(nèi)存和其他組件在內(nèi)的系統(tǒng)資源分配給獨立的分區(qū)。這種在不中斷運行的情況下進行資源分配的能力不僅令系統(tǒng)管理變得更加輕松,而且因為能夠更好地使用資源而幫助降低總擁有成本。
不過,盡管惠普、Sun公司也跟隨IBM在自己的RISC服務(wù)器上提供了虛擬化技術(shù),但由于真正使用大型機和小型機的用戶還是少數(shù),加上各家產(chǎn)品和技術(shù)之間并不兼容,虛擬化技術(shù)仍舊不太被公眾所關(guān)注。而現(xiàn)在,虛擬化技術(shù)的發(fā)展已經(jīng)惠及到了x86處理器架構(gòu)。
此前,虛擬化技術(shù)在x86架構(gòu)上進展緩慢的主要原因是x86架構(gòu)本身不適合進行虛擬化,不過這個障礙已經(jīng)由英特爾、AMD修改,x86處理器的指令集得到解決;還有一個原因是x86處理器的性能不足,也隨著x86處理器在性能上的飛速提高得到了解決。由于x86架構(gòu)的廣泛普及,x86架構(gòu)上的虛擬化技術(shù)得到了比以前更大的關(guān)注。
x86平臺上虛擬化技術(shù)的實現(xiàn),首次向人們展示了虛擬化應(yīng)用的廣闊前景,因為x86平臺可以提供便宜的、高性能和高可靠性的服務(wù)器。更重要的是,一些用戶已經(jīng)開始配置虛擬化的生產(chǎn)環(huán)境,他們需要得到新的管理工具,從而隨著虛擬化技術(shù)的發(fā)展而得到更大的收益。
不過,與已經(jīng)有多年歷史的Unix服務(wù)器、大型主機上的虛擬化技術(shù)相比,x86服務(wù)器上的虛擬化仍舊處于早期階段--根據(jù)英特爾的藍圖,在處理器當中集成硬件輔助虛擬化指令只是IA平臺上的第一步;而在第二步則要實現(xiàn)I/O(輸入輸出)方面的虛擬化,直到最后實現(xiàn)整個IA平臺的虛擬化。也就是說,目前的x86平臺上,僅僅能夠?qū)崿F(xiàn)在處理器級別的虛擬化,在I/O以及其他方面的虛擬化還需要進一步發(fā)展。不僅如此,x86架構(gòu)上的虛擬化技術(shù)還無法完美實現(xiàn)虛擬分區(qū)之間動態(tài)遷移,而這些功能在Unix平臺、大型主機上早已不是問題。目前,x86架構(gòu)上的虛擬化技術(shù)的最高規(guī)劃是支持8路SMP(對稱多處理)系統(tǒng),可以實現(xiàn)對單個CPU資源的配置。
自2006年以來,從處理器層面的AMD和英特爾到操作系統(tǒng)層面的微軟的加入,從數(shù)量眾多的第三方軟件廠商的涌現(xiàn)到服務(wù)器系統(tǒng)廠商的高調(diào),我們看到一個趨于完整的服務(wù)器虛擬化的產(chǎn)業(yè)生態(tài)系統(tǒng)正在逐漸形成。這也使得在過去一兩年時間里,虛擬化開始成為廣受關(guān)注的熱點話題。整體看來,隨著計算機新技術(shù)的飛速發(fā)展,虛擬化的前景和一年前相比幾乎徹底改變了,新的虛擬化平臺前景十分樂觀。
【編輯推薦】