你好,游客 登录
背景:
阅读新闻

面向虚拟基础设施的云服务Eucalyptus

[日期:2010-03-23] 来源:  作者: [字体: ]

Eucalyptus

 

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

不管是源代码还是包安装,Eucalyptus 很容易安装在现今大多数 Linux® 发布版上。它提供了如下这些高级特性:

  • 与 EC2 和 S3 的接口兼容性(SOAP 接口和 REST 接口)。使用这些接口的几乎所有现有工具都将可以与基于 Eucalyptus 的云协作。
  • 支持运行在 Xen hypervisor 或 KVM 之上的 VM 的运行。未来版本还有望支持其他类型的 VM,比如 VMware。
  • 用来进行系统管理和用户结算的云管理工具。
  • 能够将多个分别具有各自私有的内部网络地址的集群配置到一个云内。

架构

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(Xen 或最近的 KVM,很快就会支持 VMWare)。必须在托管了实际的虚拟实例(根据来自 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。这种配置主要适合于试验的目的以及快速配置的目的。通过将所有东西都组合到一个机器内,还可以进一步简化,但这个机器需要非常健壮才能这样做。

图 3. 一个单集群 Eucalyptus 安装的拓扑

一个单集群 Eucalyptus 安装的拓扑

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

图 4. 一个多集群 Eucalyptus 安装的拓扑

一个多集群 Eucalyptus 安装的拓扑

在将 Eucalyptus 安装并应用到您的基础设施上之前,需要考虑硬件要求。虽然出于试验目的,可以在一个笔记本电脑上运行全部内容,但是对于一个实际的部署场景,多集群无疑是一个更好的选择。如下所列的是 Ubuntu 管理员对硬件配置方面的一些指导。这些指导可广泛应用于任何的 Linux 发布版(不只是 Ubuntu)。

下面的指标是对用来运行 CC、CLC、Walrus 或 SC 的机器的建议配置。

硬件 最低 建议
CPU 1 GHz 2 x 2GHz
内存 512 MB 2 GB
硬盘 5400rpm IDE 7200rpm SATA
磁盘空间 40 GB 200 GB
联网 100 Mbps 1000 Mbps

运行 NC 的机器需要更为强大,因为这些机器将会运行每个虚拟实例。它们还需要充足的磁盘空间来存储启动实例所需的映像。运行 NC 的这些机器最好是多核的、内存至少 4 GB、使用高速磁盘驱动器。如下是一些建议指标。

硬件 最低 建议
CPU VT 扩展 VT,64-位,多核
内存 1 GB 4 GB
磁盘 5400rpm IDE 7200rpm SATA 或 SCSI
磁盘空间 40 GB 100 GB
联网 100 Mbps 1000 Mbps

可用性和安装

在我写作本文之时,Eucalyptus 的最新版本是 1.6。您可以通过使用由该项目托管的免费公共实例 ucalyptus Public Cloud (EPC) 立即体验 Eucalyptus。EPC 具有有限的资源,所以对能够启用的实例的数量以及能够使用的存储量都是有限制的。但是,它仍然是一个很好的体验 Eucalyptus 和了解该环境的途径。

Eucalyptus 可以从源代码安装,也可以从面向特定 Linux 发布版的包安装。从源代码安装虽然复杂一些,但可工作于几乎所有的 Linux 最新版本。包安装虽然简便,但只适用于 Redhat 和基于 Debian 的发布版。更详细的安装指导,请参考 Eucalyptus 管理员指南。安装 Eucalyptus 最为简单的方法是安装 Ubuntu Linux 发布版的最新版本 Karmic Koalad,并充分利用 Ubuntu Enterprise Cloud,它能提供对运行基于 Eucalyptus 的云的完整支持。

Eucalyptus 和 Ubuntu Enterprise Cloud

Ubuntu Enterprise Cloud (UEC) 是一个由 Ubuntu 提出的新的开源计划,旨在进一步简化基于 Eucalyptus 的云基础设施的部署、配置和使用。UEC 简化了如下内容:

  • 创建能够在 Amazon 的 EC2 基础设施上运行 Eucalyptus 的公共云
  • 创建能够在位于防火墙之后的数据中心内部的基础设施之上运行的私有云

这是到目前为止最为简单的安装和尝试使用 Eucalyptus 的方式。只需下载 CD 服务器版并将其安装在任何想要的地方。UEC 也是第一个允许在本地环境轻松创建云服务并进而利用云计算强大功能的开源项目。

Eucalyptus 的益处

Eucalyptus 是一个具有优良架构的云服务环境,可用来在 Amazon 的 EC2 基础设施上创建一个公共云,或者在您的数据中心(甚至是笔记本电脑)内创建私有云。如果您正在考量在您的团队或组织内使用云计算,那么 Eucalyptus 非常值得您考虑用作云服务平台。它提供了如下一些好处。

开源和开发
Eucalyptus 的创建是为了促进云计算平台方面的交流和研究。它以源代码的形式提供免费使用,这就使得您很容易透过其表面看到它的实质,或是针对自己的需求创建该平台的扩展。开发的步调很快。特性以及改进不断被添加到 Eucalyptus。
杰出社区
Eucalyptus 具有一个由愿意与他人免费共享自己见地的热情而博学的用户组成的杰出社区。他们的论坛是您获得支持并与其他 Eucalyptus 用户交互的一个很好的途径。
公共云
Eucalyptus 可很容易地作为一个公共云安装和运行在 Amazon 的 EC2 框架上。
私有云
Eucalyptus 可被作为运行在您的基础设施之上的私有云安装于防火墙后的数据中心内。这样,您就获得了对安全性和环境的全面控制。
可移植性
得益于 Eucalyptus 与 Amazon 的 EC2 API 的兼容性以及 Eucalyptus 的灵活性,可以很容易地将应用程序从一个云迁移到另一个云。甚至可以创建混合云来同时使用公共和私有云。
经过了良好的测试
Eucalyptus 现在是 Ubuntu Enterprise Cloud 的一部分,并且是全球数千个 Ubuntu 服务器的一个组件。这种测试规模将会很快巩固 Eucalyptus 平台的稳定性。
商业支持
如果您需要超出论坛所能提供的更快的支持,对于基于 Eucalyptus 的云还有商业支持可用。

结束语

在本文中,您了解了 Infrastructure as a Service (IaaS) 云计算环境。您还探究了可用来创建公共或私有云基础设施的开源 Eucalyptus 项目。

本系列的第 2 部分将着眼于 Platform as a Service (PaaS) 云环境以及 Appscale,一个用来运行 Google App Engine 应用程序的开源项目。

推荐 打印 | 录入: | 阅读:
相关新闻      
本文评论   
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款