云计算平台比较分析

云计算按照应用层次,主要划分为IaaS、PaaS和SaaS三种层次的应用,这里主要分析常见的IaaS平台。目前市面上常见的IaaS应用主要有Amazon的AWS,基本上已经成为整个行业的标准。

IaaS在开源领域也是百花齐放,最著名的开源平台为:Eucalyptus、Openstack和Cloudstack、Opennebula、Nimbus,在国内社区比较火热的主要是前三种,所以在这里主要分析一下前三种平台。

云平台分析

Eucalyptus

概述

Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems(Eucalyptus)?是一种开源的软件基础结构,用来通过计算集群或工作站群实现弹性的、实用的云计算。它最初是美国加利福尼亚大学Santa Barbara计算机科学学院的一个研究项目,现在已经商业化,发展成为了 Eucalyptus Systems Inc。不过,Eucalyptus 仍然按开源项目那样维护和开发。Eucalyptus Systems 还在基于开源的 Eucalyptus 构建额外的产品;它还提供支持服务。

Eucalyptus是在2008年5月发布1.0版本,在2009年与Ubuntu进行合作,成为Ubuntu server9.04的一个重要特性,目前最新版本是2.0.3,可以选择Xen、KVM作为虚拟化管理程序,对vSphere ESX/ESXi提供了支持。

Eucalyptus主要是用C和Java开发的,其中CLC是由java完成的,Tools是由perl完成的,其他的都是C完成的。

架构

图表 SEQ 图表 \* ARABIC 1 Eucalyptus架构图

Eucalyptus主要有五个组件组成,分别是:CLC(Cloud Controller:云控制器)、CC(Cluster Controller:集群控制器)、NC(Node Controller:节点控制器)、SC(Storage Controller:存储控制器)和Walrus。

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

Walrus:负责管理对Eucalyptus内的存储服务的访问。请求通过基于 SOAP 或REST的接口传递至Walrus。

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

NC 节点控制器:主要负责控制主机操作系统及相应的 hypervisor(Xen、KVM或VMWare)。必须在托管了实际的虚拟实例(根据来自CC的请求实例化)的每个机器上运行 NC 的一个实例。

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

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

安装

图表 SEQ 图表 \* ARABIC 2 多集群安装拓扑图

具体功能

可用来在Amazon的EC2基础设施上创建一个公共云,或者在您的数据中心内创建私有云。

虚拟化和云快照功能,可提升集群的可靠性。

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

支持运行在Xen hypervisor、KVM和vmwar vSphere ESX/ESXi之上的VM的运行。

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

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

优缺点

开源和开发:Eucalyptus的创建是为了促进云计算平台方面的交流和研究。它以源代码的形式提供免费使用,这就使得您很容易透过其表面看到它的实质,或是针对自己的需求创建该平台的扩展。开发