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,
LXC,VMware ESXi/vCenter,Hyper-V Baremetal,Docker,Xen/Libvirt
XenServer,KVM,QEMU,
VMware vCenter ,LXC
網絡服務
VLAN,Flat,FlatDHCP
Quantum虛擬化網絡
VLAN,Flat,OpenFlow
存儲支持
iSCSI,Ceph,NFS,LVM,Swift,Sheepdog
NFS,LVM,Ceph,Swift
調度策略
模型全面,易擴展
模型簡單,可擴展
用戶界面
功能完善,界面簡單
功能完善,界面友好
數據庫
PostgreSQL,MySQL,SQLite
MySQL
虛擬機模板
支持
支持
組件
Nova,Glance,Keystone,
Horizon,Swift,Cinder,
Quantum,Heat,Ceilometer
Console Proxy VM,
Second Storage VM,
Virtual Router VM,
Host Agent,Management Server
開發主導
開源社區
Citrix公司
開發語言
Python
Java
官方文檔
非常詳細
詳細
版本問題
存在版本兼容性問題
不存在版本兼容性問題
用戶群
160家左右,包括NASA、
RedHat、Rackspace、HP、
網易、UnitedStack等
不到60家,包括諾基亞、
日本電話電報公司、Zynga、
阿爾卡特、迪斯尼等
表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定制開發,積累雲計算的技術能力,從長遠來看對企業也是非常有益的。