Eucalyptus 开源分析

  EucalyptusEC2的开源实现

Eucalyptus[22]是加利福尼亚大学的Daniel Nurmi等人实现的,是一个用于实现云计算的开源软件基础设施。EucalyptusAmazon EC2的一个开源实现,它与EC2的商业服务接口兼容。Eucalyptus是一个面向研究社区的软件框架,它不同于其他的IaaS云计算系统,能够在已有的常用资源上进行部署,Eucalyptus采用模块化的设计,它的组件可以进行替换和升级,为研究人员提供了一个进行云计算研究的很好的平台。Eucalyptus的设计目标是容易扩展、安装和维护。和EC2一样,Eucalyptus 依赖于LinuxXen进行操作系统虚拟化。本节介绍Eucalyptus的设计、体系结构和组件功能等。目前Eucalyptus系统已经提供下载,并且可以在集群和各种个人计算环境中进行安装使用。相信随着研究的深入,Eucalyptus将引起更多人的关注。

1. 开发目的

用户可以通过多种方式来使用各种计算资源和存储资源,这些资源包括单个笔记本电脑到分布在世界各地的数以千计的计算节点。用户一般基于各种特征如硬件体系结构、内存和磁盘存储能力、网络连接或地理位置来定位这些资源。一般地,这种资源定位涉及到资源的可用性、应用程序的性能分析、软件服务要求及行政关系等复杂的问题。而高性能计算和网格计算在资源配置标准方面迈出了一大步[23][25],但是对于有复杂资源需求的用户来说这些标准还是有些累赘。例如,一个需要大量计算资源的用户必须联系多个不同的资源提供者以满足自己的需求,而这些资源构成的资源池中的资源大部分都是异构的,使得任务的性能分析和资源的有效利用变得十分困难。虽然具有专业知识的用户可以接受资源的异构性,但是许多用户喜欢一个硬件资源、软件堆栈及编程环境一致的开发运行环境,这种一致性使得大规模的应用开发和部署变得更容易。

云计算的基本功能是通过各种接口提供对大规模数据和计算资源的访问。目前的云计算系统基本遵循相同的原则,即对资源的获取和释放是按需进行的,且用户接口应该非常简单。此外,云计算系统所提供的资源的通过虚拟化技术向用户隐藏了大量的信息如资源的物理位置、计算资源体系结构方面的细节等。这种应用模式得到了广泛的认同,并为开发者开发可扩展的应用程序提供了全新的编程目标。随着云计算系统的数量和规模的增长,需要对云计算的一些重要问题进行研究,以使云计算平台朝着预期的目标发展并取得成功。但是目前大多云计算产品要么是专有的,要么它们所依靠的大规模基础设施和软件对于研究社区的研究人员是不开放的,云计算研究人员不能够对其进行任意修改和实验研究[22]。缺乏研究工具使得许多基本问题不能够解决。

Eucalyptus专门用于支持云计算研究和基础设施的开发。它基于“基础设施即服务(IaaS)”的思想,不同于GoogleAmazonSalesforce3Tera等云计算提供商,它所使用的计算和存储基础设施如集群和工作站可为学术研究组织所用,为他们提供了一个模块化的开放的研究和试验平台,该平台为用户提供了运行和控制部署在各种虚拟物理资源上的整个虚拟机实例的能力。Eucalyptus的设计强调模块化,以允许研究者对云计算的安全性、可扩展性、资源调度及接口实现进行测试,有利于广大研究社区对云计算的研究探索。

2. 设计原则

虽然云计算系统已经为用户提供了一些可用的服务,但是其软件的封闭性使得云计算爱好者很难找到一个公开的灵活框架来定制自己的实验。Eucalyptus是一个面向研究的开源云计算系统,为了满足众多研究者的上述需求,采用了独特的设计[22][30]

(1)     Eucalyptus必须能够在不受其设计者操控的软硬件环境中进行部署和执行。

(2)     Eucalyptus 必须是模块化的,以便不同的研究者进行升级、改造和替换,同时能够实现最大程度的可扩展性。

Eucalyptus的系统架构设计同时考虑了上述两个原则,并在它们之间做出了权衡。

3. Eucalyptus与IaaS

虽然大多数现有的云计算实现都遵循灵活性、可扩展性和提供动态计算能力等原则,但是在如何把这种计算能力提供给用户上却存在着很多差异。如亚马逊的弹性计算云EC2[23][27]允许用户根据需要分配整个虚拟机,从而提供“基础设施即服务(IaaS)”式的服务。它允许用户自行提供操作系统内核、基本操作系统软件、任何用户级别的软件和他们希望运行的应用程序,IaaS系统只负责提供物理资源和实例化用户的虚拟机。Eucalyptus实现的IaaS的特别之处在于它被设计便于在研究环境中进行安装和维护,以便于修改、实验和扩展。商业云计算基础设施使用这些能力来控制本地资源的配置(如硬件版本、操作系统版本、组网和存储策略等)及访问潜在的昂贵的资源集。在研究环境下,云计算基础设施不能够为其所有的软硬件强加一个指定的配置,也不能断言有大量的可用资源集来保证系统的性能。典型的IaaS系统都有着特定的基础设施,并不把可扩展性和可移植性作为设计目标,也不把方便管理作为设计的首要目标。将多种计算资源聚集到一个单一的资源池加大了云计算系统的设计难度,很少有开源的软件包能够安装和部署在多个计算集群上并使它们相互协作和配合执行任务。因此,EucalyptusIaaS中一个比较独特的例子,也是未来的多集群开源设计的先驱。

IaaS并不是目前商业部门实现云计算的唯一途径[22],如AmazonGoogle还分别通过S3(Simple Storage Service,简单存储服务)App Engine来实现DaaS(Data as a Service,数据即服务)能力,用户可以从所提供的计算资源上访问和存储大量的数据。同样GoogleApp Engine还进行了语言层的抽象,以提供PaaSPlatform as a Service,平台即服务)。另外,像Salesforce等公司还提供了SaaSSoftware as a Service,软件即服务)等。Eucalyptus选择IaaS作为设计思想是因为两个原因。首先,AmazonEC2也许是目前商业上最成功的云计算系统,而EC2就是实现了IaaSEucalyptus采用了和EC2是兼容的接口,这使得测试相对成熟的商业云计算系统性能成为可能,采用IaaS使Eucalyptus在设计和测试过程中可以参考EC2。其次,抽象的高层云计算至少在概念上都依靠相似的IaaS功能,为了进一步的研究和部署开源软件,云计算系统包括IaaS将是必要和有益的。

1.1.2     体系结构

Eucalyptus的设计主要考虑两个工程目标:可扩展性和非侵入性。Eucalyptus具有简单的组织结构和模块化的设计,所以扩展起来很方便,且Eucalyptus使用开源的Web服务技术,其内部结构一目了然。Eucalyptus的每个组件由若干个Web服务组成,具有定义良好的由WSDL文档描述的接口,且通过使用WS-Security策略支持安全通信。Eucalyptus依靠符合行业标准的软件包如Axis2ApacheRampart等。这些实现技术的选择还支持设计的第二个目标:非侵入(non-intrusive)或覆盖部署。Eucalyptus并不要求其使用者将他所有的机器都用于Eucalyptus,也不要求以一种潜在的破坏性的方式来修改本地软件配置。它只要求使用Eucalyptus的节点通过Xen支持虚拟化执行和部署Web服务,只要满足了上述要求,Eucalyptus就可在不修改基本基础设施的情况下进行安装和执行。

学术研究组织可以访问多种资源如小的集群、工作站池和各种服务器及台式机。由于IP地址的匮乏和对完全的通过因特网访问资源引起的安全方面的担忧,系统管理员通常将集群部署在一个私有的不可路由的网络上,该网络只有一个头结点负责在计算池和公共英特网之间进行路由流量。虽然这种配置通过使用最少的公共可路由的IP地址来提供安全保障,但这意味着大部分机器可以和外部主机连接的同时外部机器却不能直接和集群内部的机器进行通信。比如以下的情形,有两个小的Linux集群,一个小的服务器池及一个工作站集合,每集群有一个具有可公开访问的IP地址的前端机器,而其节点之间、节点与集群头节点之间通过专用网络相连。服务器和工作站具有公开的IP地址,但是这些工作站都位于防火墙的后面,不能够从外部连接它们。这种情形下,很显然安装一个完全互联的系统是不可能的,因为许多机器只能够向外部主机发起连接,或者完全的与外界网络是隔离的。此外,两个集群中的节点由于位于不同专用网络或许还有重叠的IP地址。为了在单一的云计算系统中使用所有的这些资源,Eucalyptus采用了分层的体系结构,如图 6?13所示[22]。其中,CLC代表云控制器(Cloud Controller),CC代表集群控制器(Cluster Controller),NC代表节点控制器(Node Controller)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值