Eucalyptus是一个开源的虚拟化平台,可以用来做云计算底层的虚拟化平台,提供集群计算或弹性实用的云计算。中文简介可以看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,可以比较深入的了解这个虚拟化平台的拓扑结构,构成了三层的管理层级关系,第一层是CLC管理CC和Walrus,可以从注册时的命令看出来,这两者是最先注册的,CC管理NC,Walrus管理SC。
11.上传镜像
首先上传内核镜像
1. [CentOS231]/tmp# euca-bundle-image -i /boot/vmlinuz-2.6.18-194.el5xen --
kernel true
2. Checking image
3. Tarring image
4. Encrypting image
5. Splitting image...
6. Part: vmlinuz-2.6.18-194.el5xen.part.0
7. Generating manifest /tmp/vmlinuz-2.6.18-194.el5xen.manifest.xml
更新内核镜像
1. [CentOS231]~/download/work$ euca-upload-bundle -b xiaonan_test -m /tmp/vmli
nuz-2.6.18-194.el5xen.manifest.xml
2. Checking bucket: xiaonan_test
3. Uploading manifest file
4. Uploading part: vmlinuz-2.6.18-194.el5xen.part.0
5. Uploaded image as xiaonan_test/vmlinuz-2.6.18-194.el5xen.manifest.xml
6. [CentOS231]~/download/work$ ls
7. vmlinuz-2.6.18-194.el5xen.manifest.xml
注册内核镜像
1. [CentOS231]/tmp# euca-register xiaonan_test/vmlinuz-2.6.18-
194.el5xen.manifest.xml
2. IMAGE eki-D7F41498
上传、更新、注册 ramdisk 镜像步骤也是一样:
1. [CentOS231]/tmp# euca-bundle-image -i /boot/initrd-2.6.18-194.el5xen.img --
ramdisk true
2. Checking image
3. Tarring image
4. Encrypting image
5. Splitting image...
6. Part: initrd-2.6.18-194.el5xen.img.part.0
7. Generating manifest /tmp/initrd-2.6.18-194.el5xen.img.manifest.xml
8. [CentOS231]/tmp# euca-upload-bundle -b xiaonan_test -m /tmp/initrd-2.6.18-
194.el5xen.img.manifest.xml
9. Checking bucket: xiaonan_test
10.Uploading manifest file
11.Uploading part: initrd-2.6.18-194.el5xen.img.part.0
12.Uploaded image as xiaonan_test/initrd-2.6.18-194.el5xen.img.manifest.xml
13.[CentOS231]/tmp# euca-register xiaonan_test/initrd-2.6.18-
194.el5xen.img.manifest.xml
14.IMAGE eri-11541578
虚拟机镜像上传、更新、注册
1. 文件系统镜像:
2. [root@20-CentOS143 boot]# euca-bundle-image -i ../../518.img -kernel eki-
D7F814A4 --ramdisk eri-1165158B
3. Invalid private key
4. [root@20-CentOS143 boot]# cd ../../
5. [root@20-CentOS143 xiaonan]# ls
6. 518 518.img
7. [root@20-CentOS143 xiaonan]# euca-bundle-image -i 518.img --kernel eki-
D7F814A4 --ramdisk eri-1165158B
8. Checking image
9. Tarring image
10.Encrypting image
11.Splitting image...
12.Part: 518.img.part.0
13.Part: 518.img.part.1
14.Part: 518.img.part.2
15.Part: 518.img.part.3
16....
17.Part: 518.img.part.93
18.Part: 518.img.part.94
19.Part: 518.img.part.95
20.Generating manifest /tmp/518.img.manifest.xml
21.[root@20-CentOS143 xiaonan]# euca-upload-bundle -b xiaonan_test -m /tmp/51
8.img.manifest.xml
22.Checking bucket: xiaonan_test
23.Uploading manifest file
24.Uploading part: 518.img.part.0
25.Uploading part: 518.img.part.1
26.Uploading part: 518.img.part.2
27.Uploading part: 518.img.part.3
28.Uploading part: 518.img.part.4
29....
30.Uploading part: 518.img.part.88
31.Uploading part: 518.img.part.89
32.Uploading part: 518.img.part.90
33.Uploading part: 518.img.part.91
34.Uploading part: 518.img.part.92
35.Uploading part: 518.img.part.93
36.Uploading part: 518.img.part.94
37.Uploading part: 518.img.part.95
38.Uploaded image as xiaonan_test/518.img.manifest.xml
39.[root@20-CentOS143 xiaonan]# euca-register xiaonan_test/518.img.manifest.x
ml
40.IMAGE emi-84310EF9
运行虚拟机实例
1、为即将运行的实例创建密钥对
1. [CentOS231]#euca-add-keypair mykey >mykey.privatex
2. [CentOS231]#chmod 0600 mykey.privatex
2、先查看虚拟机镜像列表,比较多,刚才上传的是 xiaonan_test
1. [CentOS231]/tmp# euca-describe-images
2. IMAGE emi-24700CE8 c386/rootfs.img.manifest.xml admin available
public
x86_64 machine eki-E8031095 eri-1530116A instance-store
3. IMAGE eki-373911F4 test386/vmlinuz-2.6.18-194.el5xen.manifest.xml admin
available
public
x86_64 kernel
instance-store
4. IMAGE eri-1165158B xiaonan_test/initrd-2.6.18-194.el5xen.img.manifest.xml
admin available
public
x86_64 ramdisk
instance-store
5. IMAGE eki-D7F814A4 xiaonan_test/vmlinuz-2.6.18-194.el5xen.manifest.xml
admin available
public
x86_64 kernel
instance-store
6. IMAGE emi-5E950E38 test386/rootfs.img.manifest.xml admin available
public
x86_64 machine eki-373911F4 eri-687912D3 instance-store
7. IMAGE emi-C0640FC6 ubu/ubuntu.9-04.x86-64.img.manifest.xml admin avail
able
public
x86_64 machine eki-E5E1104A eri-C9240FC3 instance-
store
8. IMAGE eri-1530116A c386/initrd-2.6.18-194.el5xen.img.manifest.xml admin
available
public
x86_64 ramdisk
instance-store
9. IMAGE eki-E8031095 c386/vmlinuz-2.6.18-194.el5xen.manifest.xml admin
available
public
x86_64 kernel
instance-store
10.IMAGE emi-FC841515 qubt-image-bucket/ubuntu.9-04.x86-
64.img.manifest.xml admin available
public
x86_64 machine eki-
536A1612 eri-4D9215E7 instance-store
11.IMAGE eri-4D9215E7 qubt-ramdisk-bucket/initrd-2.6.27.21-0.1-
xen.manifest.xml
admin available
public
x86_64 ramdisk
instance-store
12.IMAGE eri-687912D3 test386/initrd-2.6.18-194.el5xen.img.manifest.xml
admin available
public
x86_64 ramdisk
instance-store
13.IMAGE eki-E5E1104A ubu/vmlinuz-2.6.27.21-0.1-xen.manifest.xml
admin
available
public
x86_64 kernel
instance-store
14.IMAGE eki-53BA1623 qubt-kernel-bucket/vmlinuz-2.6.27.21-0.1-
xen.manifest.xml
admin available
public
x86_64 kernel
instance-store
15.IMAGE emi-84310EF9 xiaonan_test/518.img.manifest.xml
admin available
public
x86_64 machine eki-D7F814A4 eri-1165158B instance-
store
16.IMAGE eri-C9240FC3 ubu/initrd-2.6.27.21-0.1-xen.manifest.xml
admin available
public
x86_64 ramdisk
instance-store
3、查看正在运行的实例的虚拟机
1. [CentOS231]/tmp# euca-describe-instances
2. RESERVATION r-3BBF0652
admin default
3. INSTANCE
i-500A088A
emi-FC841515 10.10.1.9
10.10.1.9
running
0
m1.small
2011-05-11T10:51:36.889Z
nfs-cl-1 eki-53BA1623 eri-4D9215E7
4. RESERVATION r-463907D2
admin default
5. INSTANCE
i-4A5D0845
emi-FC841515 10.10.1.3
10.10.1.3
running
0
m1.small
2011-05-11T10:49:21.889Z
nfs-cl-1 eki-
53BA1623 eri-4D9215E7
6. RESERVATION r-447507AD
admin default
7. INSTANCE
i-3E230792
emi-FC841515 192.168.55.106 10.10.1.10
running
0
m1.small
2011-05-11T10:48:33.889Z
nfs-cl-1 eki-53BA1623 eri-4D9215E7
8. RESERVATION r-4BE608C2
admin default
9. INSTANCE
i-464C08B7
emi-FC841515 10.10.1.7
10.10.1.7
running
0
m1.small
2011-05-11T10:51:32.889Z
nfs-cl-1 eki-53BA1623 eri-4D9215E7
4、将我刚才上传的虚拟机镜像作为实例运行起来
1. [CentOS231]/tmp# euca-run-instances -k mykey emi-84310EF9 -t c1.medium
2. RESERVATION r-519A0978
admin admin-default
3. INSTANCE
i-4BD8099F
emi-84310EF9 0.0.0.0 0.0.0.0 pending mykey 2
011-05-19T06:50:53.654Z
eki-D7F814A4 eri-1165158B
5、查看已运行的实例,查看我的实例
实例编号为:i-4BD8099F
存储编号为:r-519A0978
是否真正运行起来
1. [CentOS231]/tmp# euca-describe-instances
2. RESERVATION r-3BBF0652
admin default
3. INSTANCE
i-500A088A
emi-FC841515 10.10.1.9
10.10.1.9
running
0
m1.small
2011-05-11T10:51:36.889Z
nfs-cl-1 eki-53BA1623 eri-4D9215E7
4. RESERVATION r-519A0978
admin default
5. INSTANCE
i-4BD8099F
emi-84310EF9 192.168.55.100 10.10.1.2
running
0
c1.medium
2011-05-19T06:50:53.654Z nfs-cl-1
eki-D7F814A4 eri-1165158B
6. RESERVATION r-463907D2
admin default
7. INSTANCE
i-4A5D0845
emi-FC841515 10.10.1.3
10.10.1.3
running
0
m1.small
2011-05-11T10:49:21.889Z
nfs-cl-1 eki-53BA1623 eri-4D9215E7
8. RESERVATION r-447507AD
admin default
9. INSTANCE
i-3E230792
emi-FC841515 192.168.55.106 10.10.1.10
running
0
m1.small
2011-05-11T10:48:33.889Z
nfs-cl-1 eki-
53BA1623 eri-4D9215E7
10.RESERVATION r-4BE608C2
admin default
11.INSTANCE
i-464C08B7
emi-FC841515 10.10.1.7
10.10.1.7
running
0
m1.small
2011-05-11T10:51:32.889Z
nfs-cl-1 eki-53BA1623 eri-4D9215E7
查到了,运行成功了:
1. RESERVATION r-519A0978
admin default
2. INSTANCE
i-4BD8099F
emi-84310EF9 192.168.55.100 10.10.1.2
running
0
c1.medium
2011-05-19T06:50:53.654Z nfs-cl-1
eki-D7F814A4 eri-1165158B