-
云计算平台比较分析
云计算按照应用层次,主要划分为
I
aaS
、
PaaS
和
< br>SaaS
三种层次的应用,这
里主要分析常见的
IaaS
平台。
目前市面上常见的
IaaS
应用主要有
Amazon
< br>的
AWS
,
基本上已经成为整个
行业的标准。
IaaS
在开源领域也
是百花齐放,最著名的开源平台为:
Eucalyptus
、<
/p>
Openstack
和
Cloudsta
ck
、
Opennebula
、
Nimbus
,
在国内社区比较火热的主要是
前三种,所以在这里主要分析一下前三种平台。
1.
云平台分析
1.1.
Eucalyptus
1.1.1.
概述
Elastic
Utility Computing Architecture for Linking Your
Programs To
Useful
Systems
p>
(
Eucalyptus
)
是一种开源的软件基础结构,用来通过计算集
群或工
作站群实现弹性的、实用的云计算。它最初是美国加利福尼亚大学
Santa
Barbara
计算机科学学院的一个研究项目,现在已经商业化,发展
成为了
Eucalyptus
Systems
Inc
。不过,
Eucalyptus
仍然按开源项目那样维护和开发。
Eucalyptus
Systems
还在基于开源的
Eucalyptus
构建额外的产品;它还提供
支持服务。
Eucalyptus
是在
2008<
/p>
年
5
月发布
1.
0
版本,
在
2009
< br>年与
Ubuntu
进行合作,
成
为
Ubuntu
server9.04
的一个重要特性,
目前最新版本是
2.0.3
,
可以选择
Xen
、
KVM
作为虚拟化管理程序,对
vSphere
ESX/ESXi
提供了支持。
Eu
calyptus
主要是用
C
和
Java
开发的,其中
CLC
是由
java
完成的,
Too
ls
是由
perl
完成的,其他的都是
C
完成的。
1.1.2.
架构
图表
1
Eucalyptus
架构图
Euc
alyptus
主要有五个组件组成,分别是:
CLC
(
Cloud Controller
:云控<
/p>
制器)
、
CC
(
Cluster Controller
:集群控制器)
、
NC
(
Node
Controller
:节点
控制器)
、
SC
(
Storage Contr
oller
:存储控制器)和
Walrus
。
CLC
云控制器
:
负责管理整个系统。
它是所有用户和管理员进入
Eucalyptus
云的主要入口。
所有客户机通过基于
SOAP
或
REST
的
API
只与
CLC
通信。
由
CLC
负责将请求传递给正确的组件、
收集它们并将来自这些组件的响应发送回至
该客户机。这是
Eucalyptus
云的对外
“窗口”。
Walrus
:负责
管理
对
Eucal
yptus
内的存储服务的访问。请求通过基于
SOAP <
/p>
或
REST
的接口传递至
Walrus
。
CC
p>
集群控制器
:负责管理整个虚拟实例网络。请求通过基于
SOAP
或
REST
的接口被送至
CC
。
CC
维护有关运行在系统内的
Node
Controller
的全部信息,
并负责控制这些实例的生命周期。
它将开启虚拟实例的请求路由到具有可用资源
的
Node
Controller
。
NC
p>
节点控制器
:主要负责控制主机操作系统及相应的
< br> hypervisor
(
Xen
、
KVM
或
VMWare
)
。
必须在托管了实际的虚拟实例
(根据来自
CC
的请求实例化)
的
每个机器上运行
NC
的一个实例。
SC
存储控制器
:实现了
Amazon
的
S3
接口,
SC
与
Walrus
联合工作,用于<
/p>
存储和访问虚拟机映像、内核映像、
RAM
磁盘映像和用户数据。其中,
VM
映
像
可以是公共的,
也可以是私有的,
并
最初以压缩和加密的格式存储。
这些映像只
有在某个节点需要启
动一个新的实例并请求访问此映像时才会被解密。
一个
Eucalyptus
云安装
可以聚合和管理来自一个或多个集群的资源。
一个
集群
是连接到相同
LAN
的一组机器。
在一个集群中,
可以有一个或多个
NC
实
例,每个实例管理虚拟实例的实例化和
终止。
1.1.3.
安装
图表
2
多集群安装拓扑图
1.1.4.
具体功能
1)
可用来在
Amazon
的
EC2
基础设施上创
建一个公共云,或者在您的数据中心
内创建私有云。
2)
虚拟化和云快照功能,可提升集群的可靠性。
3)
与
EC
2
和
S3
的接口兼容性
(
SOAP
接口和
REST<
/p>
接口)
。
使用这些接口的几乎
所有现有工具都将可以与基于
Eucalyptus
的云协作。
4)
支持运行在
Xen hypervisor
、
KVM
和
vmwar
vSphere ESX/ESXi
之上的
VM
的
运行。
5)
用来进行系统管理和用户结算的云管理工具。
6)
能够将多个分别具有各自私有的
内部网络地址的集群配置到一个云内。
1.1.5.
优缺点
1)
开源和开发
:
Eucalyptus<
/p>
的创建是为了促进云计算平台方面的交流和研究。它以源代
码的形
式提供免费使用,
这就使得您很容易透过其表面看到它的实质,
或是针对自己的
需求创建该平台的扩展。开发的步调很快。特性以及改进不断被添加到<
/p>
Eucalyptus
,
但是目前只有部
分源代码开放
。
2)
杰出社区
:
Eucalyptus <
/p>
具有一个由愿意与他人免费共享自己见地的热情而博学的用户
组成
的杰出社区。他们的论坛是您获得支持并与其他
Eucalyptus
用户交互的一个很
好的途径。
3)
公共云
:
Eucalyptus
p>
可很容易地作为一个公共云安装和运行在
Amazon
的
EC2
框架
上。
4)
私有云
:
Eucalyptus
可被作为运行在您的
基础设施之上的私有云安装于防火墙后的数
据中心内。这样,您就获得了对安全性和环境
的全面控制。
5)
可移植性
:
得益于
Eucal
yptus
与
Amazon
的
EC2 API
的兼容性以及
Eucalypt
us
的
灵活性,
可以很容易地将应用程
序从一个云迁移到另一个云。
甚至可以创建混合云来同
时使用公
共和私有云。
6)
经过了良好的测试
:
Eucalyptus
现在是
Ubuntu
Enterprise Cloud
的一部分,并
且是全球数千个
Ubuntu
服务器的一个组件。这种测试规模将会很快巩固
Eucalyptus
平台的稳定性。
7)
商业支持
:当前支持的商业服务只有
Amazon
的
< br>EC2
,随后会逐渐增加多种客户端接
口。
8)
兼容的系统
:
Eucalyputs
可以兼容多个
linux
发行版,包括
Ubuntu
、
CentOS
、
Redhat
、
p>
openSUSE
以及
freeBSD
p>
。
9)
1.1.6.
应用
将具体应用程序整体打包制作成
系统,通过
Eucalyptus
管理系统装载到一
个虚拟机实现上。
1.2.
OpenStack
1.2.1.
概述
OpenStack
是在
2010
年
7
月由
Rackspace Cloud
和
p>
NASA
(美国航天局)共
同开发支持,整
合了
Rackspace
的
Cloud
Files Platform
和
NASA
的
Nebula
Platform
技术,目的是能为任何一个组织创建和提供云计算服务。
目
前已经有超过
150
个公司与机构参与
OpenStack
项目,
包括
Crt
rix
、
Dell
、
< br>AMD
、
Inter
、
Cisco
、
HP
等。
主要有三个核心项目组成,分别是:计算(
nova
)
、
对象存储(
swift
)和镜像管理(
Glance
)
。每
个项目可以独立安装运行。
OpenStack
是用
Python
完成的。
Ubuntu
作为
OpenStack
的首选系统,很多
OpenStack
的文档都是基于
Ubuntu
来完成的。
1.2.2.
架构
图表
3
openstack
组成架构图
<
/p>
从上图可以看到,
OpenStack
主
要有三个子项目,
Nova
、
Swif
t
和
Glance
。
< br>
Nova
:
也称之为
OpenStack
Computer
,
p>
是云计算控制器,
主要负责控制
IaaS<
/p>
云计算平台,其功能类似于
Amazon
的
EC2
。
Swift
:也称之为
OpenStack Object S
torage
,是一个可扩展的对象存储系
统,
支持多种应用,
例如复制和存档数据、
图像或视频服务
、
存储次级静态数据、
开发数据存储整合的应用,存储超大容量
数据等。其功能类似于
Amazon
的
S3
。
Glance
:也称之为
OpenStack Image Service
,是一个虚拟机镜像的存储、
查询和检索系统。
p>
OpenStack
也可以单独提供其中的每个子项目搭建云平台,
当然也可以将这
三部分组合起来。
1.2.3.
实现原理
OpenStack
p>
首先将数据中心虚拟化,
利用管理程序提供应用程序和硬件之间
p>
抽象的对应关系。如图
:
OpenStack
通过两个方法实
现数据中心虚拟化。
1.
为每个服务器提供了抽象的硬件(例如第一台主机
HOST
1
,其实提供了
抽象的
4
台主机,而上面的四台主机或许是一台抽象的服务器)
。
2.
实现对每个服务器资源
的更好的利用,利用了虚拟机,下图是更多的实
现
上面每个虚拟的服务器,或者网络,或者存储设备之后都是一
个
Pool,
这样
无论对资源的分配还
是对请求响应都是更加灵活而有效。
OpenStack
完成数据中心虚拟化后,
OpenStack
提供对云进行管理的一层,
负责在云上部署各种应用和文件,
< br>同时还要提供对应用和文件的检索,
创建和分
配虚拟机,
当虚拟机用完之后还要撤销,
要提供用户和管理员接口,
用户要能知
道自己的应用的情况,
管理员也要
能知道整个云的运行情况,
负责云存储的分配,
检索,收回。<
/p>
1.2.4.
具体功能
OpenStack
有很多关键特性,这些特性主要有
:
1)
管理虚拟化的产品服务器和相关
资源
(cpu,memory,disk,network
)<
/p>
,提高其
提高其利用率和资源的自动化分配
(
具有更高的性价比
)
。
2)
管理局域网(
Flat,Flat DHCP, VLAN
DHCP ,IPv6
)
,
程序配置的
IP
和
VLAN,
能为应用程序和用户组提供灵活的网络模式。
3)
带有比例限定和身份认证:
p>
这是为自动化和安全设置的,
容易管理接入用户,
< br>阻止非法访问。
4)
分布式和异步体系结构:提供高弹性和高可用性系统
5)
虚拟机镜像管理:能提供易存储
,引入,共享和查询的虚拟机镜像
6)
虚拟机实例管理:提高生命周期
内可操作的应用数量,从单一用户接口到各
种
API
,例如一台主机虚拟的
4
台服务器,可以有
4
中
API
接口,管
理
4
个
应用。
7)
创建和管理实例类型
(
Flavors
)
:<
/p>
为用户建立菜单使其容易确定虚拟机大小,
并作出选择。
8)
iSCSI<
/p>
存储容器管理
(创建,
删除,
附加,
和转让容器)
:
数
据与虚拟机分离,
容错能力变强,更加灵活。
9)
在线迁移实例。