轉自:http://www.osedu.net/article/linux/2011-06-24/242.htmlhtml
最近籠統地學習和試用了幾款比較有名的虛擬化管理軟件。學習的內容包括Eucalyptus, OpenNebula, OpenStack, OpenQRM, XenServer, Oracle VM, CloudStack, ConVirt。借這一系列文章,對過去一個月的學習內容做一個階段性的總結。前端
(1)受權協議、許可證管理、購買價格等方面的比較mysql
受權協議 | 許可證管理 | 商業模式 | |
Eucalyptus | 社區版採用GPLv3受權協議 企業版使用自定義的商業受權協議linux |
社區版不須要安裝許可證 企業版須要在雲控制器(CLC)節點上安裝許可證算法 |
社區版無償使用 企業版按處理器核心總數收費,用戶購買的許可證針對特定版本永久有效。sql |
OpenStack | Apache 2.0受權協議 | 不須要許可證 | 無償使用 |
OpenNebula | Apache 2.0受權協議 | 不須要許可證 | 社區版無償使用 企業版將社區版從新打包,提供補丁等程序的訪問權限,使得用戶可以更容易的安裝、配置和管理,以訂閱的模式提供服務。數據庫 企業版按物理服務器總數收費,每臺物理服務器器的服務價格爲250歐元每一年。django |
OpenQRM | 社區版使用GPLv2受權協議 企業版使用自定義的商業受權協議編程 |
不須要許可證 | 社區版無償使用 企業版將社區版從新打包,提供補丁等程序的訪問權限,使得用戶可以更容易的安裝、配置和管理,以訂閱的模式提供服務。基本、標準和高級服務的價格分別爲480、960、1920歐元每個月。瀏覽器 |
XenServer | Citrix XenServer系列產品均使用自定義的商業受權協議 基於XenServer的Xen Cloud Platform使用GPLv2受權協議 |
無論是XenServer仍是Xen Cloud Platform都須要在每臺服務器安裝許可證 許可證每一年更新一次 |
XenServer免費版本和開源版本的Xen Cloud Platform能夠無償使用 XenServer高級版、企業版和白金版按物理服務器數量收費,分別是1000、2500和5000美圓。購買的許可證針對特定版本永久有效 |
Oracle VM | Oracle VM Server是基於Xen開發的,使用GPLv2協議發佈,從Oracle的網站能夠下載到源代碼,可是Oracle並不宣傳這一點。 Oracle VM Manager使用自定義的商業受權協議。 Oracle VM VirtualBox的二進制版本使用自定義的商業受權協議,源代碼使用GPLv2受權協議。 |
不須要許可證 | 無償使用,能夠購買技術支持。技術支持的費用爲每臺物理服務器8184人民幣每一年。 |
CloudStack | 社區版採用GPLv3受權協議企業版使用自定義的商業受權協議 | 社區版不須要安裝許可證 企業版須要在管理服務器上安裝許可證 |
社區版無償使用企業版提供加強功能和技術支持,收費模式不詳。 |
ConVirt | 社區版使用GPLv2受權協議 企業版使用自定義的商業受權協議 |
社區版不須要安裝許可證 企業版須要在管理服務器上安裝許可證 |
社區版無償使用 企業版提供加強功能和技術支持,按物理服務器數量收費,每一個節點費用1090美圓。購買的許可證針對特定版本永久有效。 |
(2)項目歷史與運營團隊、社區規模和活躍程度、溝通交流等方面的比較
項目歷史與運營團隊 | 社區規模和活躍程度 | 溝通交流 | |
Eucalyptus | 最初是UCSB的HPC研究項目,2009年初成立公司來支持該項目的商業化運營。現任CEO是曾擔任MySQL CEO的Marten Mickos,現任工程部門SVP的Tim Cramerc曾擔任 Sun公司NetBeans和OpenSolaris項目的執行總監。整個管理團隊對開放源代碼項目的管理和運營方面具備豐富的經驗。 | 在同類開放源代碼項目當中,Eucalyptus的社區規模最大,活躍程度也最高。主要緣由是該項目起源於大學研究項目,次要緣由是管理團隊對開放源代碼理念的高度認同。Ubuntu 10.04服務器版選擇Eucalyptus做爲UEC的基礎構架,大大地促進了Eucalyptu的推廣。 | 社區發表在論壇上的問題一般在48小時內獲得迴應,經過技術支持電子郵件提出的問題一般在24小時內獲得迴應。
Eucalyptus在北京和深圳設有辦事處,在中國有工程師提供支持團隊。 |
OpenStack | OpenStack是服務器託管公司RackSpace與NASA共同發起的開放源代碼項目。在開放源代碼項目的管理和運營方面,RackSpace和NASA顯然缺少足夠的經驗。針對OpenStack項目的批評集中在(1)RackSpace對項目有過於強烈的控制慾,(2)OpenStack項目的運做對於社區成員來講基本上是不透明的,(3)OpenStack項目對同類開放源代碼項目的攻擊性過強。 | 社區規模較小,主要參與者爲支持/參與該項目的公司人員。有幾個公開的郵件列表,流量很小。因爲該項目比較新,在網絡上能夠參考的安裝與配置方面的文章很少。Ubuntu 11.04服務器版同時支持Eucalyptus和OpenStack做爲UEC的基礎構架,將有助於OpenStack的推廣。 | 經過郵件列表進行技術方面的溝通,一般在48小時內獲得迴應。商務方面的郵件溝通,沒有獲得迴應。 |
OpenNebula | 2005年啓動的研究性項目,2008年初發布第一個開放源代碼版本,2010年初大力推動開源社區的建設。 | 社區規模較小,主要參與者爲支持/參與該項目的公司人員,以及少許的用戶。有幾個公開的郵件列表,流量比OpenStack項目的流量稍大。在網絡上搜索到一些中文版安裝和配置方面的文章,基本上是以訛傳訛,缺少可操做性。英文版的相關文章也很少,可操做的更少。 | 經過郵件列表進行技術方面的溝通,一般在48小時內獲得迴應。 |
OpenQRM | 起源於集羣管理方面的軟件,2006年公開源代碼,2008年免費發佈,目前版本爲4.8。 項目的運營團隊較小,彷佛只有Matt Rechenburg一我的。 |
有一些零星的用戶,基本上沒有造成社區。雖然功能還在不斷更新,可是用戶文檔的日期是2008年的。相關論壇的活躍程度比OpenStack和OpenNebula更差。 | 在論壇發佈的問題,大約有50%左右沒有獲得迴應。經過電子郵件進行商務溝通,反應迅速,在24小時之內獲得迴應。 |
XenServer | Citrix公司的產品,與Xen項目的發展基本同步。 | 圍繞Xen Cloud Platform有一些開放源代碼的項目,用於替代XenCentor提供基於桌面或者是瀏覽器的管理功能。 | 初期商務溝通的速度比較快。 |
Oracle VM | Oracle公司的產品,用戶量較小。Oracle VM僅僅是Oracle用戶生態系統中的一部分,不是Oracle的關鍵業務。 | 有必定數量的用戶,可是沒有造成社區。在網絡上缺乏與Oracle相關的討論與交流。Oracle VM團隊有一個博客網站,可是最近兩篇文章的日期分別是2010年11月和2008年1 月。產品下載的速度很慢。 | 初期商務溝通的速度比較快。在技術方面的溝通,Oracle在國內沒有相應的技術人員提供支持。 |
CloudStack | 源於2008年成立的VMOps公司,2010年五月啓用cloud.com域名,2010年6 月共同啓動OpenStack項目。 | 用戶數量較少,論壇不是很活躍。官方文檔很是完備,按照文檔操做至少可以順利地完成安裝和配置過程。網絡上能夠搜索到一些可操做的安裝和配置文檔(得益於CloudStack的安裝和配置比較簡單)。 | 商務溝通比較困難,經過社區論壇和電子郵件提出的問題都沒有獲得迴應。 |
ConVirt | 起源於2006年發起的XenMan項目,與Xen項目的發展基本同步。目前的版本爲ConVirt 2.0。現任CEO和工程部門EVP均來自Oracle。 | 用戶規模與Eucalyptus至關,論壇的活躍程度很高。官方文檔很是完備,按照文檔操做至少可以順利地完成安裝和配置過程。在網絡上搜索到的中英文的安裝配置教程也基本可用。 | 商務溝通很是順暢,社區發表在論壇上的問題一般在48小時內獲得迴應,經過技術支持電子郵件提出的問題一般在24小時內獲得迴應。 |
(3)綜合評估
總的來講,虛擬化管理軟件的用戶還不是不少。大部分虛擬化管理軟件的社區規模較小,活躍程度也不高。除了Eucalyptus積極地鼓勵社區用戶參與項目的開發與測試以外,其餘項目選擇開放源代碼只是一種營銷策略。若是排除技術和價格方面的因素,最值得選擇的軟件無疑是Eucalyptus和ConVirt。這兩個項目擁有最大和最活躍的用戶社區,其開發/運營團隊與潛在客戶之間的溝通最爲順暢。XenServer也是一個值得考慮的對象,可是XenServer社區版要求對每臺物理服務器都要每一年更新一次許可證。對於擁有大量物理服務器的公司來講,管理和維護成千上百個許可證將是一個使人頭疼的問題。
架構篇:
(1)系統構架比較
系統構架 | |
Eucalyptus | Eucalyptus是一個與Amazon EC2兼容的IaaS系統。Eucalyptus包括雲控制器(CLC)、Walrus、集羣控制器(CC)、存儲控制器(SC)和節點控制器(NC)。CLC是整個Eucalyptu系統的核心,負責高層次的資源調度,例如向CC請求計算資源。Walrus是 一個與Amazon S3相似的存儲服務,主要用於存儲虛擬機映像和用戶數據。CC是一個集羣的前端,負責協調一個集羣內的計算資源,而且管理集羣內的網絡流量。SC是一個與Amazon EBS相似的存儲塊設備服務,能夠用來存儲業務數據。NC是最終的計算節點,經過調用操做系統層的虛擬化技術來啓動和關閉虛擬機。在同一個集羣(CC)內的全部計算節點(NC)必須在同一個子網內。 在一個集羣(CC)內一般須要部署一臺存儲服務器(SC),爲該集羣內的計算節點提供數據存儲服務。 Eucalyptus經過Agent的方式來管理計算資源。在每個計算節點上,都須要運行一個eucalyptus-nc的服務。該服務在集羣控制器(CC)上註冊後,雲控制器(CLC)便可經過集羣控制器(CLC)將須要運行的虛擬機映像文件(EMI)拷貝到該計算節點上運行。 Eucalyptus將虛擬機映像文件存儲在Walrus上。當用戶啓動一個虛擬機實例的時候,Eucalyptus首先將相應的虛擬機映像(EMI)從Walrus拷貝到將要運行該實例的計算節點(NC)上。當用戶關閉(或者是因爲意外而重啓)一個虛擬機實例的時候,對虛擬機所作的修改並不會被寫回到Walrus上原來的虛擬機映像(EMI)上,全部對該虛擬機的修改都會丟失。若是用戶須要保存修改過的虛擬機,就須要利用工具(euca2ools)將該虛擬機實例保存爲新的虛擬機映像(EMI)。若是用戶須要保存數據,則須要利用存儲服務器(SC)所提供的彈性塊設備來完成。 |
OpenStack | OpenStack是一個與Amazon EC2兼容的IaaS系統。OpenStack包括OpenStack Compute和OpenStack Object Storage兩個部分。 OpenStack Compute又包含Web前端、計算服務、存儲服務、身份認證服務、存儲塊設備(卷)服務、網絡服務、任務調度等多個模塊。OpenStack Compute的不一樣模塊之間不共享任何信息,經過消息傳遞進行通信。所以,不一樣的模塊能夠運行在不一樣的服務器上,也能夠運行在同一臺服務器上。 OpenStack Object Store能夠利用通用服務器搭建可擴展的海量數據倉庫,而且經過冗餘來保證數據的安全性。同一份數據的在多臺服務器上都有副本,將出現故障的服務器從集羣中撤除不會影響數據的完整性,加入新的服務器後系統會自動地在新的服務器上爲相應的文件建立新的副本。從功能上講,OpenStack Object Store同時具有Eucalyptus中的Walrus服務和彈性塊設備(SC)服務。不過OpenStack Object Store不是一個文件系統,不可以保證數據的實時性。從這個方面來考慮,OpenStack Object Store更適合用於存儲須要長期保存的靜態數據,例如操做系統映像文件和多媒體數據。 OpenStack經過Agent的方式來管理計算資源。在每個計算節點上,都須要運行nova-network服務和nova-compute服務。這些服務啓動以後,就能夠經過消息隊列來與雲控制器進行交互。 |
OpenNebula | OpenNebula的構架包括三個部分:驅動層、核心層、工具層。驅動層直接與操做系統打交道,負責虛擬機的建立、啓動和關閉,爲虛擬機分配存儲,監控物理機和虛擬機的運行情況。核心層負責對虛擬機、存儲設備、虛擬網絡等進行管理。工具層經過命令行界面/瀏覽器界面方式提供用戶交互接口,經過API方式提供程序調用接口。 OpenNebula使用共享存儲設備(例如NFS)來提供虛擬機映像服務,使得每個計算節點都可以訪問到相同的虛擬機映像資源。當用戶須要啓動或者是關閉某個虛擬機時,OpenNebula經過SSH登錄到計算節點,在計算節點上直接運行相對應的虛擬化管理命令。這種模式也稱爲無代理模式,因爲不須要在計算節點上安裝額外的軟件(或者服務),系統的複雜度也相對下降了。 |
OpenQRM | OpenQRM是爲了管理混合虛擬化環境而開發的一個虛擬化管理框架,包括基礎層(框架層)和插件。基礎層(框架)的做用是管理不一樣的插件,而對虛擬資源的管理(計算資源,存儲資源,映像資源)都是經過插件來實現的。OpenQRM的框架相似於Java語言中的Interface,定義了一系列虛擬機資源生命週期管理的方法,例如建立、啓動、關閉虛擬機等等。在個框架的基礎上,OpenQRM針對不一樣的虛擬化平臺(Xen、KVM)實現了不一樣的插件,用來管理不一樣的物理和虛擬資源。當出現新的資源須要支持的時候,只須要爲OpenQRM編寫新的插件,就能夠無縫地整合到原來的環境中去。 OpenQRM插件也是使用無代理模式工做的。當須要管理的目標節點提供SSH登陸方式時,OpenQRM插件經過SSH登錄到計算節點,在計算節點上直接運行相對應的虛擬化管理命令。當須要管理的目標節點提供HTTP/HTTPS/XML-RPC遠程調用接口時,OpenQRM插件經過目標節點所提供的遠程調用接口實現對目標平臺的管理。 OpenQRM是一個虛擬化管理平臺,不提供與Amazon EC2兼容的雲管理接口。 |
XenServer | XenServer是對Xen虛擬化技術的進一步封裝,在Dom0上提供一系列命令行和遠程調用接口,獨立的管理軟件XenCenter經過遠程調用這些接口來管理多臺物理服務器。XenSever在標準Xen實現之上所實現的遠程調用接口相似於其餘虛擬化管理平臺中所實現的Agent,所以XenServer是經過Agent方式工做的。因爲只考慮對Xen虛擬化技術的支持,XenServer的構架相對簡單。 XenServer是一個虛擬化管理平臺,不提供與Amazon EC2兼容的雲管理接口。管理軟件XenCenter是運行在Windows操做系統上的,對於須要隨時隨地訪問管理功能的系統管理員來講有點不便。目前有一些第三方提供的開放源代碼的基於瀏覽器的XenServer管理工具,可是都還處於比較早期的階段。 |
Oracle VM | Oracle VM包括Oracle VM Server和Oracle VM Manager兩個部分。Oracle VM Server在支持Xen的Oracle Linux上(Dom0)運行一個與Xen交互的Agent,該Agent爲Oracle VM Manager提供了遠程調用接口。Oracle VM Manager經過一個Java應用程序來對多臺Oracle VM Server上的虛擬資源進行管理和調度,同時提供基於瀏覽器的管理界面。因爲只考慮對Xen虛擬化技術的支持,Oracle VM Server / Manager的構架相對簡單。 Oracle VM是一個虛擬化管理平臺,不提供與Amazon EC2兼容的雲管理接口。 值得注意的是,Oracle VM Manager還經過Web Service的方式提供了虛擬機軟件生命週期管理的全部接口,使得用戶能夠本身使用不一樣的編程語言來調用這些接口來開發本身的虛擬化管理平臺。不過因爲Oracle在開放源代碼方面的負面形象,彷佛沒有看到有這方面的嘗試。 |
CloudStack | 與OpenQRM相似,CloudStack採用了「框架 + 插件」的系統構架,經過不一樣的插件來提供對不一樣虛擬化技術的支持。對於標準的Xen / KVM計算節點,CloudStack須要在計算節點上安裝Agent與控制節點進行交互;對於XenServer / VMWare計算節點,CloudStack經過XenServer / VMWare所提供的XML-RPC遠程調用接口與計算節點進行交互。 CloudStack自己是一個虛擬化管理平臺,可是它經過CloudBridge提供了與Amazon EC2相兼容的雲管理接口,對外提供IaaS服務。
|
ConVirt | ConVirt是一個虛擬化管理平臺,使用無代理模式工做。當須要管理的目標節點提供SSH登陸方式時,ConVirt經過SSH登錄到計算節點,在計算節點上直接運行相對應的虛擬化管 理命令。當須要管理的目標節點提供HTTP/HTTPS/XML-RPC遠程調用接口時,ConVirt插件經過目標節點所提供的遠程調用接口實現對目標平臺的管理。 ConVirt是一個虛擬化管理平臺,不提供與Amazon EC2兼容的雲管理接口。可是ConVirt 3.0提供了與Amazon EC2 / Eucalyptus的用戶接口,使得ConVirt用戶可以在同一個Web 管理界面下同時管理Amazon EC2 / Eucalyptus提供的虛擬計算資源。 |
(2)雲管理平臺仍是虛擬化管理平臺?
在IaaS這個層面,雲管理和虛擬化管理的概念很是接近,可是有一些細微的差異。
虛擬化是指在同一臺物理機器上提供多臺虛擬機器(包括CPU、內存、存儲、網絡等計算資源)的能力。每一臺虛擬機器都可以像普通的物理機器同樣運行完整的操做系統以及執行正常的應用程序。當須要管理的物理機器數量較小時,虛擬機生命週期管理(資源配置、啓動、關閉等等)能夠經過手工去操做。當須要管理的物理機器數量較大時,就須要寫一些腳本/程序來提升虛擬機生命週期管理的自動化程度。以管理和調度大量物理/虛擬計算資源爲目的系統,屬於虛擬化管理系統。這樣一個系統,一般用於管理企業內部計算資源。
雲計算是指經過網絡訪問物理/虛擬計算機並利用其計算資源的實踐。一般來說,雲計算提供商以虛擬機的方式向用戶提供計算資源。用戶無須瞭解虛擬機背後實際的物理資源情況,只需瞭解本身所可以使用的計算資源配額。所以,虛擬化技術是雲計算的基礎。任何一個雲計算管理平臺,都是構建在虛擬化管理平臺的基礎之上的。若是某個虛擬化管理平臺僅對某個集團內部提供服務,那麼這個虛擬化管理平臺也能夠被稱爲「私有云」;若是某個虛擬化管理平臺對公衆提供服務,那麼這個虛擬化管理平臺也能夠被稱爲「公有云」。服務對象的不一樣,對虛擬化管理平臺的構架和功能提出了不一樣的需求。
私有云服務於集團內部的不一樣部門(或者應用),強調虛擬資源調度的靈活性。系統管理員須要爲不一樣的部門(或者應用)定製不一樣的虛擬機,根據部門(或者應用)對計算資源的需求對分配給某些虛擬機的計算資源進行調整。從這個意義上來說,OpenQRM、XenServer、Oracle VM、CloudStack和ConVirt比較適合提供私有云服務。
公有云服務於公衆,強調虛擬資源的標準性。經過將計算資源切割成標準化的虛擬機配置(多個系列的產品,每一個產品配置相同數量的CPU、內存、磁盤空間、網絡流量配額),公有云提供商能夠經過標準的服務合同(Service Level Agreement, SLA)以標準的價格出售計算資源。當用戶對計算資源的需求出現改變的時候,用戶只須要縮減或者是增長本身所使用的產品數量。因爲Amazon EC2是目前比較成功的公有云提供商,大部分雲管理平臺都在某種程度上模仿Amazon EC2的構架。從這個意義上來說,Eucalyptus、OpenNebula和OpenStack提供了與Amazon EC2兼容或者是相似的接口,比較適合提供公有云服務。
公有云和私有云之間的界限,就像「內部/外部」和「部門/合做夥伴」的概念同樣,並不十分明顯。根據項目需求的不一樣,可能會有不一樣的解釋。
功能篇:
(1)支持的虛擬化技術
Xen | KVM | XenServer / XCP | VMWare | LXC | openVZ | |
Eucalyptus | Y | Y | Y | |||
OpenStack | Y | Y | Y | Y | Y | |
OpenNebula | Y | Y | Y | |||
OpenQRM | Y | Y | Y | Y | Y | Y |
XenServer | Y | |||||
Oracle VM | Y | |||||
CloudStack | Y | Y | Y | |||
ConVirt | Y | Y |
能夠看出,Xen和KVM是目前得到最普遍的廠商虛擬化技術,緊隨其後的是VMWare。須要注意的是,XenServer是對Xen的進一步封裝,能夠認爲是一種新的虛擬化平臺(用戶在XenServer上不能直接執行Xend相關命令)。
(2)系統安裝和配置
前端 | 計算節點 | 備註 | |
Eucalyptus | 使用Ubuntu 10.04或者CentOS 5.5操做系統,經過apt-get install或者yum install的方式直接安裝二進制包,構建一個包含CLC、 Walrus、SC、CC的前端。根據官方網站提供的文檔進行操做,是比較容易實現的。 | 使用Ubuntu 10.04或者CentOS 5.5操做系統,經過apt-get install或者yum install的方式直接安裝二進制包,構建一個提供NC服務的計算節點。根據官方網站提供的文檔進行操做,是比較容易實現的。 | Eucalyptus包含了一個dhcpd,若是配置很差的話,會形成必定的麻煩。另外,計算節點(NC)與集羣控制器(CC)必須在一個C類子網裏(例如,掩碼爲255.255.255.0)。若是NC和CC在一個超網裏(例如,掩碼爲255.255.0.0),在註冊服務的時候會出現一些問題。 |
OpenStack | 在Ubuntu 10.04上利用官方網站提供的nova-install腳本進行安裝,基本上沒有遇到問題。 | 在Ubuntu 10.04上利用官方網站提供的nova-install腳本進行安裝,基本上沒有遇到問題。 | 對於一個簡單的系統,安裝配置比較簡單。 |
OpenNebula | 使用CentOS 5.5操做系統,配置好CentOS Karan源,啓用kbs-CentOS-Testing條目。下載對應的rpm包,直接yum localinstall –nogpgcheck opennebula*.rpm,就能夠直接完成安裝過程。按照官方文檔建立/srv/cloud/one和/srv/cloud/images目錄,經過NFS共享/srv/cloud目錄。建立cloud用戶組和屬於cloud用戶組的oneadmin用戶。 | 按照官方文檔建立/srv/cloud/one和/srv/cloud/images目錄,經過NFS共享/srv/cloud目錄。建立cloud用戶組和屬於cloud用戶組的oneadmin用戶。 將前端服務器上oneadmin用戶的ssh key拷貝到計算節點上oneadmin用戶的authorized_keys中。這樣前端服務器才能夠經過SSH登錄到計算節點上。 |
在CentOS 5.5 x86_64上進行安裝的時候,若是按照官方網站提供的文檔進行操做,先配置好必要的軟件依賴關係再安裝opennebula,就會出現xmlrpc-c包版本不對的錯誤。 網絡上能夠搜索到一些安裝配置方面的文檔和教程,可是對於熟悉Linux可是不熟悉OpenNebula的開發人員來講,很難按照這些文檔完成安裝和配置過程。 |
OpenQRM | 在Ubuntu 10.04上經過SVN下載OpenQRM源代碼,進入源代碼目錄後依次執行make / make install / make start命令。按照官方文檔的描述建立數據庫,而後經過Web界面進行下一步的安裝和配置。 | 計算節點配置好網橋和虛擬化支持以外不須要特別的安裝和配置。在OpenQRM管理界面中啓用相對應的插件便可經過插件對計算節點進行管理。 | 在Ubuntu 10.04上安裝前端時,可能須要手工安裝dhcp3-server。 啓用插件管理虛擬資源的操做流程不夠直觀,而且缺少詳細的文檔。 |
XenServer | 前端爲基於Windows操做系統的XenCenter。在Windows XP上能夠安裝,須要.NET Framework Update 2的支持。安轉過程很是簡單,基本上不須要配置。 | 從Citrix的網站下載ISO,刻盤直接安裝在裸機上便可。計算節點安裝完畢後,在XenCenter中把新增計算資源添加到資源池便可。 | 每一臺XenServer服務器都須要安裝從Citrix得到License,而且每一年更新一次。 |
Oracle VM | 在CentOS 5.5 x86_64上進行安裝。將ISO文件mount起來後,執行runinstaller.sh便可。 | 從Oracle的網站下載ISO,刻盤直接安裝在裸機上便可。計算節點安裝完畢後,在Oracle VM Manager中把新增計算資源添加到資源池便可。 | 最好從Oracle的官方網站下載,不過速度很慢。經過迅雷等途徑下載的文件,看起來彷佛沒有問題,可是ISO刻盤後在啓動操做系統安裝過程當中會出現錯誤。 若是在Oracle VM Server上安裝Oracle VM Manager,建議分區的時候把/ 分得大一點,否則的話會因爲磁盤空間不夠而沒法安裝Oracle VM Manager。 |
CloudStack | 在CentOS 5.5和Ubuntu 10.4上,按照官方網站的安裝文檔順序操做,基本沒有問題。 | 計算節點上必須安裝相應的Agent。 | 安裝配置相對簡單,可是在刪除物理資源的時候存在較多的問題。 |
ConVirt | 在CentOS 5.5和Ubuntu 10.4上,按照官方網站的安裝文檔順序操做,基本沒有問題。 在Ubuntu 10.04上安裝企業版,須要手工sudo apt-get install libmysqlclient-dev。 |
在計算節點上的root用戶必須容許管理節點上運行ConVirt服務的用戶經過key auth方式登陸。
|
安裝配置相對簡單。 |
不一樣的虛擬化管理軟件有不一樣的設計理念,採用不一樣的系統構架,相似的概念也採用不一樣的術語來表述,其學習曲線也各不相同。對於大部分用戶來講,虛擬化管理軟件仍是個新生事物。即便是粗略地嘗試一下利用不一樣的虛擬化管理軟件來安裝、配置和測試一個最小規模的私有云系統,也須要花費很多的時間和精力。在這個過程中,碰見各類各樣的問題都在所不免。不過,也只有親身經驗過這些形形色色的問題,纔可以切身體會不一樣虛擬化管理軟件的優勢和缺點,而且在分析、總結、概括的基礎上造成本身獨特的觀點。
(3)用戶界面
概述 | 用戶權限 | 資源池和虛擬機管理 | |
Eucalyptus | Eucalyptus提供了一個基於瀏覽器的簡單用戶界面,能夠完成用戶註冊,下載credentials,對提供的產品類型進行簡單配置等。資源池和虛擬機生命週期管理須要經過euca2ools在命令行模式下完成。 euca2ools是一組基於命令行的工具,能夠與Amazon EC2/S3相兼容的Web Service進行交互。該用具能夠管理基於Amazon EC二、Eucalyptus和OpenStack,OpenNebula的雲計算服務。 euca2tools的主要功能包括: – 查詢可使用的域 |
在Eucalyptus社區版中只有兩種類型的用戶:管理員,普通用戶。在Eucalyptus企業版中進一步提供了用戶組,屬於某個用戶組的用戶能夠管理屬於該用戶組的計算資源。 | 管理員能夠經過註冊或者是撤銷註冊某個計算節點,配置標準產品類型的計算資源(CPU、內存、存儲)。普通用戶只可以在標準配置的基礎上建立、啓動、關閉虛擬機,不可以定製化本身所須要的計算資源。
虛擬機映像文件(EMI)的製做,以及虛擬機生命週期管理等等操做,須要經過euca2ools在命令行模式下完成。在FireFox瀏覽器中,能夠利用ElasticFox插件,在瀏覽器中啓動、監控和關閉虛擬機。ElasticFox的界面不夠美觀,而且提供的功能很是有限。 Eucalyptus不提供console功能。用戶能夠經過SSH鏈接到本身所管理的虛擬機。 每個公開發布的虛擬機映像(EMI),都是一個模板。用戶建立虛擬機實例的時候,系統根據用戶選擇的EMI將相應的虛擬機映像拷貝到目標計算節點上運行。Eucalyptus根據某種算法自動決定用戶的虛擬機將在哪一個物理服務器上運行,用戶對物理服務器的情況一無所知。 Eucalyptus中的虛擬機實例只是原虛擬機映像(EMI)的一個副本,用戶在運行的實例中對虛擬機所作的任何修改,不會被保存到原來的虛擬機映像中。若是用戶將運行的虛擬機實例關閉(例如:shutdown),用戶對虛擬機所做的任何修改都會丟失。若是用戶須要保存本身對虛擬機所作的修改,用戶能夠選擇使用彈性塊設備來保存數據,或者將正在運行的虛擬機實例發佈爲新的EMI。(Amazon EC2自動地將中止運行的虛擬機實例保存爲新的AMI,直到用戶銷燬該虛擬機實例爲止。所以,用戶能夠shutdown本身的虛擬機實例,可是保存本身對虛擬機所做的修改,直到用戶選擇銷燬該虛擬機實例爲止。) |
OpenStack | OpenStack不缺省地提供基於瀏覽器的用戶界面。系統管理員須要手工建立用戶。大部分的管理操做,須要在命令行下進行。 儘管OpenStack和Eucalyptus在構架上有很大的不一樣,可是所暴露給用戶的界面是相似的(二者都模仿了Amazon EC2的用戶接口規範)。所以,OpenStack一樣可使用Eucalyptus所提供的euca2ools進行管理。 OpenStack的openstack-dashboard項目和django-nova項目提供了一個基於瀏覽器的用戶界面,沒有被集成到OpenStack安裝腳本中,須要單獨安裝。 |
OpenStack將用戶分紅以下幾個類別: admin — 雲服務管理員,擁有全部管理權限。 itsec — IT安全管理員,具備隔離有問題的虛擬機實例的權限。 projectmanager — 項目管理員,能夠增長屬於該項目的新用戶,管理虛擬機映像,管理虛擬機生命週期。 netadmin — 網絡管理員,負責IP分配,管理防火牆。 developer — 開發人員,能夠登陸進入屬於本項目的虛擬機,管理虛擬機生命週期 在模仿Amazon EC2的雲平臺(Eucalyptus, OpenStack, OpenNebula)中,OpenStack提供了顆粒度最細的用戶權限管理模式。 |
與Eucalyptus相似,虛擬機映像文件(EMI)的製做,以及虛擬機生命週期管理等等操做,須要經過euca2ools在命令行模式下完成。一樣,在FireFox瀏覽器中,可 以利用ElasticFox插件,在瀏覽器中啓動、監控和關閉虛擬機。
OpenStack不提供虛擬機console功能。用戶能夠經過SSH鏈接到本身所管理的虛擬機。 正在開發中的openstack-dashboard,基於瀏覽器提供了比較完整的資源池管理功能和虛擬機生命週期管理功能。雖然界面還比較簡單,可是已經處於可用的狀態。 OpenStack的模板和虛擬機實例機制與Eucalyptus相似。與Eucalyptus相似,OpenStack根據某種算法自動決定用戶的虛擬機將在哪一個物理服務器上運行,用戶對物理服務器的情況一無所知。 |
OpenNebula | OpenNebula不缺省地提供基於瀏覽器的用戶界面。系統管理員須要手工建立用戶。大部分的管理操做,須要在命令行下進行。 OpenNebula目前有兩個基於瀏覽器的用戶界面:SunStone和OneMC。這兩個項目須要單獨安裝。 一樣,OpenNebula提供了與Amazon EC2相兼容的Web Service接口。所以,能夠經過FireFox所提供的ElasticFox插件和Eucalyptus提供的euca2ools工具集與OpenNebula雲平臺進行交互。 |
OpenNebula只有兩種類型的用戶:管理員,普通用戶。 | 在早期版本中,OpenNebula管理員能夠在後臺經過命令行來管理資源池和虛擬機生命週期。 一樣,在FireFox瀏覽器中,可 以利用ElasticFox插件,在瀏覽器中啓動、監控和關閉虛擬機。
SunStone和OneMC這兩個項目都提供了比較完整的資源池管理和虛擬機生命週期管理功能。兩個項目的界面都比較簡單,可是基本上處於可用的狀態。SunStone沒有提供虛擬機console功能,OneMC經過VNC協議提供了虛擬機console功能。 OpenNebula的模板和虛擬機實例機制與Eucalyptus相似。可是並不缺省地使用euca2ools做爲工具。 與Eucalyptus相似,OpenNebula根據某種算法自動決定用戶的虛擬機將在哪一個物理服務器上運行,用戶對物理服務器的情況一無所知。 |
OpenQRM | 基於瀏覽器的用戶界面,功能比較豐富。 | OpenQRM的管理界面只有兩種用戶:管理用戶,普通用戶。普通用戶只有查看權限,沒有管理權限。 | 經過啓用不一樣的插件,能夠管理不一樣的計算資源。全部的資源池和虛擬機生命週期管理操做均可以經過瀏覽器界面完成。 OpenQRM的novnc插件能夠提供基於VNC協議的虛擬機console功能。 |
XenServer | XenCenter是基於Windows的桌面應用,安裝與操做都很是簡單,界面美觀,功能強大。 在參與評測的8 個軟件中,XenCenter的用戶界面是表現最出色的。基於Windows桌面的應用可以迅速地對用戶的點擊動做做出反應,從而提升用戶體驗的滿意度。 |
系統管理員登陸XenCenter以後,能夠結合Active Directory在用戶和用戶組的層面分配管理權限。
|
受權用戶能夠經過圖形界面方便地進行資源池和虛擬機生命週期管理。在圖形界面上能夠直觀地監控物理服務器和虛擬機的計算資源使用狀況(CPU、內存、存儲、網絡活動)。 提供基於VNC的虛擬機console。 能夠基於模板的部署新的虛擬機。 |
Oracle VM | Oracle VM Manager提供了基於瀏覽器的管理界面。 | Oracle VM Manager同時提供了role和group的概念。其中role定義了用戶所具有的權限,屬於同一個group的用戶擁有該group所被授予的權限。 Oracle VM Manager提供了三種role: user — 擁有指定資源池的虛擬機生命週期管理權限。 manager — 擁有除了用戶管理以外的全部管理權限。 administrator — 擁有整個系統的管理權限。 |
受權用戶能夠經過圖形界面方便地進行資源池和虛擬機生命週期管理。在圖形界面上能夠直觀地監控物理服務器和虛擬機的計算資源使用狀況(CPU、內存、存儲、網絡活動)。 提供基於VNC的虛擬機console。 能夠基於模板的部署新的虛擬機。 |
CloudStack | 基於瀏覽器的用戶界面,功能豐富,美觀大方。
|
CloudStack根據用戶的role將用戶分紅三個類型: admin — 全局管理員。 domain-admin — 域管理員,能夠對某個域下的物理和虛擬資源進行管理。 user — 個體用戶,能夠管理本身名下的虛擬機資源。 |
CloudStack對物理資源的管理完整地模擬了一個物理機房的實際狀況,按照「機房(Zones)-》機櫃(Pods)-》集羣(Cluster)-》服務器(Server)」的結構對物理服務器進行組織,使得管理員可以在管理界面裏面的計算資源和機房裏面的計算資源創建起直觀的一一對應關係。 受權用戶能夠經過圖形界面方便地進行資源池和虛擬機生命週期管理。在圖形界面上能夠直觀地監控物理服務器和虛擬機的計算資源使用狀況(CPU、內存、存儲、網絡活動)。 提供基於VNC的虛擬機console。 能夠基於模板的部署新的虛擬機。 |
ConVirt | 基於瀏覽器的用戶界面,功能豐富,美觀大方。 | 社區版能夠註冊多個用戶,並可將用戶按照用戶組進行分類,可是全部的用戶擁有相同的全局管理權限。企業版則提供了更細緻的用戶權限管理機制。除此以外,企業版還提供了對LDAP的支持。 | 受權用戶能夠經過圖形界面方便地進行資源池和虛擬機生命週期管理。在圖形界面上能夠直觀地監控物理服務器和虛擬機的計算資源使用狀況(CPU、內存、存儲、網絡活動)。提供基於VNC的虛擬機console。 能夠基於模板的部署新的虛擬機。 ConVirt的最大優勢,在於其經過時程圖的方式在不一樣的層次上直觀地展現計算資源(包括物理資源和虛擬資源)的利用狀況和健康情況。在整個數據中心和資源池的層面,ConVirt實時顯示資源池數量、物理服務器和虛擬機數量、虛擬機密度、存儲資源使用情況、負載最高的N 臺物理服務器和虛擬機。在物理服務器和虛擬機的層面,ConVirt實時顯示CPU和內存使用狀況,監控人員能夠經過CPU和內存時程圖及時地發現或者是調查系統異常狀況。 |
在全部參與評測的虛擬化管理軟件中,XenServer / XCP和ConVirt的圖形用戶界面是作的最好的。XenCenter的圖形界面的優勢在於提供了獨一無二的用戶體驗,ConVirt的圖形界面的優勢在於以圖形的方式直觀地展現了從機房到虛擬機的健康情況。CloudStack的圖形界面很是大氣,可是在功能上不如ConVirt那麼實用。不過按照CloudStack的目前的發展勢頭來看,下一個版本可能比較值得期待。
因爲進行評測的時間較短,而且測試系統規模較小的緣由,暫時沒法對各個軟件的穩定性、健壯性、擴展性等等關鍵問題做出評估。
商務篇:
目前市面上形形色色的虛擬化管理軟件總數不少,這一系列文章所說起的幾個軟件僅僅其中的幾個表明。做爲一個機構、或者是一家企業,在向虛擬化過渡時都不可避免地要面臨軟件選型的問題。本文做爲這一系列文章的最後一篇,從商務和功能兩個方面提出本身的一點粗淺意見。
(1)商務評估
從商務上進行軟件選型,性價比一般是一個決定性的因素。在假定參與選型的軟件所有知足技術要求的前提下,企業(機構)須要考慮的因素包括軟件的受權協議是否友好、許可證管理的難易程度、軟件和服務的價格高低、運營團隊在業界的聲譽、開發者社區和用戶社區的規模和活躍程度、商業與技術溝通的難易程度。
受權協議/許可證管理 — 以所有開放源代碼爲10分,部分開放源代碼(例如以企業版的形式提供某些高級功能,或者以服務的形式提供特別版本的安裝包和補丁)扣1 分。商業版本須要在控制節點安裝許可證不扣分,須要在全部計算節點安裝許可證扣1 分,許可證須要每一年更新者扣1 分。
價格指數 — 以所有功能無償使用爲10分,以企業版的模式提供所有功能的軟件,每臺物理服務器每花費500美圓扣1 分。
運營團隊 — 以運營團隊的規模、背景、影響力評分,存在的主觀因素較多。
社區因素 — 以開發者和用戶社區的規模和活躍程度評分,存在的主觀因素較多。
溝通交流 — 以我的與運營團隊、開發者社區、用戶社區之間的溝通順暢程度評分,存在的主觀因素較多。
受權協議 許可證管理 |
價格指數 | 運營團隊 | 社區因素 | 溝通交流 | 總分 | |
Eucalyptus | 9 | 8 | 9 | 9 | 10 | 45 |
OpenStack | 10 | 10 | 8 | 8 | 7 | 43 |
OpenNebula | 9 | 9 | 7 | 8 | 9 | 42 |
OpenQRM | 9 | 8 | 6 | 7 | 8 | 37 |
XenServer | 7 | 8 | 9 | 10 | 9 | 43 |
Oracle VM | 9 | 7 | 7 | 6 | 7 | 36 |
CloudStack | 9 | 8 | 7 | 6 | 7 | 37 |
ConVirt | 9 | 8 | 8 | 9 | 10 | 44 |
(2)功能評估
從功能上進行虛擬化管理軟件選型,須要考慮的因素包括該軟件所支持的虛擬化技術、安裝配置的難易程度、開發和使用文檔的詳盡程度、所提供的功能是否全面以及用戶界面是否直觀友好、二次開發的難易程度、是否提供物理資源和虛擬資源的監控報表等等。
虛擬化技術支持 — 僅支持一種虛擬化技術爲6 分,每增長一種虛擬化技術加1 分,10分封頂。
安裝配置 — 以按照官方文檔進行安裝配置的難易程度評分,存在的主觀因素較多。
開發/使用文檔 — 以官方所提供的開發與使用文檔的詳盡程度評分,文檔詳盡程度越高者得分越高。
功能與界面 — 綜合評分,涵蓋用戶進行物理資源和虛擬資源管理、虛擬機生命週期管理、訪問虛擬機資源和存儲資源的難易程度,用戶界面的美觀易用程度,以及綜合用戶體驗。
二次開發 — 基礎得分6 分,提供與Amazon EC2相兼容的程序調用接口者加3 分,提供二次開發接口可是與Amazon EC2不兼容者加2 分。
監控報表 — 基礎得分6 分,依系統所提供監控與分析功能的詳盡程度加分。
虛擬化技術支持 | 安裝配置 | 開發/使用文檔 | 功能與界面 | 二次開發 | 監控報表 | 總分 | |
Eucalyptus | 8 | 8 | 9 | 4 | 9 (Amazon WS) | 6 | 44 |
OpenStack | 10 | 8 | 8 | 4 | 9 (Amazon WS) | 6 | 45 |
OpenNebula | 8 | 8 | 7 | 4 | 9 (Amazon WS) | 6 | 42 |
OpenQRM | 10 | 9 | 5 | 10 | 6 (OS) | 7 | 47 |
XenServer | 6 | 10 | 10 | 10 | 8 (Plugin) | 9 | 53 |
Oracle VM | 6 | 9 | 8 | 7 | 8 (WS) | 7 | 45 |
CloudStack | 8 | 9 | 8 | 10 | 6 (OS) | 8 | 49 |
ConVirt | 7 | 10 | 10 | 10 | 8 (API) | 10 | 55 |
(3)綜合評估
從商務上考慮,Eucalyptus和ConVirt以微弱 的優點領先於其餘選項。Eucalyptus是私有云管理平臺的先行者。Ubuntu 10.04選擇捆綁Eucalyptus做爲UEC的基礎構架,使得Ecualyptus比其餘的私有云管理平臺擁有更多的用戶和更加活躍的社區。此外,Ecualyptus在中國國內有銷售和技術支持人員,在溝通上比選擇其餘軟件要更加容易。ConVirt排名第二,根本緣由在於其銷售和技術支持團隊與(潛在的)客戶保持積極而有效的溝通。Citrix XenServer僅僅與其餘兩個選項並列排名第三,輸在其過於嚴苛的許可證管理政策。的確,要給100臺以上的服務器單獨安裝許可證而且每一年更新一次,可不是一件有意思的事情。
從功能上考慮,ConVirt與XenServer遙遙領先於其餘選項。雖然ConVirt僅僅支持Xen和KVM兩種虛擬化技術,可是其安裝配置相對簡單,文檔詳盡、功能齊全、界面美觀、是比較容易上手的虛擬化管理軟件。更重要的是,ConVirt的監控報表功能直觀地展現了從數據中心到虛擬機的CPU、內存利用狀況,使得用戶對整個數據中心的健康情況一目瞭然。一樣,XenServer雖然僅支持Xen一種虛擬化技術,可是在安裝配置、操做文檔、用戶界面等方面都不亞於ConVirt。若是用戶對基於Windows的界面沒有強烈的抵觸情緒的話,XenServer是比較值得考慮的一個選型。
綜合如上考慮,對於但願利用虛擬化管理軟件提升硬件資源利用率和虛擬化管理自動化程度的企業(機構)來講,建議使用ConVirt來管理企業(機構)的計算資源。若是網管人員不但願深刻了解Linux操做系統,而且所管理的物理服務器數量有限的話,XenServer也是一個不錯的選擇。ConVirt的瀏覽器界面是開放源代碼的,用戶能夠對其進行定製化,將本身所須要的其餘功能添加到同一個用戶界面中去。XenCenter則提供了一種插件機制,用戶能夠經過插件的方式講本身的功能集成到XenCenter中。
不過,你的基礎設施是否須要與Amazon EC2相兼容呢?也就是說,你的用戶是否須要使用他們用於訪問和操做Amazon EC2的腳本和工具來訪問你的計算資源呢?若是是這樣的話,你可能須要在Eucalyptus和OpenStack之間做一個選擇(CloudStack和OpenNebula一樣提供了與Amazon EC2兼容的操做接口,可是CloudStack在商務方面得分不高,OpenNebula在功能方面得分不高)。Eucalyptus的歷史比OpenStack稍長,用戶羣比OpenStack要大,社區的活躍程度也比OpenStack要高。不過OpenStack的後臺老闆NASA比Eucalyptus要財大氣粗,Ubuntu 11.04也集成了OpenStack做爲其UEC的基礎構架之一,代表OpenStack已經獲得了社區的重視和支持。總的來講,開放源代碼的雲構架,仍是一個不斷髮展之中的新生食物。筆者只可以建議用戶親自去安裝使用每個軟件,最終基於本身的經驗以及需求達到一個最適合本身的選擇。
虛擬化管理軟件比較 -- 幻燈片
結合前段時間對不一樣虛擬化管理軟件的評測工做,準備了一套講座用的幻燈片。PDF版本的文件能夠從這裏下載。若是有人須要ODP版本的文件,直接跟我聯繫吧。