1. 简单百科
  2. Eucalyptus

Eucalyptus

Elastic Utility Computing 建筑 for Linking Your Programs To Useful Systems (Eucalyptus)是一种开源的软件基础结构,用来通过计算集群或工作站群实现弹性的、实用的云计算。它最初是加利福尼亚州大学 Santa Barbara 计算机科学学院的一个研究项目,现在已经商业化,发展成为了 Eucalyptus Systems Inc。

简介

不过,Eucalyptus仍然按开源项目那样维护和开发。Eucalyptus Systems还在基于开源 Eucalyptus构建额外的产品;它还提供支持服务。

Eucalyptus云计算软件,在一个平台上(分为open source版和enterprise版),提供了对这些资源的抽象。Eucalyptus的源码是公开的。并且有提供给CentOS5,Debian squeeze,OpenSUSE11,Fedora12的软件包。

Eucalyptus选择Xen和基于内核的虚拟机作为虚拟化的管理程序。目前版本是3.2。Eucalyptus的enterprise版已经对VMware vSphere ESX/ESXi提供了支持。

高级特点

1.与EC2和S3的接口兼容性(SOAP接口和REST接口)。使用这些接口的几乎所有现有工具都将可以与基于Eucalyptus的云协作。

2.支持运行在Xen hypervisor或KVM之上的VM的运行。未来版本还有望支持其他类型的VM,比如威睿

3.用来进行系统管理和用户结算的云管理工具。

4.能够将多个分别具有各自私有的内部网络地址的集群配置到一个云内。

原理

Eucalyptus组件:在逻辑上,Eucalyptus云包括4个组件:存储控制器(walrus)、云控制器(简称CLC或者“cloud”)、集群控制器(cc)以及节点控制器(nc)。客户端依赖于解决方案,但可能以浏览器脚本、一个用户空间应用程序、或者甚至是一个内核模块的形式出现。云控制器是从客户端进入云的接口,并为云提供逻辑决定。云控制执行对客户端进行认证的服务,并将客户端的请求转化为事务。集群控制器是一个节点控制器集合。它负责状态信息并与所提供的虚拟机进行交互。可是,节点自身是通过管理程序(Xen或者基于内核的虚拟机)来与在线以及离线虚拟机进行交互的。一个节点控制器在一个单独的机器上是作为一个独立的实例存在的。但是,多个节点控制器组成了特定的云。

架构如下图:

架构

Eucalyptus包含五个主要组件,它们能相互协作共同提供所需的云服务。这些组件使用具有WS-Security的SOAP消息传递安全地相互通信。

Cloud Controller(CLC)在Eucalyptus云内,这是主要的控制器组件,负责管理整个系统。它是所有用户和管理员进入Eucalyptus云的主要入口。所有客户机通过基于SOAP或REST的API只与CLC通信。由CLC负责将请求传递给正确的组件、收集它们并将来自这些组件的响应发送回至该客户机。这是Eucalyptus云的对外“窗口”。

Cluster Controller(CC)Eucalyptus内的这个控制器组件负责管理整个虚拟实例网络。请求通过基于SOAP或REST 的接口被送至CC。CC维护有关运行在系统内的Node Controller的全部信息,并负责控制这些实例的生命周期。它将开启虚拟实例的请求路由到具有可用资源的Node Controller。

Node Controller(NC)它控制主机操作系统及相应的hypervisor(X en或最近的基于内核的虚拟机,很快就会支持威睿)。必须在托管了实际的虚拟实例(根据来自CC的请求实例化)的每个机器上运行NC的一个实例。

Walrus(W)这个控制器组件管理对Eucalyptus内的存储服务的访问。请求通过基于SOAP或REST的接口传递至Walrus。

Storage Controller(SC)Eucalyptus内的这个存储服务实现Amazon的S3接口。SC与Walrus联合工作,用于存储和访问虚拟机映像、内核映像、RAM磁盘映像和用户数据。其中,VM映像可以是公共的,也可以是私有的,并最初以压缩和加密的格式存储。这些映像只有在某个节点需要启动一个新的实例并请求访问此映像时才会被解密。

一个Eucalyptus云安装可以聚合和管理来自一个或多个集群的资源。一个集群是连接到相同LAN的一组机器。在一个集群中,可以有一个或多个NC实例,每个实例管理虚拟实例的实例化和终止。

在一个单一集群的安装中,如图3所示,将至少包含两个机器:一个机器运行CC、SC和CLC;另一个机器运行NC。这种配置主要适合于试验的目的以及快速配置的目的。通过将所有东西都组合到一个机器内,还可以进一步简化,但这个机器需要非常健壮才能这样做。

一个单集群Eucalyptus安装的拓扑

在多集群安装中,可以将各个组件(CC、SC、NC和CLC)放置在单独的机器上。如果想要用它来执行重大的任务,那么这么做就是一种配置Eucalyptus云的理想方式。多集群安装还能通过选择与其上运行的控制器类型相适应的机器来显著提高性能。比如,可以选择一个具有超快CPU的机器来运行CLC。多集群的结果是可用性的提高、负载和资源的跨集群分布。集群的概念类似于Amazon EC2内的可用性区域的概念。资源可以跨多个可用性区域分配,这样一来,一个区域内的故障不会影响到整个应用程序。

一个多集群Eucalyptus安装的拓扑

安装

Eucalyptus包含的软件包,根据其组件进行相应地命名:eucalyptus云控制器(eucalyptus-cloud)、eucalyptus控制器(eucalyptus-controller)以及节点控制器(eucalyptus-nc)。在这篇文章中,使用Ubuntu9.04系统。安装的先决条件是在所有的节点上都配置一个一致的网络时间协议(NTP),并在节点控制器之间进行桥接配置。进行桥接的步骤超过了这篇文章的范畴,但Ubuntu提供了相应的文档。安装的第一步是下载Eucalyptus(32位或者64位)。

在下载完程序之后,转到下载到的目录(在这个例子中,使用/tmp)。然后在每一台组成云控制器、集群控制器以及节点控制器的机器上执行下述命令:

root@ubuntu:/tmp/eucalyptus-1.5.1-ubuntu-i386#

tar zxvf eucalyptus-1.5.1-*.tar.gzroot@ubuntu:/tmp/eucalyptus-1.5.1-ubuntu-i386#

cd eucalyptus-1.5.1-*root@ubuntu:/tmp/eucalyptus-1.5.1-ubuntu-i386#

echo deb file:// ./ \u003e\u003e /etc/apt/sources.listroot@ubuntu:/tmp/eucalyptus-1.5.1-ubuntu-i386#

APT update

apt-get update命令会对平台所需的先决条件进行安装,其中开放的Java框架占据了下载量的很大一部分。apt-get将需要执行相当长的一段时间。

对每一个组件,依赖于角色,会各自安装自己的软件包。

在云控制器上:

root@ubuntu:/tmp/eucalyptus-1.5.1-ubuntu-i386# aptitude install eucalyptus-cloud

在控制器上:

root@ubuntu:/tmp/eucalyptus-1.5.1-ubuntu-i386# aptitude install eucalyptus-cc

以及最后在节点控制器上:

root@ubuntu:/tmp/eucalyptus-1.5.1-ubuntu-i386# aptitude install eucalyptus-nc

集群现在已经建立起来。可以在合适的系统上,通过下述命令来启动服务:

/etc/init.d/eucalyptus-cloud

/etc/init.d/ecualyptus-cc

/etc/init.d/eucalyptus-nc

版本发布

2010年08月27日,云计算Eucalyptus2.0发布,改进可扩展性。

2012年05月04日,Eucalyptus3.1Alpha发布了,与2.x版本比较,3.x主要改进包括以下三个方面:

高可用性。

增强的资源访问控制。

提升稳定性。

2012年12月26日,Eucalyptus3.2发布,与3.1版本相比,大幅提升了web-based控制台的用户体验和功能丰富程度,增强了用户使用情况报告,简化了管理操作,并一定程度上增强了云的健壮性。

参考资料


Warning: Invalid argument supplied for foreach() in /www/wwwroot/newbaike.com/id.php on line 280