在我們開始這一番評比之前,有必要來一次憶舊活動。自2004年以來,澳大利亞獨立實驗室Enex TestLab就開始測評虛擬化技術,為雜志刊物以及組織機構測評各種版本的虛擬化技術。在這段期間,許多概念已經進化到了更先進的水平,虛擬化市場也已趨成熟。在那段早期時代,市場上其實只有一個開路先鋒:VMware。
但是微軟等廠商很快加入了VMware的行列,開源社區加大力度開發出了Xen虛擬機管理程序,最終被思杰公司收購。作為Sun(現歸屬甲骨文)的一款解決方案,VirtualBox不斷演變,用戶仍能獲得采用開源許可證的基本軟件包。
今天,市面上有多種類型的虛擬化解決方案,有時混為一談。非常基本的基于本地系統的應用程序虛擬化是指,應用程序實際上被分隔開來,單獨運行。早期支持這項技術的廠商包括AppSense和Sun。這種應用程序相互獨立的虛擬化其主要優點是安全、便于開發以及與平臺獨立。這項技術非常適合處理能力很弱的計算環境。
桌面虛擬化緊隨其后,讓企業能夠真正控制其標準操作環境(SOE)、管理許可證。它還通過更集中的命令和控制功能,全面改進了補丁管理。這也是微軟等廠商孜孜以求的終極目標之一,并且得到了英特爾及其博銳(vPro)嵌入式技術的支持。
接下來就是服務器虛擬化,架構師和管理員們其實借助這項虛擬化技術,把服務器應用程序與底層硬件脫離開來。它大大提高了數據中心的可靠性和穩健性,還能夠獲得冗余性、可移植性、可擴展性、可用性等等。
在本文中,我們盤點市面上常見的虛擬化廠商,并且列出了每家廠商的優點、缺點和結論。與VMware鼎足而立的有思杰、微軟和甲骨文這三大廠商。
思杰XenServer 6.0.201
思杰一直在前一個版本XenServer 5.6的基礎上竭力改進其功能和易用性,目的在于取代VMware。在一些方面,它也讓微軟的Hyper-V相形見絀。
思杰XenServer 6.0.201
XenServer 6.0.201現在的大小只有658MB(位于安裝光盤上)。雖然它比Server 2008 Hyper-V小巧得多,但是仍比VMware的vSphere龐大得多,不過你也要考慮到安裝光盤里面還有虛擬機管理程序和XenCenter管理實用工具。一旦你開始添加額外的VMware組件,你會發現思杰XenServer 6.0.201實際上是三者當中最精簡的。
另外值得一提的是,XenServer對其虛擬機管理程序采取的方法與微軟和VMware相比大不一樣。后兩者主要使用專有的驅動程序和抽象層,而XenServer可與硬件和現有的驅動程序協同運行,從而簡化和加快虛擬機管理程序與物理硬件的交互。
比如說,XenServer控制域充分利用了標準的開源設備驅動程序,這應該會帶來更廣泛的硬件支持(不過由于缺少與其他廠商在驅動程序加固及/或打補丁方面的協作,這有可能是個缺點)。另一個例子是,XenServer使用原生的存儲文件系統,而不是使用專有文件系統;虛擬機快照請求直接卸載到存儲區域網絡廠商的API(應用編程接口)。
需要兩個獨立的物理設備來運行XenCenter應用程序和XenServer主機。XenCenter機器需要微軟Windows操作系統:Windows 7、Windows XP、Windows Vista、Windows Server 2003、Windows Server 2008或Windows Server 2008 R2(各種版本均可)。
安全很方便。它是三款虛擬機管理程序當中安裝起來最容易、最輕松的。同一只安裝光盤還可用于把XenCenter管理控制臺裝入到基于Windows的PC上。
值得稱贊的是,XenCenter用起來容易得很,還有一個非常整潔的界面;我們認為,它比Hyper-V或VMware更易于使用。創建、備份和復制虛擬機小菜一碟,為集群添加其他主機服務器、生成性能統計信息同樣也是如此。
主機方面的硬件規格與Hyper-V大同小異——限制指南表明,一個主機機器上最多支持130個邏輯處理器,但是這取決于物理處理器的類型和1TB內存。另一方面,虛擬機內存方面比Hyper-V好一點,但是仍落后于VMware面向Windows的128GB。物理圖形處理器(GPU)也可以分配給虛擬機,所以訪客可充分利用GPU指令,這非常適用于通過虛擬桌面交付三維圖形應用程序。
每個集群最多只能有16個節點;支持多達800個虛擬機和虛擬機之間的動態內存分配。
版本6改進了訪客操作系統的支持,包括Ubuntu 10.04(32位/64位);更新了對Debian Squeeze 6.0(64位)、甲骨文企業級Linux 6.0(32位/64位)和SLES 10 SP4(32位/64位)的支持;以及面向CentOS 6.0(32位/64位)、Ubuntu 10.10(32位/64位)和Solaris 10的試驗型虛擬機模板。
虛擬網絡方面的改進體現在分布式虛擬交換。萬一虛擬交換機控制器(vSwitch Controller)出現故障,一種新的故障保險模式讓跨服務器專用網絡(Cross-Server Private Networks)、訪問控制列表(ACL)、服務質量(QoS)、遠程交換端口分析儀(RSPAN)和NetFlow等設置可以繼續應用于運行中的虛擬機。
提供了內存過量分配功能,名為動態內存控制(DMC),這是一種“氣球技術”(ballooning)操作,只出現在XenServer高級版或更高版本。氣球技術是指當虛擬機管理程序所用的內存快耗盡時,它會設定目標頁面,氣球驅動程序就會“擴充”到該目標頁面,從而在虛擬機里面建立人為的內存壓力,并引起操作系統鎖定內存頁面,或者把它們推送到頁面文件。不過,它不如VMware的內存管理功能來得成熟。后者使用三種機制來管理內存:透明頁面共享(TPS)、氣球技術和壓縮。
思杰有一項強大的配置服務,讓服務器的工作負載可以通過單一共享磁盤鏡像來實時配置和重新配置。這為管理員們簡化了操作,因為他們只需要給主鏡像打補丁。動態工作負載流技術特別有用,因為可以滿足峰值負載期間,甚至從測試環境遷移到生產環境的需要。
容錯功能得到了很好的支持;萬一主機出現了故障,虛擬機可以在另一臺服務器上自動重啟。或者需要的話,虛擬機可以在另一個主機上映射,實現無縫的故障切換。可以對虛擬機快照進行預定和歸檔,但是高可用性功能只出現在XenServer高級版或更高版本上。
對于使用XenDesktops以及IntelliCache的企業環境而言,或者對于通過高可用性功能來保護的虛擬機而言,存在這個限制:每個主機上最多只有50個虛擬機或XenDesktop虛擬機。
XenServer能夠實現負載均衡,它支持兩種優化模式。性能優化(Performance Optimisation)確保能夠保持最低性能級別,而密度優化(Density Optimisation)把虛擬機放在最小數量的主機上。
與其他思杰產品一樣,獨立許可服務器的需求仍然適用于XenServer。把虛擬機和主機與許可服務器斷開的“寬限期”功能(未收到來自許可服務器的5分鐘心跳消息)允許在不重新連接的情況下,繼續保持長達30天的操作。
為了確保跨物理主機實現無縫簡單的遷移,XenServer還支持虛擬網絡交換。
微軟Windows Server 2008 R2 SP1 Hyper-V
微軟一直在奮力追趕VMware和思杰,而最新版本的Hyper-V無疑加大了作為強有力競爭者的籌碼。不過,它是個龐大的安裝版本;幾乎占用3GB的空間(完全服務器安裝所占的空間多達10GB),而另外兩款虛擬化技術以Linux作為基礎,可輕松放在一張光盤上(至少對基本的虛擬機管理程序來說是這樣)。
微軟Windows Server 2008 R2 SP1 Hyper-V
微軟的方法是安裝Windows Server 2008 R2,然后把Hyper-V作為一個角色(Role)來安裝,這其實是相當簡單的過程。Hyper-V管理器易于啟動,它有簡單而合理的布局。創建和配置虛擬機也很容易,你想執行的任何操作幾乎都可以通過這個管理器來完成。不過在龐大集群中,Hyper-V管理器完全心有余而力不足;你無法在批處理模式下自動管理或運行任務,所以要有頻繁用鼠標點擊的心理準備。
為了消除管理大型基礎設施的麻煩,使用微軟System Center虛擬機管理器(MSCVMM)是個辦法。它不需要處理重復任務。捎帶提一下,MSCVMM還能管理VMware的ESX Server。
Hyper-V功能豐富,不過在一些情況下,它確實不如最新版本的ESXi。比如說,每個主機最多只有64個物理處理器和512個虛擬處理器(vCPU),而ESXi為每個主機支持最多160個邏輯處理器和2048個虛擬處理器。
虛擬機對虛擬處理器的支持自然依賴操作系統,但每個虛擬機最多只支持四個虛擬處理器。
處理器兼容模式讓虛擬機可以跨硬件遷移,物理主機可能有不同的處理器架構。這一功能是Hyper-V新增的;在前一個版本中,主機擁有的處理器架構必須一模一樣;這意味著,你可以從英特爾主機遷移到英特爾主機,或者從AMD主機遷移到AMD主機,但是無法從英特爾主機遷移到AMD主機。
每個主機支持的物理內存相當大,達到1TB;但是每個虛擬機支持的最大物理內存只有64GB。不過,Hyper-V確實擁有動態內存功能:可以指定最大內存和最小內存;根據虛擬機的需要,分配的內存可以增加或減少。還可以為虛擬機賦予優先級,那樣當主機開始耗盡物理內存時,就可以根據虛擬機優先級,減少分配給虛擬機的內存。
Hyper-V集群的大小僅限于故障切換集群中的16個節點,每個物理機最多有1000個虛擬機和384個虛擬節點。不管物理集群大小如何,每個節點可以允許的最大虛擬機數量不會變化。
訪客操作系統包括Windows和諸版本的SUSE、紅帽及CentOS;其他版本的Linux不受支持;但據說許多版本的Linux可以順暢運行,沒有任何問題。
高可用性需要在部署期間確認“通過Windows認證”測試——這在很大程度上需要硬件節點在操作系統版本、處理器系列和接口(如網絡和主機適配器)等方面的規格一模一樣。服務器還必須是活動目錄域的成員,這勢必在活動目錄架構的某個地方要有域控制器。
“實時遷移”功能離不開Win2K8R2新增的集群共享卷(CSV),建議使用專用網絡用于遷移。除此之外,還需要使用專用網絡用于內部集群通信、單獨的虛擬網絡配置和單獨的存儲網絡。
虛擬網絡采用標準的虛擬交換方法,操作系統網絡堆棧分離開來,以便獲得更高的吞吐量,不過輸入/輸出性能將取決于試圖與外界通信的虛擬機數量。
至于負載均衡服務,就需要標準的微軟網絡負載均衡(NLB)組件,其配置方式與物理節點一模一樣。
通過Hyper-V管理器添加“快照”(snap shotting)功能使得這款微軟產品的成熟性有了一定的提高,該產品擁有拍攝和管理快照,并將快照重新部署到活動虛擬機所需的全部功能。雖然可以通過快照功能中的腳本編制來實現自動化,但是它主要用于測試和開發環境,而不是很適合事務型生產基礎設施——肯定不該將其認為是生產環境中唯一的災難恢復(DR)解決方案。
VMware vSphere ESXi 5
VMware是虛擬化領域的行家里手,所以在網上看一下其產品就會讓你暈頭轉向,因為那里有一系列廣泛的應用程序。毫無防備的人會掉入的一個陷阱是,描述的一些功能并不出現在標準產品上;它們需要另外購買,才能增添你可能需要的額外功能。
VMware vSphere ESXi 5
對許多人來說,vSphere ESXi是佼佼者,其他廠商是完全在奮力追趕。雖說VMware確實有一款適合、各種場景的產品,但是就適合特定基礎設施和場景的功能而言,其他廠商的產品中有一些可以說再合適不過了。
比如說,VMware安裝起來不如XenServer來得容易,但是仍然比較快捷、輕松。主機服務器上隨后出現的界面是純粹的Linux命令行接口(CLI);為了便于遠程管理主機,必須在Windows PC上安裝vSphere客戶軟件,這是最低要求。
客戶端界面整潔、易于瀏覽,所以創建和管理虛擬機也是件簡單的事。不過,想確保全面管理大規模VMware虛擬基礎設施,必須安裝vCenter服務器(vCenter Server),這就需要額外成本。vCenter是一站式管理工具,也是你需要的唯一工具。它不費吹灰之力,就能管理諸多任務,比如虛擬機遷移、負載均衡和高可用性等。
與前面提到的一樣,VMware功能豐富,但是容錯性等方面只出現在企業版及更高版本上。災難恢復需要站點恢復管理器(Site Recovery Manager)插件,虛擬分布式交換則需要vSphere企業增強版。
至于大規模企業基礎設施的高可用性要求,VMware高級存儲管理組件VMFDS是一個集群文件系統,可以充分利用共享存儲,允許多個vSphere主機可以同時讀取和寫入到同一存儲系統上。它提供了諸多特性:把運行中的虛擬機從一臺物理服務器實時遷移到另一臺物理服務器的功能,在另一臺物理服務器上自動重啟出現故障的虛擬機,以及把不同物理服務器上的虛擬機集群起來。
至于平臺的可靠性,VMware與硬件廠商們合作,共同確保驅動程序加固,而微軟和思杰的產品依賴普通的Windows或Linux驅動程序。
VSphere是終極可擴展性方面的領頭羊;每個主機最多可以擁有160個邏輯處理器、2TB內存和多得驚人的2048個虛擬處理器,每個主機最多512個活動虛擬機之間可以共享這一切資源。單個虛擬機支持的規格同樣驚人,支持多達32個虛擬處理器和多達1TB內存。一個集群包含32個節點,支持共3000個虛擬機。
能夠為每一個獨特的虛擬機單獨管理這些部件確實是VMware的強項。由于不用依賴基本操作系統來轉換和聯系,也就消除了另兩款產品遇到的輸入/輸出瓶頸。
甲骨文VirtualBox 4.1.18
甲骨文的VM VirtualBox是一種桌面虛擬化環境,與x86和AMD 64位/英特爾64位處理器兼容。雖然它是市面上唯一免費的專業級開源虛擬化工具,但是它并非與其他三種虛擬化技術直接競爭。那些針對的是大型IT基礎設施,而VirtualBox針對的是個人或小型辦公室應用。
甲骨文VirtualBox 4.1.18
甲骨文VM VirtualBox版本4.1.18支持Windows、Linux、Macintosh和Solaris等主機,支持數量眾多的訪客操作系統,包括Windows(NT 4.0、2000、XP、Server 2003、Vista和Windows 7)、OS X、DOS/Windows 3.x、Linux(2.4和2.6)、Solaris、OpenSolaris、OS/2以及OpenBSD等主機操作系統。可以通過“訪客附加模塊”(Guest Additions)來加固訪客操作系統,這些驅動程序或補丁程序包旨在改進兼容性或功能。
VirtualBox可以為每個虛擬機提供最多32個虛擬處理器,不管主機設備上的物理處理器核心如何。可配置的物理地址擴展處理器兼容性讓32位操作系統的尋址能力可以達到4GB以上。一些Linux操作系統(比如Ubuntu)需要啟用這項功能,才允許進行虛擬化操作。虛擬處理器熱插拔允許為某個特定的虛擬機“實時”擴展處理器資源。還有存儲區域網絡(SAN)啟動功能,這取決于使用PXE啟動的訪客操作系統以及通過主機的iSCSI目標機制(使用試驗功能)。
安裝
安裝非常簡單。提供的VirtualBox(類型2虛擬機管理程序)用于測試,作為一款可執行應用程序,安裝到現有的Windows 7操作系統上。安裝向導會逐步引導你完成安裝過程,沒有任何問題,為目錄和注冊表提供了非常易于使用的界面。
虛擬化
VirtualBox第一次運行時,一個出色的向導逐步引導你完成虛擬化過程。首先,你為虛擬機指定名稱和操作系統類型。還必須分配虛擬機所用的內存。推薦的基本內存量取決于所選擇的訪客操作系統。最大內存取決于同時不會影響主機PC性能的最大分配量。然后,安裝向導創建虛擬硬盤,操作人員必須選擇動態大小或固定大小的鏡像。動態擴展的鏡像在物理驅動器上所占的空間會比較小。然后,該鏡像會動態擴展,擴大到指定的虛擬機驅動器大小。固定大小的鏡像不會擴展。它以一個文件的形式存儲在物理驅動器上,其大小與指定虛擬機的硬驅差不多。
一旦虛擬機創建完畢,它會在VirtualBox客戶軟件里面作為空白機器來啟動。一旦虛擬機啟動成功,可以將安裝操作系統的磁盤驅動器指定為物理磁盤驅動器(含有可啟動介質),或者指定為位于硬驅上某個地方的ISO鏡像。介質路徑指定后,操作系統就會像往常那樣啟動和安裝。從訪客系統訪問主機文件是個復雜過程,因為虛擬機與物理硬驅之間沒有拖放操作支持。相反,文件共享依賴共享文件夾;而這又是個復雜過程,需要“訪客附加模塊”才能正常運行。
VirtualBox在其客戶軟件里面支持全面虛擬化,這樣可以從訪客系統獲得全面的操作系統功能。與每個虛擬機有關的所有資源很容易在VirtualBox客戶軟件里面加以改動,比如內存、已分配的視頻內存和硬驅大小。
功能介紹
可以使用兩種配置的Windows、Linux和OS X版本:一種是部分專有,另一種是完全開源。開源版:VirtualBox 開源版本(OSE)缺少使用USB外設的功能,采用了開源的VNC協議,而不是微軟的RDP協議。
VirtualBox在一臺PC上可以安裝幾個虛擬機方面沒有限制,所以唯一的限制因素就是主機硬驅空間和主機內存分配。
VirtualBox支持下列訪客系統:
Windows NT 4.0:所有版本和服務包都全面得到支持。比較老的服務包存在一些已知問題;推薦使用SP6a。可使用有限的訪客附加模塊。
Windows 2000/XP/Server 2003/Vista/Server 2008/Windows 7:所有版本和服務包都全面得到支持(包括64位版本,滿足下面所列的前提條件)。可使用訪客附加模塊。
DOS/Windows 3.x/95/98/ME:已執行了有限的測試。不推薦使用非傳統安裝機制;沒有訪客附加模塊。
Linux 2.4:提供有限的支持。
Linux 2.6:所有版本完全得到支持(32位和64位)。可使用訪客附加模塊。推薦使用內核2.6.13或更高版本,盡管內核防止虛擬機操作。
Solaris 10和OpenSolaris:完全得到支持(32位和64位)。可使用訪客附加模塊。
FreeBSD:需要啟用硬件虛擬化。提供有限的支持。還沒有訪客附加模塊。
OpenBSD:需要啟用硬件虛擬化。版本3.7及以后版本得到支持。還沒有訪客附加模塊。
OS/2 Warp 4.5:需要啟用硬件虛擬化。只有MCP2得到正式支持;其他OS/2版本是否可以正常運行不好說。可使用訪客附加模塊,但功能特性有限。
VirtualBox支持64位訪客操作系統,甚至支持32位主機操作系統,前提是滿足下列條件:
1. 你需要支持硬件虛擬化的64位處理器。
2. 你必須為想要64位支持的某一個虛擬機啟用硬件虛擬化;并不為64位虛擬機支持軟件虛擬化。
3. 如果你想在32位主機操作系統上使用64位訪客支持,還得為這一個虛擬機選擇64位操作系統。由于在32位主機上支持64位需要額外開銷,VirtualBox只是在明確要求下才啟用這項支持。
4. 在64位主機(通常隨帶硬件虛擬化支持)上,64位訪客操作系統總是得到支持,不管設置如何。但是想進行64位操作,必須啟用先進可編程中斷控制器(APIC),尤其是64位Windows訪客的情況下。Windows虛擬機還要求使用英特爾網卡驅動程序。AMD得不到支持。
局限
存在訪客多處理器(SMP)方面的下列限制:
AMD處理器上的32位訪客系統性能差勁。這主要影響Windows和Solaris訪客操作系統,但是可能也會影響一些Linux內核版本。這在面向32位Windows NT、2000、XP和2003訪問操作系統的版本3.0.6中已得到了部分解決。它需要安裝版本3.0.6或更高版本的訪客附加模塊。
在不含有虛擬APIC硬件優化支持的某些英特爾處理器型號上的32位訪客系統性能差勁。這主要影響Windows和Solaris訪客系統,但是可能也會影響一些Linux內核版本。這在面向32位Windows NT、2000、XP和2003訪客操作系統的版本中已得到了部分解決。它需要安裝版本3.0.12或更高版本的訪客附加模塊。
在一些帶VT-x的32位主機系統上的64位訪客操作系統會導致你的系統不穩定。
Windows訪客系統中的基本Direct3D支持想發揮作用,就必須在Windows“安全模式”下安裝訪客附加模塊,手動干預可以防止Windows系統DLL恢復。但是這并不適用于試驗型的WDDM Direct3D視頻驅動程序,隨VirtualBox 4.1交付的Vista和Windows 7訪客操作系統有這種驅動程序。
在Windows訪客操作系統上,通過訪客控制執行支持啟動的進程無法顯示圖形用戶界面(GUI),除非進程在里面運行的用戶帳戶目前已登錄,而且有桌面會話。
標準支持,可與沒有密碼的帳戶一起使用;它需要群組策略干預,才能訪問GUI。
目前只為VDI文件實施了VBoxManage modifyhd compact命令。眼下,想優化采用其他格式(VMDK和VHD)的虛擬磁盤鏡像的大小,唯一辦法就是克隆鏡像,然后在虛擬機配置中使用克隆鏡像。
還沒有支持開放虛擬化格式(OVF)本地化(一個OVF文件中有多門語言)。忽視了OVF的一些部分,比如StartupSection、DeploymentOptionSection和InstallSection。
一些VirtualBox功能被標為是實驗型功能。這類功能“按現狀”提供,并不是正式得到支持。試驗型功能列表如下顯示:
面向Windows訪客操作系統的Windows顯示驅動模型(WDDM)Direct3D視頻驅動程序
為Windows、Linux和Solaris訪客操作系統提供的硬件三維加速支持
為Windows訪客操作系統提供的硬件二維視頻回放加速支持
支持PCI直通技術(僅用于Linux主機)
Mac OS X訪客操作系統(僅用于Mac主機)
ICH9芯片組仿真
可擴展固件接口(EFI)固件
支持主機CD/DVD驅動器直通技術
通過內部網絡支持iSCSI
合成處理器報告
測評結論
結論與往常一樣:最適合你、價格又合理的產品是最佳產品。如果你逐個分析一下,本文介紹的這些解決方案都有其亮點。VirtualBox提供了一條經濟可行的道路,但是它其實只適合個人或小公司。而在其他三款解決方案當中,需要考慮關鍵的特性和功能。
其實歸根到底,我們的第一選擇是VMware,它適合大型企業基礎設施,就因為它的可擴展性比微軟Hyper-V或思杰XenServer更好,而且是一款更成熟的產品。考慮到其豐富的功能特性,價格可能也不是個大問題。然而,不能因此就忽視其他產品。每個產品都有值得考慮的強項;說到預算問題,它們實際上可能更適合你的要求。評估虛擬機產品是個挑戰,但是你應該關注主要環境和預測的未來要求,然后再出手也不遲。