Eucalyptus 2.0 on Ubuntu 10.10
2010-10-14 13:34 by hackerzhouEucalyptus是一个开源的虚拟化平台,可以用来做云计算底层的虚拟化平台,提供集群计算或弹性实用的云计算。中文简介可以看http://www.oschina.net/p/eucalyptus。Eucalyptus分商业版和开源版,本文以开源版(Eucalyptus 2.0)为讨论的对象,官方的Administrator’s Guide地址http://open.eucalyptus.com/book/export/html/4263。
架构拓扑图:
简介:
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 实例,每个实例管理虚拟实例的实例化和终止。
以上摘自oschina,大家可以对eucalyptus的架构有一个基础的了解,下面来说说安装方法,我在失败了一次之后总算配置好了。
安装方法:
在一台物理机(也可以在多台物理主机)上尝试安装eucalyptus所有的部件,不推荐在虚拟机环境下进行安装,前一次的配置失败我觉得很大程度上是虚 拟机/桥接网络惹得祸。而且由于采用的Eucalyptus版本为2.0,Ubuntu的版本为10.10,都是最新版,网上找到的教程并不能完全通用, 故把我的尝试以及最后的做法写下来,供大家参考。
1. 先用apt-get的方法安装eucalyptus的各个组件,Node Controller需要CPU的虚拟化支持,所以不能装在虚拟机里,其他的组件理论上都是能在虚拟机里安装(不过我配置失败了)。
如果想在一台机器上跑所有的服务的话可以
sudo apt-get install eucalyptus*
或
sudo apt-get install eucalyptus-cloud eucalyptus-cc eucalyptus-walruses eucalyptus-sc eucalyptus-nc
如果有两台或更多机器想分开装的话也可以,一般是nc一台机器,clc+cc+walruses+sc一台机器。
2. 安装结束后,eucalyptus各个组件也会自己启动起来,接下来我们需要执行一些命令来将各个组件连在一起,注册组件的命令是euca_conf –register-XXX。
3. 在接下来的任何一个注册组件的过程中,系统都会要求用户输入eucalyptus用户的密码,但是在之前的安装过程中,系统并没有告知密码或提示需要设定密码,故我们需要通过下面的命令来为eucalyptus用户创建一个临时的密码,用完后删除该临时密码。
sudo passwd eucalyptus
根据系统的提示进行一步一步的操作并确定新的密码。
4. 运行以下命令以注册Walrus:
sudo euca_conf –register-walrus 192.168.1.103
5. 运行以下命令以注册cluster controller:
sudo euca_conf –register-cluster cluster1 192.168.1.103
6. 运行以下命令以注册storage controller:
sudo euca_conf –register-sc cluster1 192.168.1.103
7. 运行以下命令以注册Node Controller
sudo euca_conf -addnode 192.168.1.103
此处用sudo euca_conf –register-nodes “192.168.1.103” 会报“ERROR: you need to be on the CC host and the CC needs to be running.“的错误,没有深究原因,觉得sudo euca_conf –discover-nodes应该也是可以的(没有试验过,试过的同学可以告诉我结果)。
8. 注册完之后删除临时密码,以保障安全性。
sudo passwd -d eucalyptus
9. 在配置过程中,为了使整个Eucalyptus方便地重启CC,CLC,SC和Walrus,以及为了方便地查看所有的组件都已经在Eucalyptus系统中被注册好了,写了两个脚本用来简化操作:
euca_conf –list-nodes
euca_conf –list-scs
euca_conf –list-clusters
euca_conf –list-walruses
这是查看是否组件都已经注册好了的命令,如果每条命令都有输出已经注册的组件的ip,那就说明都注册好了。
restart eucalyptus-cc
restart eucalyptus-cloud
restart eucalyptus-nc
restart eucalyptus
这是重启eucalyptus这个平台每个组件的命令,如果修改了配置文件等需要通过这种方法来使得配置生效。
10.下载证书并安装
登录http://clc-ip:8443/,默认用户名admin,密码admin,进去后可以看到有下载证书的链接,下载下来后保存在一个文件夹内,我们假定为cert。
执行以下语句导入证书
chmod 700 -R cert
cd cert
./eucarc
导入好证书之后我们就可以去下载镜像并安装了。
注意事项:
删除cluster只能从web管理页面删除,在命令行下删除会报“ERROR: failed to deregister new cluster, please log in to the admin interface and check cloud status.”。
同时,删除了cluster之后与之关联的sc也会失效,需要重新注册。
通过安装eucalyptus,可以比较深入的了解这个虚拟化平台的拓扑结构(见eucalyptus拓扑图),构成了三层的管理层级关系,第一层是CLC管理CC和Walrus,可以从注册时的命令看出来,这两者是最先注册的,CC管理NC,Walrus管理SC。