常見的IaaS開源平臺有OpenStack、CloudStack、Eucalyptus和OpenNebula,公開的現狀報告和社區分析顯示,OpenStack和CloudStack的在企業接受度和社區的發展狀況已經遠遠超越另外二者,如圖1所示。本研究報告將對OpenStack和 CloudStack這兩個最爲流行的開源雲平臺進行對比,爲企業在進行私有云建設時的技術選型提供參考和建議。html
圖一、開源雲平臺社區活躍度對比圖數據庫
OpenStack 由NASA和Rackspace公司在2010年聯合發佈,二者分別貢獻計算代碼(Nova)和存儲代碼(Swift),以Apache許可協議進行授 權。OpenStack的目標是提供一個既能夠用來建設公有云也能建設私有云的通用的開源雲計算平臺,並且作到雲平臺的搭建儘可能的簡單方便,同時可以快速 的橫向擴展。OpenStack獨立於任何企業,遵循開源、開放設計、開放開發流程和開放社區的理念,徹底由社區主導和維護。OpenStack的發佈周 期是半年,到目前爲止已經發布8個正式版本,最新的版本是Havana,在每一個版本發佈以後社區都會舉行一次峯會,來自世界各地的公司和開發者一塊兒討論下 一個版本的設計,同時進行OpenStack相關的技術分享,值得一提的是,最近的一次峯會在中國的香港舉行。網絡
CloudStack最初由Cloud.com公司開發,分爲商業和開源兩個版本,開源版本經過GPLv3(GNU General Public License, version 3)許可協議進行受權,Citrix公司在2011年收購Cloud.com後,將所有代碼開源,並在2012年將CloudStack貢獻給 Apache軟件基金會,成爲Apache的孵化項目,同時將受權協議改成更加寬鬆開放和商業友好的Apache許可協議,CloudStack在 2013年3月份升級爲Apache的正式項目。CloudStack的目標是提供高度可用的、高度可擴展的可以進行大規模虛擬機部署和管理的開放雲平 臺。CloudStack的發佈週期並不固定,目前最新的版本是4.2,社區每一年會舉行一次全球協做會議(CloudStack Collaboration Conference)進行技術分享和交流。架構
OpenStack採用分佈式架構,整個平臺按照功能不一樣分爲多個模塊項目,如圖2所示,項目之間經過消息隊列中間件和RESTful形式的API進行交互通訊(其中認證項目爲其它項目提供認證和服務註冊),所以每一個項目均可以單獨部署在不一樣的主機上,架構很是的靈活,OpenStack對外提供豐富和功能強大的API,使得資源能夠被用戶方便的使用和調度,同時提供和Amazon AWS(Amazon Web Services)兼容的API。分佈式
圖二、OpenStack分佈式架構圖雲計算
CloudStack採用集中式的單體架構(Monolithic architecture),如圖3所示,整個平臺只有一個項目構成,不一樣模塊之間經過的本地調用進行交互,在一臺主機上就能夠完成平臺的部署,很是方便,CloudStack一樣地對外提供自身API和與Amazon AWS相兼容的API。spa
圖三、CloudStack集中式架構圖設計
能夠看到二者的架構幾乎是相對的,OpenStack的分佈式架構靈活性好,不一樣的項目能夠單獨部署,所以能夠很容易的根據實際須要進行功能組合,而且因爲不一樣的項目間耦合性低,項目間功能劃分明確,所以針對單獨功能進行定製開發也很是方便,缺點是部署麻煩,每一個項目都要部署配置一遍;CloudStack 由於只有一個項目,因此部署起來會相對容易不少,然而平臺的擴展性就要相對弱一些。htm
3)平臺總體比較中間件
OpenStack和CloudStack的功能對好比表1所示,咱們從受權協議、支持的底層技術和用戶羣等不一樣方面對二者進行了比較。
OpenStack |
CloudStack |
|
受權協議 |
Apache 2.0,能夠免費商用 |
Apache 2.0,能夠免費商用 |
虛擬化技術 |
XenServer/XCP,KVM,QEMU, |
XenServer,KVM,QEMU, |
網絡服務 |
VLAN,Flat,FlatDHCP |
VLAN,Flat,OpenFlow |
存儲支持 |
iSCSI,Ceph,NFS,LVM,Swift,Sheepdog |
NFS,LVM,Ceph,Swift |
調度策略 |
模型全面,易擴展 |
模型簡單,可擴展 |
用戶界面 |
功能完善,界面簡單 |
功能完善,界面友好 |
數據庫 |
PostgreSQL,MySQL,SQLite |
MySQL |
虛擬機模板 |
支持 |
支持 |
組件 |
Nova,Glance,Keystone, |
Console Proxy VM, |
開發主導 |
開源社區 |
Citrix公司 |
開發語言 |
Python |
Java |
官方文檔 |
很是詳細 |
詳細 |
版本問題 |
存在版本兼容性問題 |
不存在版本兼容性問題 |
用戶羣 |
160家左右,包括NASA、 |
不到60家,包括諾基亞、 |
表一、OpenStack與CloudStack 比較
通過前面的比較分析咱們可以得到這樣的結論,OpenStack和CloudStack都是功能強大的開源雲平臺,知足企業私有云建設的需求,而且由於開放 開源,均可以根據須要進行定製。不一樣的是CloudStack由於是從商業軟件開源出來的,因此對企業來講會更容易上手,在雲平臺構建時會比較方便,然而 一樣由於其帶有商業軟件屬性,平臺架構比較集中,模塊間耦合度比較高,所以擴展性不是太好,同時二次開發的成本較高;OpenStack自誕生之初就是開 源軟件,並採用分佈式的架構,全部的開發都是由社區承擔,不一樣的項目之間幾乎沒有耦合,因此能夠方便的進行開發定製,然而由於其有多個項目組成,每一個項目 都要單獨安裝,而且要保證項目間的協做,因此部署會比較麻煩,另外因爲OpenStack處於高速發展階段,不一樣版本之間項目可能會有較大的變更,所以版 本間的升級會比較困難。
另外值得一提的是,OpenStack和CloudStack雖然都對VMware的ESXi虛擬化技術提供支 持,但支持方式是不同的,如圖4所示。CloudStack要通過vCenter才能夠實現對ESXi宿主機上虛擬機的管理;而OpenStack支持 直接和ESXi通訊,實現對虛擬機的基本管理,只有高級功能才須要vCenter的支持。針對目前中小企業廣泛採用VMware的免費虛擬化技術而沒有 vCenter的現狀,這也是在平臺選擇時須要考慮的。
圖四、VMware ESXi管理方式對比圖
恆天雲採用OpenStack開源平臺進行私有云建設,由於OpenStack架構很是開放,方便定製開發,而且擁有衆多技術廠商的支持,很是有可能成爲雲 計算IaaS平臺領域的Linux,因此經過對OpenStack定製開發,積累雲計算的技術能力,從長遠來看對企業也是很是有益的。