摘 要:隨著計算機技術的發展,服務器虛擬化技術已經被越來越多的企業所采用,使用這種技術可以大大提高服務器的使用效率。文章中主要介紹了兩種虛擬化軟件Vmware和Xen的結構特點,并分析了它們之間的區別。
關鍵詞:服務器虛擬化 Vmware Xen
虛擬化將主宰未來的企業,在現在的國內,企業數據中心都是根據需求隨時添加服務器設備,這些設備基本上都是分散的,不同品牌、不同配置甚至不同架構,最致命的是,在其上運行的應用并不能夠充分利用服務器所有的資源,占用到15%—20%的服務器資源是一個普遍現象,而使用虛擬化技術可以減少服務器數量的增加,簡化服務器管理,同時明顯提高服務器利用率、網絡靈活性和可靠性。將多種應用整合到少量企業級服務器上即可實現這一目標。通過整合及虛擬化,數百臺服務器可以減少至數十臺。10%甚至更低的服務器利用率將提高到60%或更高,IT基礎設施的靈活性、可靠性和效率也將得到改進。由此可見虛擬化技術成為各個企業和研究機構的重要課題。下面簡單介紹一下兩種虛擬化軟件及其區別。
一、VMware
VMware是業界著名的虛擬機產品,它有VMware Workstation、VMware GSX Server、VMware ESX Server等系列產品。VMware的VMM可以有兩種結構形式,即Standalone和Hosted。Standalone的結構形式是指,VMM作為一層直接運行在硬件平臺上的軟件層,在它上面可以創建和管理多個客戶虛擬系統。這種結構的VMM有點像一個操作系統,它包含硬件平臺的驅動,受到硬件平臺種類的限制。它適合于服務器的應用環境,其典型的產品是VMware ESX Server。
Hosted結構的VMM作為操作系統的一個應用程序運行,它可以利用操作系統自身的內存管理、CPU調動、硬件驅動和資源管理。VMware Workstation使用的是Hosted的結構,是設計來讓一些應用程序,比方軟件的研發或測試程序來執行,同時Server版本的目標則針對數據庫以測試軟件更新、簡化應用程序的提供,或使用虛擬的設備等功能。ESX Server可以藉由不使用操作系統來大量增加效能。相反的,ESX使用自己設計的操作系統核心,可以直接在計算機上執行。這個方法可以同時支持更多的虛擬服務器,但ESX核心支持的硬件并不多。
由于VMware的目標平臺是x86平臺,因此,它也同樣面臨著x86平臺不完全支持虛擬化的問題。VMware的解決方法是其專利技術,在需要VMM參與的地方,動態重寫部分虛擬系統的指令,使其可以trap到VMM。
此外,VMware還有Virtual Center。VMotion應用在IBM Blade Center刀片服務器上,使之具備更好的彈性和可用性,結合刀片服務器的模塊化和可擴展性,可以增加內存和I/O能力的擴展比例,混合刀片間的工作負載均衡。Virtual Center采用集中式管理,可以監控系統的可用性及性能,并可以自動告警,SDK與現有管理工具整合,通過穩定的訪問控制保證系統安全。VMotion技術使用戶在保持連續的服務可用性的同時,還可以將實時運行企業用戶關鍵業務的虛擬機,從一臺物理主機轉移到另一臺物理主機,并動態獲得每臺物理服務器資源的極佳利用率、零宕機維護、快速重新配置,以及持續的工作負載整合能力。
二、Xen
Xen VMM(Virtual Machine Monitor)是由劍橋大學計算機實驗室開發的一個開源項目,它能夠讓我們創建更多的虛擬機,每一個虛擬機都是運行在同一個操作系統上的實例。
這些客戶OS可以是修補過的Linux內核2.4或2.6,也可以是修補過的NetBSD/FreeBSD內核。用戶應用程序就運行在這些客戶OS上,并不需要修改任何代碼。但是,隨著將來的處理器能支持虛擬化,內核也就不需要打補丁了。比如說,Intel的VT和AMD的Pacifica處理器都將包括這種支持。
在Xen中,一個“系統管理程序”運行在0環,客戶OS運行在1環,應用程序運行在3環。這種關系對于x64/64有一點不同,就是客戶內核和應用程序都運行在3環上。
Xen自身被稱為“系統管理程序”,是因為它比客戶OS的系統管理代碼運行所需的特權級還高。
當系統引導的時候,Xen被裝載到0環的內存中。它在1環上啟動修補過的內核,這被稱作是domain 0(注:domain是指一個運行中的虛擬機,在其上有一個guest OS在執行)。從這個domain開始,你可以創建更多的domain,也可以銷毀它們,還可以進行domain的遷移、設置參數等等。你創建的那些domain也運行在1環它們的內核中。用戶應用程序運行在3環。
目前,修補過的Linux內核2.4和2.6可以作為domain 0。據Xen開發者所說,將來domain 0僅支持2.6的內核補丁。構造domain 0的大部分工作是在xen/arch/x86/domain_build.c中的construct_dom0()方法中實現的。
物理設備驅動程序只能運行在特權級,也就是domain 0上。Xen依靠Linux或其它修補過的OS內核對它所有的設備提供虛擬化支持。這樣的好處就是Xen的開發者不必再去開發設備驅動程序。
在一個有標簽TLB的處理器上使用Xen能夠大大提高性能。標簽TLB能夠把ASID(Address Space Identifier)放在TLB入口處。有了這個特性,當處理器在系統管理程序和客戶OS之間切換時就不需要刷新TLB了,這大大減少了系統開銷。
三、兩者主要區別
目前Xen和VMware是市場上主流的兩大虛擬化產品。現在我就來談談這兩大產品背后的架構有什么區別,以及這一技術在未來會如何發展。VMware ESX服務器的架構是建立在直接執行(直接在硬件上上運行用戶級的虛擬機編碼)和二進制譯碼(對特權級別編碼進行動態編譯)的基礎上的。從根本上說,它把一個完整的X86平臺導出到虛擬機上,ESX服務器可以使大多數能在X86上執行的操作系統都能在虛擬機上運行,而不需要進行任何修改。Xen的架構中使用了一種叫Para虛擬化技術(Para Virtualization),對虛擬出來的客戶操作系統(Guest OS)進行修改,使它知道它是在虛擬環境下運行。
那么這兩種方式有什么不同呢?最大的不同就是對輸入/輸出(I/O)設備的處理。虛擬機I/O端口和每個物理I/O端口設備之間如何路由在很大程度上影響虛擬平臺架構的性能、便攜性、可持續性和穩定性。Xen采用的是分離驅動模式,真實驅動存在于一個中間層,這個中間層叫服務虛擬機,其他虛擬機上的特殊驅動通過這個服務虛擬機進行通訊。這種方法能提供很好的性能,但是對于閉源和傳統操作系統支持有限。在ESX中,虛擬機的虛擬設備驅動與ESX內核里的物理設備驅動直接相互連接。ESX虛擬機可以為其虛擬設備使用現成的(off-the-shelf)驅動。這不僅能提供高性能,還能提供更廣泛的操作系統支持。然而在這個模型里,新的設備驅動必須要導入到ESX內核中。為了解決I/O虛擬化的平衡問題和復雜化問題,戴爾與英特爾、AMD這樣的合作伙伴以及外設硬件供應商們一起,在芯片組和I/O設備中引入了虛擬化支持。企業級虛擬化解決方案的另外一個重要部分就是其管理。戴爾OpenManage這樣的產品附送VMware Virtual Center、P2V 和VM Importer,提供了整套工具,能有效進行部署、監控、操作自動化,以及對虛擬IT數據中心進行管理。Novell和Red Hat都在它們的操作系統中整合了對Xen平臺的管理,方法是運用像YaST和Anaconda這樣的安裝和配置工具以及Virtual Machine Manager這樣的管理工具。
四、虛擬化技術的未來
資訊科技及通訊業研究權威Gartner估計,由現在至2010年間,虛擬化將會是資訊基建及營運領域中最重要的技術,并會徹底改變資訊科技部門管理、采購、部署、規劃,以及其所提供服務的收費模式。虛擬化目前不再只著重技術,而是更加著重企業內的流程改變及文化變遷。虛擬化可讓服務以另一種模式提供。每個經虛擬化的層面都可作獨立的管理,或甚至由他人所掌管,例子包括串流式應用或員工所擁有的個人計算機一樣。這一切均要求企業文化作出重大改變。
參考文獻:
[1]郭庭廷,吳瑋.揭開虛擬化神秘面紗[J].機械工業信息與網絡,2007,(03).
[2]成凱.透視虛擬化技術[J].軟件世界,2007,(11).
[3]伍班權.虛擬化技術及其發展[J].辦公自動化,2007,(12).
[4]楊曉偉.基于Xen的X86虛擬機性能調優[J].計算機工程,2006,(24).
[5]劉志平.基于VMware虛擬網絡的構建[J].內蒙古大學學報(自然科學版),2007,(01).
[6]趙祖蔭.基于VMware軟件的虛擬計算機的構建方法[J].微型電腦應用,2004,(06).