开源IaaS之比较研究

2014-05-18 07:25陈立民
信息通信技术 2014年1期
关键词:扩展性开源虚拟化

陈立民

中国联通研究院 北京 100032

引言

大数据时代,“数据即资产”成为业界的核心共识。不断积累的海量数据,给数据的存储与检索、数据挖掘与智能应用等信息处理技术带来全新的挑战。如何善用自身数据资产、发挥大数据能量、为企业带来具有竞争力的优势是研发部门亟需解决的问题。作为新一代的资源使用和交付模式,云计算为上述问题提供了有前景的解决思路。它在大规模的廉价服务器集群之上架构基础设施,从传统地强调单机性能转向了借助廉价服务器集群的“虚拟化、分布式、智能化”。云计算提供了具有高扩展性和可用性的分布式并行计算,为大数据时代的海量数据存储与处理提供了切实可行的方案,可以说,云计算是大数据时代的系统工程[1]。

面对云计算带来的新机遇与挑战,各大运营商均严阵以待,积极寻找定位、发展自己的云战略[2-4]。云计算分为三个层面,即基础架构(IaaS)、平台(PaaS)和应用软件(SaaS),它们分别向用户提供虚拟数据中心、开发和测试环境以及在线软件等服务。对于正在制定云战略的公司来说,在IaaS与PaaS之间选择合适的模式是非常重要的一个决策。与PaaS相比,IaaS具有更广泛的应用范围,且支持OVF等协议,能够跨平台和降低对供应商的依赖性,更具灵活性和机动性,更适合大型企业。此外,运营商具有大量IDC资源,这正是IaaS的一个典型应用领域,当前阶段运营商宜使用IaaS发展云战略。

相比商用IaaS产品,开源项目进一步降低了用户对厂商的依赖性,具有更好的兼容性、扩展性、灵活性和可维护性,为用户提供了备选方案。各开源项目在诸多方面具有不同的特色与优势,这使用户在根据自身的需求和期望选择合适的开源项目时有一定难度,特别是新进入云计算领域的用户。本文介绍了当前主流的开源IaaS云,分析对比了这些开源IaaS云的特点和优势,帮助用户选择合适的开源IaaS云,发展自己的云战略。

1 云计算简介

云计算分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算技术和网络技术发展融合的产物。它是一种通过互联网以服务的方式提供动态可伸缩的虚拟化资源的计算模式,提供以下三个层面的资源与服务。

1) 基础设施即服务(Infrastructure as a Service,IaaS)。IaaS通过网络向用户提供计算机(物理机和虚拟机)、存储空间、网络连接、负载均衡和防火墙等基本计算资源,用户在此基础上部署和运行各种软件,包括操作系统和应用程序。业界主要的IaaS有亚马逊EC2、微软Azure、谷歌Compute Engine、开源社区的OpenStack等。

2) 平台即服务(Platform as a Service,PaaS)。PaaS提供用户开发环境,不仅包括操作系统,还包括编程语言执行环境、数据库和Web服务器等。PaaS将软件开发平台作为一种服务提供给用户。用户基于PaaS平台部署和运行自己的应用,它只需关注自身的应用,节省了管理和控制PaaS层的复杂性和成本。业界主要PaaS有微软的Azure、谷歌的Google App Engine、开源社区的Hadoop和Storm等。

3) 软件即服务(Software as a Service,SaaS)。SaaS将运行在云计算基础设施上的应用程序作为服务提供给用户。提供商在云基础设施上安装和运行应用软件,用户通过客户端(Web浏览器、上网本等)进行访问。业界主要的SaaS有Salesforce的CRM、谷歌Apps、微软Off i ce365等。

图1展示了云计算三种模式及用户间的关系。用户可以根据自身需求,自主地选择云计算的模式,三种模式的选择不存在相关性。SaaS云通常部署在云上(PaaS或者IaaS);PaaS与IaaS之间并没有继承关系,PaaS可以部署在IaaS上(如图1中虚箭头所示),也可以直接部署在物理资源上。

图1 云计算三种模式及用户间关系

2 主流开源IaaS云项目

目前,亚马逊、微软、IBM、Oracle等是提供IaaS服务的典型代表,但各厂商间对虚拟化软件的兼容性相对不足,且开放性和可维护性较弱,很难满足企业需求的灵活性和适应性。开源IaaS具有更好的兼容性、扩展性、灵活性和可维护性,为用户提供了商用IaaS以外的备选方案。下面简介Eucalyptus、CloudStack、OpenNebula、AbiCloud和OpenStack等5个开源IaaS项目。

2.1 Eucalyptus

Eucalyptus[5]是一个面向研究社区的开源软件基础设施,它采用模块化的设计,各组件间通过SOAP消息相互通信。Eucalyptus实现过程中使用了常见的Linux工具和基本的Web服务技术,用户可以很方便地扩展、安装和维护。Eucalyptus是商业应用亚马逊EC2的开源实现,且获得了亚马逊公司在AWS API兼容性方面的技术支持,与商业服务接口具有很好的兼容性。Eucalyptus使用轻量级开源关系数据库HSQLDB,这影响了Eucalyptus的扩展性,因为HSQLDB不适合管理大型数据,例如百万数量级记录的数据库应用。此外,Eucalyptus并非100%开源,它已经开始商业化,但仍然按开源项目维护和开发。

2.2 CloudStack

CloudStack[6]是Apache软件组织经营的一个具有高可用性及扩展性的开源云计算平台,同时也是一个开源的云计算解决方案。CloudStack通过CloudBridge提供兼容亚马逊EC2的接口,对外提供具有高可用性及扩展性的IaaS服务。它采用“框架+插件”的系统构架,通过不同的插件支持不同的虚拟化技术,如KVM、XenServer、VMware、Oracle VM、Xen等。

CloudStack采用分层结构,即客户端层、核心引擎层以及资源层,它提供管理多台物理主机的单一接口,用户可以通过Web界面、命令行工具和功能齐全的API管理使用自己的云。此外,CloudStack提供了兼容AWS EC2和S3的API。

2.3 OpenNebula

OpenNebula[7]是欧洲研究学会发起的开源IaaS计划,它是由自动化引擎的集群转变的IaaS平台,可以说,OpenNebula是一个比其它开源IaaS更开源的项目。OpenNebula支持Xen,KVM或VMware ESX建立和管理私有云,同时还提供Deltacloud适配器,与Amazon EC2配合来管理混合云。中国移动研究院的“大云”和中国科学院的“凌云”项目均基于OpenNebula开源框架构建。

OpenNebula能够在分布式基础设施上根据资源分配策略、结合数据中心资源和远程云资源实现多层服务的动态布置。OpenNebula的构架包括驱动层、核心层、工具层。驱动层负责虚拟机的创建、启动和关闭,监控物理机和虚拟机的运行状况。核心层负责管理虚拟机、存储设备、虚拟网络等。工具层通过命令行界面/浏览器界面方式提供用户交互接口,通过API方式提供程序调用接口。

2.4 AbiCloud

AbiCloud[8]是AbiQuo公司推出的一款开源产品,用于帮助用户以快速、简单和可扩展的方式创建和管理大型、复杂的IT基础设施(包括虚拟服务器、网络、应用、存储设备等等)。较同类其他产品,AbiCloud的主要特色在于其强大的Web界面管理,用户可以通过拖拽一个虚拟机来部署一个新的服务。

目前,AbiCloud的文档资料比较缺乏,且开源的community版本对资源也有一定限制(譬如只允许安装一个数据中心)。

2.5 OpenStack

OpenStack[9]是NASA和Rackspace合作研发的开源项目,旨在建设与管理公共及私有云。目前,它拥有最大和最活跃的社区,受到IT行业各领域的广泛支持和关注,有超过150家公司和成千上万的个人开发者加入该阵营,其中不乏IT业界知名的公司,如AT&T、IBM、HP、Redhat、Suse、Intel、Cisco、WMware等。

OpenStack具有良好的架构,目前Folsom版有7个核心组件:Compute(计算)、Object Storage(对象存储)、Identity(身份认证)、Dashboard(仪表盘)、 Block Storage(块存储)、Network(网络)和Image Service(镜像服务)。OpenStack遵循Open Virtualization Format、AMQP、SQLAlchemy等标准,并支持OpenFlow等新的标准,具有彻底的开放性,被誉为“21世纪的Linux”。

3 比较与分析

表1对比了上述几个开源IaaS云在部署方式、开发语言、数据库、扩展性、操作系统、虚拟技术、接口及类型、兼容性、特色优势等几个方面的区别。这份对比在技术层面是比较粗浅的,旨在帮助用户根据自身需求选择开源IaaS云时做一个初步取舍。

表1 几个开源IaaS云之间的比较

Eucalyptus主要用于部署私有云和混合云,目前与其它开源IaaS相比具有最好的兼容性,但受限于所支持的数据库HSQLDB,扩展性最差;扩展性方面,OpenStack最为出色,可以支持百万台物理机和千万级的虚拟机。CloudStack与OpenNebula是较OpenStack成熟的IaaS云,且文档丰富,具有较好的扩展性、良好的易用性和丰富的功能,对于资源有限的用户,它们都是不错的选择。此外,CloudStack支持多角色用户,具有最好的用户权限管理机制;而OpenNebula比较突出的特点是支持异构配置,多个运行环境不同甚至冲突的软件可以共存在同一基础设施上。AbiCloud是唯一支持Linux以外操作系统的IaaS,具有强大的Web界面管理接口,但兼容性不好,且文档匮乏,特别是在API方面,这给用户带来很大顾虑,甚至放弃AbiCloud。作为IaaS中的后起之秀,OpenStack处于高速发展阶段,但它在产品化方面不够成熟与稳定,安装和配置相对复杂,适合具有较强技术能力的企业使用。但从长远角度来看,OpenStack技术优势明显、完全开源、支持新标准,且已经被Ubuntu集成作为其UEC的基础构架之一。

4 结语

大数据时代累积的海量数据为数据的存储和智能处理带来了技术挑战,云计算以其高扩展性与可用性的分布并行计算提供了潜在的解决方案。本文明确了云计算三种模式(IaaS、PaaS和SaaS)间的关系,并比较研究了几个具有代表性的开源IaaS,帮助用户根据自身需求选择开源IaaS云,部署和发展自己的云战略。

参考文献

[1]姚宏宇,田溯宁.云计算:大数据时代的系统工程[M].北京:电子工业出版社,2013

[2]娄瑜.中国联通信息化云计算工作探讨[J].信息通信技术,2012,6(1):19-23

[3]石屹嵘,段勇.云计算在电信IT领域的应用探讨[J].电信科学,2009(9):24-28

[4]张敏,陈云海.电信运营商云计算发展及应用研究[J].信息通信技术,2010,4(2):46-51

[5]Eucalyptus White Papers[EB/OL].[2013-06-01].http://www.eucalyptus.com/resources/whitepaper,2013

[6]Apache CloudStack Documentation[EB/OL].[2013-06-05].http://cloudstack.apache.org/docs/en-US/,2013

[7]OpenNebula Documentation[EB/OL].[2013-06-01].http://opennebula.org/documentation:rel4.0,2013

[8]AbiCloud White Papers[EB/OL].[2013-06-10].http://www.abiquo.com/resources/case-studies/,2013

[9]OpenStack Home[EB/OL].[2013-06-10].http://www.openstack.org/,2013

猜你喜欢
扩展性开源虚拟化
五毛钱能买多少头牛
2019开源杰出贡献奖
基于OpenStack虚拟化网络管理平台的设计与实现
对基于Docker的虚拟化技术的几点探讨
提高初中阶段学生英语扩展性阅读能力策略分析
浅析虚拟化技术的安全保障
H3C CAS 云计算管理平台上虚拟化安全防护的实现
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
比ITX还小华擎推首款Mini—STX主板