摘自恆天雲:http://www.hengtianyun.com/download-show-id-8.html
1. 概述
常見的IaaS開源平台有OpenStack、CloudStack、Eucalyptus和OpenNebula,公開的現狀報告和社區分析顯示,OpenStack和CloudStack的在企業接受度和社區的發展情況已經遠遠超越另外兩者,如圖1所示。本研究報告將對OpenStack和 CloudStack這兩個最為流行的開源雲平台進行對比,為企業在進行私有雲建設時的技術選型提供參考和建議。
圖1、開源雲平台社區活躍度對比圖
2. OpenStack和CloudStack的對比
1)歷史背景和概況
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)進行技術分享和交流。
2)平台架構
OpenStack采用分布式架構,整個平台按照功能不同分為多個模塊項目,如圖2所示,項目之間通過消息隊列中間件和RESTful形式的API進行交互通信(其中認證項目為其它項目提供認證和服務注冊),因此每個項目都可以單獨部署在不同的主機上,架構非常的靈活,OpenStack對外提供豐富和功能強大的API,使得資源可以被用戶方便的使用和調度,同時提供和Amazon AWS(Amazon Web Services)兼容的API。
圖2、OpenStack分布式架構圖
CloudStack采用集中式的單體架構(Monolithic architecture),如圖3所示,整個平台只有一個項目構成,不同模塊之間通過的本地調用進行交互,在一台主機上就可以完成平台的部署,非常方便,CloudStack同樣地對外提供自身API和與Amazon AWS相兼容的API。
圖3、CloudStack集中式架構圖
可以看到兩者的架構幾乎是相對的,OpenStack的分布式架構靈活性好,不同的項目可以單獨部署,因此可以很容易的根據實際需要進行功能組合,並且由於不同的項目間耦合性低,項目間功能划分明確,因此針對單獨功能進行定制開發也非常方便,缺點是部署麻煩,每個項目都要部署配置一遍;CloudStack 因為只有一個項目,所以部署起來會相對容易很多,然而平台的擴展性就要相對弱一些。
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家,包括諾基亞、 |
表1、OpenStack與CloudStack 比較
4)平台選擇
經過前面的比較分析我們能夠獲得這樣的結論,OpenStack和CloudStack都是功能強大的開源雲平台,滿足企業私有雲建設的需求,並且因為開放 開源,都可以根據需要進行定制。不同的是CloudStack因為是從商業軟件開源出來的,所以對企業來說會更容易上手,在雲平台構建時會比較方便,然而 同樣因為其帶有商業軟件屬性,平台架構比較集中,模塊間耦合度比較高,因此擴展性不是太好,同時二次開發的成本較高;OpenStack自誕生之初就是開 源軟件,並采用分布式的架構,所有的開發都是由社區承擔,不同的項目之間幾乎沒有耦合,所以可以方便的進行開發定制,然而因為其有多個項目組成,每個項目 都要單獨安裝,並且要保證項目間的協作,所以部署會比較麻煩,另外由於OpenStack處於高速發展階段,不同版本之間項目可能會有較大的變動,因此版 本間的升級會比較困難。
另外值得一提的是,OpenStack和CloudStack雖然都對VMware的ESXi虛擬化技術提供支 持,但支持方式是不一樣的,如圖4所示。CloudStack要經過vCenter才可以實現對ESXi宿主機上虛擬機的管理;而OpenStack支持 直接和ESXi通信,實現對虛擬機的基本管理,只有高級功能才需要vCenter的支持。針對目前中小企業普遍采用VMware的免費虛擬化技術而沒有 vCenter的現狀,這也是在平台選擇時需要考慮的。
圖4、VMware ESXi管理方式對比圖
恆天雲采用OpenStack開源平台進行私有雲建設,因為OpenStack架構非常開放,方便定制開發,並且擁有眾多技術廠商的支持,非常有可能成為雲 計算IaaS平台領域的Linux,所以通過對OpenStack定制開發,積累雲計算的技術能力,從長遠來看對企業也是非常有益的。