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一个 Eucalyptus 云安装可以聚合和管理来自一个或多个集群的资源。一个集群 是连接到相同 LAN 的一组机器。在一个集群中,可以有一个或多个 NC 实例,每个实例管理虚拟实例的实例化和终止。
在一个单一集群的安装中,如图 所示,将至少包含两个机器:一个机器运行 CC、SC 和 CLC;另一个机器运行 NC。这种配置主要适合于试验的目的以及快速配置的目的。通过将所有东西都组合到一个机器内,还可以进一步简化,但这个机器需要非常健壮才能这样做。
在多集群安装中,可以将各个组件(CC、SC、 NC 和 CLC)放置在单独的机器上。如果想要用它来执行重大的任务,那么这么做就是一种配置 Eucalyptus 云的理想方式。多集群安装还能通过选择与其上运行的控制器类型相适应的机器来显著提高性能。比如,可以选择一个具有超快 CPU 的机器来运行 CLC。多集群的结果是可用性的提高、负载和资源的跨集群分布。集群的概念类似于 Amazon EC2 内的可用性区域的概念。资源可以跨多个可用性区域分配,这样一来,一个区域内的故障不会影响到整个应用程序。
在将 Eucalyptus 安装并应用到您的基础设施上之前,需要考虑硬件要求。虽然出于试验目的,可以在一个笔记本电脑上运行全部内容,但是对于一个实际的部署场景,多集群无疑是 一个更好的选择。如下所列的是 Ubuntu 管理员对硬件配置方面的一些指导。这些指导可广泛应用于任何的 Linux 发布版(不只是 Ubuntu)。