由于需要在请求计算资源时,可以对其进行快速的添加,人们发展出了允许提供资源,但不用明确地知道资源具体是什么,以及资源所在位置的技术。这种在弹性环境上,提供所需资源供应的技术,叫做云计算。大家认同这种计算方式变化的主要原因之一,是将快速的大比例的资源用到更小的受限制环境中的潜力。
由于虚拟计算得到了广泛的采用,目前,这种新的计算模式在商业上已经可行了。就像虚拟机可以建立在相对较少考虑底层硬件(除了容量)的基础上,虚拟计算允许对资源进行快速地配置。(已经可以实现的是,物理地对处理器这样的所需新资源进行分配,至少在技术上,供应商已经提供很多年了;但是,就采用这些技术而言,仍然没有建立一个可行的收费模式并让人所接受。)
云计算要素
在一个云计算环境中,抽象和缺乏控制的水平都依赖于特定的解决方案。然而,大多数的解决方案都是通过相同的要素来搭建环境,而不太考虑,实际上赋予了用户多少控制权。这些要素包括:应用程序接口(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)来与在线以及离线虚拟机进行交互的。一个节点控制器在一个单独的机器上是作为一个独立的实例存在的。但是,多个节点控制器组成了特定的云。
【编辑推荐】