利用Eucalyptus构建云计算

2010-1-18

导读:本文介绍在Ubuntu Linux上设置Eucalyptus执行云计算操作的方法。

关键词:Ubuntu Linux Eucalyptus 云计算

 

【TechTarget中国原创】由于需要在请求计算资源时,可以对其进行快速的添加,人们发展出了允许提供资源,但不用明确地知道资源具体是什么,以及资源所在位置的技术。这种在弹性环境上,提供所需资源供应的技术,叫做云计算。大家认同这种计算方式变化的主要原因之一,是将快速的大比例的资源用到更小的受限制环境中的潜力。

  由于虚拟计算得到了广泛的采用,目前,这种新的计算模式在商业上已经可行了。就像虚拟机可以建立在相对较少考虑底层硬件(除了容量)的基础上,虚拟计算允许对资源进行快速地配置。(已经可以实现的是,物理地对处理器这样的所需新资源进行分配,至少在技术上,供应商已经提供很多年了;但是,就采用这些技术而言,仍然没有建立一个可行的收费模式并让人所接受。)

  云计算的要素

  在一个云计算环境中,抽象和缺乏控制的水平都依赖于特定的解决方案。然而,大多数的解决方案都是通过相同的要素来搭建环境,而不太考虑,实际上赋予了用户多少控制权。这些要素包括:应用程序接口(API)、网络、处理周期(CPU)和存储。

  API:API要素通常被称为客户端接口,可以为开发者提供对特定抽象元素的控制(比如Java要素、存储空间等等)。

  网络:网络要素通常对于云用户来说是不可见的。但是,对于从公共互联网到私有云资源之间的事务相互转换,网络要素是其基础。网络元素通常也是虚拟化的,让网络可以弹性地进行失效备援,同时可以离线地为系统以及可能存在的网络路由器、交换机赋予网络地址。

  CPU:依赖于提供的解决方案,对于云用户来说,处理周期可能可见也可能不可见。在某些环境下,可能需要基于系统提供的指令数量,提供资源,并建立相应的列表。在更高的层次上来说,这些处理周期是中央处理单元,或者通过虚拟化的部分中央处理单元。

  存储:由于其相对较高的成本,以及难以对增长进行规划并进行相应的供应,所以存储很适合通过云计算来实现。根据解决方案,存储可能会提供给用户。比如说,EMC公司的Mozy Backup solution提供了可访问的存储,以对个人电脑进行备份。

  利用Eucalyptus的开源云计算

  Eucalyptus云计算软件,在一个开源的平台上(也可以商业化),提供了对这些资源的抽象。Eucalyptus的源码是公开的。并且有提供给CentOS 5.3、OpenSUSE 11、Debian 5以及Ubuntu 9.04的软件包。

  Eucalyptus选择Xen和KVM作为虚拟化的管理程序。截止到本文发表,其发布的版本是1.5。

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

  下图显示了这些组件以及它们之间的继承关系。

Eucalyptus

  如何去安装Eucalyptus

  Eucalyptus包含的软件包,根据其组件进行相应地命名:eucalyptus云控制器(eucalyptus-cloud)、eucalyptus控制器(eucalyptus-controller)以及节点控制器(eucalyptus-nc)。在这篇文章中,使用Ubuntu 9.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://${PWD} ./ >> /etc/apt/sources.listroot@ubuntu:/tmp/eucalyptus-1.5.1-ubuntu-i386#
apt-get 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

  这篇文章提供了有关Eucalyptus,以及如何在Ubuntu 9.0.4上安装这个平台的概述。这样,就有了可用的基础设施去执行您自己的云计算方案了。

 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐