openstack cloudstack该选哪个?
1)历史背景和概况
OpenStack由美国国家航空航天局和Rackspace公司于2010年联合发布。他们分别贡献了计算代码(Nova)和存储代码(Swift),并获得了Apache许可协议的授权。OpenStack的目标是提供一个通用的开源云计算平台,既可以用来搭建公有云,也可以用来搭建私有云,让云平台的搭建尽可能的简单方便,同时可以快速的横向扩展。OpenStack独立于任何企业,遵循开源、开放设计、开放开发流程和开放社区的理念,完全由社区主导和维护。OpenStack的发布周期是半年。到目前为止,已经发布了八个正式版本。最新版本是哈瓦那。每个版本发布后,社区都会召开一次峰会。来自世界各地的公司和开发者将讨论下一版本的设计,并分享OpenStack的相关技术。值得一提的是,最近一次峰会是在中国香港举行的。
CloudStack最初由Cloud.com公司开发,分为两个版本:商业版和开源版。开源版本由GPL v3 (GNU通用公共许可证,版本3)许可协议授权。思杰2011收购Cloud.com后,代码全部开源。2012年CloudStack被贡献给Apache软件基金会,成为Apache的孵化项目。同时,许可协议变更为更加宽松、开放、商业友好的Apache许可协议,CloudStack于2013年3月升级为Apache的官方项目。CloudStack的目标是为大规模虚拟机部署和管理提供高可用、可扩展的开放云平台。CloudStack的发布周期不固定。目前最新版本是4.2,社区每年都会举办全球协作大会,进行技术分享和交流。
2)平台架构
OpenStack采用分布式架构,整个平台根据功能不同分为多个模块项目。如图2所示,项目之间通过消息队列中间件和RESTful API相互通信(其中认证项目为其他项目提供认证和服务注册),因此每个项目可以分别部署在不同的主机上,架构非常灵活。OpenStack提供丰富强大的API供用户方便地使用和调度资源,并提供兼容Amazon AWS(亚马逊Web服务)的API。
图2,OpenStack分布式架构图
CloudStack采用集中式单片架构。如图3所示,整个平台只包含一个项目。不同模块可以通过本地调用进行交互,平台可以部署在一台主机上,非常方便。CloudStack还提供了自己的API和兼容亚马逊AWS的API。
图3。CloudStack集中式架构图
可见两者的架构几乎是相对的。OpenStack的分布式架构灵活,不同的项目可以单独部署,很容易根据实际需要进行功能组合。而且由于不同项目之间耦合度低,项目之间功能划分清晰,对于单个功能的定制开发也非常方便。缺点是每个项目的部署和配置都比较麻烦。CloudStack因为只有一个项目,部署相对容易,但是平台的可扩展性相对较弱。
3)平台的总体比较
OpenStack和CloudStack的功能对如表1所示。我们从授权协议、支持的底层技术和用户群等不同方面对它们进行了比较。
OpenStack
云栈
授权协议
Apache 2.0,可以免费商业化。
Apache 2.0,可以免费商业化。
虚拟化技术
XenServer/XCP、KVM、QEMU、
LXC、VMware ESXi/vCenter、Hyper-V裸机、Docker、Xen/Libvirt
XenServer、KVM、QEMU、
VMware vCenter
网络服务
VLAN,扁平,扁平DHCP
量子虚拟化网络
VLAN,平面,开放流
存储支持
iSCSI,Ceph,NFS,LVM,斯威夫特,牧羊犬
NFS、LVM、Ceph、Swift
调度策略
该模型全面且易于扩展。
该模型简单且可扩展。
用户界面
功能完善,界面简洁。
完善的功能和友好的界面。
数据库
PostgreSQL、MySQL、SQLite
关系型数据库
虚拟机模板
支持
支持
包裹
新星,扫视,拱顶石,
地平线,雨燕,煤渣,
量子、热、云高仪
控制台代理虚拟机,
第二个存储虚拟机,
虚拟路由器虚拟机,
主机代理、管理服务器
发展领先
开元小区
思杰公司
开发语言
计算机编程语言
Java 语言(一种计算机语言,尤用于创建网站)
公文
非常详细
详细的
版本问题
存在版本兼容性问题。
不存在版本兼容性问题。
用户组
约160,包括美国国家航空航天局、
红帽、Rackspace、惠普、
网易、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的定制化开发,从长远来看对企业也是非常有利的。