搭建云计算平台~Eucalyptus安装日志 Centos 5.3

我只是记点流水帐,不是技术文档。

1。首先找到文档 http://open.eucalyptus.com/wiki/EucalyptusPrerequisites_v1.5.2
看看安装前需要准备什么。

2。去 http://open.eucalyptus.com/downloads
下载一个安装包。我使用的是centos5.3

3.解压缩后进入那个解压的目录。这步可以以后再做。

4。添加各种可能需要的包:

//为了和让时钟同步 yum install -y ntp ntpdate pool.ntp.org //安装xen虚拟机 yum install -y
xen sed --in-place ‘s/#(xend-http-server no)/(xend-http-server yes)/’ /etc/xen
/xend-config.sxp sed --in-place ‘s/#(xend-address localhost)/(xend-address
localhost)/’ /etc/xen/xend-config.sxp /etc/init.d/xend restart
//为了让Eucalyptus正常运行 yum install -y java-1.6.0-openjdk ant ant-nodeps dhcp
bridge-utils

然后开放firewall的端口,输入:system-config-securitylevel 我只是开放了端口8443, 8773, 8774 ,8775四
个端口。传说对于前端前三个端口是必须开的。对于Node来说8775是必须开的。但是Eucalyptus建议:最好把全部的防火墙都关了吧。可见这个项目仅仅是实

了云,但是对于云的安全性尚没有考虑。

5。这里前端要安装的命令如下:(这里所说的前端是指和用户打交道的一个PC,node可以看作是集群中的一个节点),以下命令中的x86_64可以替换。我安装时就
使用的586. 安装云的命令中x86_64有的又变为i386.不过不管怎样。似乎是把里面的rpm包都安装完即可。

//安装第三方软件 cd eucalyptus-1.5.2-rpm-deps-x86_64 rpm -Uvh
aoetools-21-1.el4.x86_64.rpm / euca-axis2c-1.5.0-2.x86_64.rpm / euca-
rampartc-1.2.0-1.x86_64.rpm / vblade-14-1mdv2008.1.x86_64.rpm cd … //安装云 rpm
-Uvh eucalyptus-1.5.2-1.x86_64.rpm / eucalyptus-cloud-1.5.2-1.x86_64.rpm /
eucalyptus-gl-1.5.2-1.x86_64.rpm / eucalyptus-cc-1.5.2-1.x86_64.rpm

6。Node要安装的包

cd eucalyptus-1.5.2-rpm-deps-x86_64 rpm -Uvh aoetools-21-1.el4.x86_64.rpm /
euca-axis2c-1.5.0-2.x86_64.rpm / euca-rampartc-1.2.0-1.x86_64.rpm / euca-
libvirt-1.5-1.x86_64.rpm / vblade-14-1mdv2008.1.x86_64.rpm

//安装node controller rpm -Uvh eucalyptus-1.5.2-1.x86_64.rpm / eucalyptus-
gl-1.5.2-1.x86_64.rpm / eucalyptus-nc-1.5.2-1.x86_64.rpm

7。我这里为了方便。将node和front-end(前端)放在一个PC上。不知道是否可行,姑且一试。执行完第五步后,再回到

eucalyptus-1.5.2-rpm-deps-i586, 安装 euca-libvirt-1.5-1.i386.rpm
,然后再回上级目录安装eucalyptus-nc-1.5.2-1.i386.rpm

8. 然后根据指示输入:su eucalyptus -c “virsh list” 果真fail to connect
xend,但是没有像传说中的一样,我这里没有显示Domain -0.

9.暂时不管它,前端要执行

/etc/init.d/eucalyptus-cloud start /etc/init.d/eucalyptus-cc start

10. Node要执行:/etc/init.d/eucalyptus-nc start

11。对于我来说要在同一台PC上执行这三个操作。执行cloud时说You should have at least 32 loop
devices。可以使用命令:ls -l /dev/loop* | wc -l 来查看你现在有几个loop device.如果小于32,vim
/etc/modprobe.conf(这里不同的机器可能有所不同),增加一行:options loop max_loop=64,然后modprobe
loop。再输入ls-l /dev/loop* | wc -l 看看是否为64。

如果是64之后继续敲命令。可能会在启动nc的时候报出失败:

You should have at least 32 loop devices
Starting Eucalyptus services: Node Controller cannot be started: errors in
/opt/eucalyptus/var/log/eucalyptus/euca_test_nc.log

我查看了以下/opt/eucalyptus/var/log/eucalyptus/euca_test_nc.log这个文件。有以下几行。

libvir: Xen Daemon error : internal error failed to connect to xend
libvir: Xen Daemon error : unable to connect to ‘localhost:8000’: Connection
refused
libvirt error: unable to connect to ‘localhost:8000’: Connection refused
(code=38)

难道是8000端口没有开?关闭防火墙和SELinux之后,再试。结果还是这个错误。莫非是有什么软件没有装?再试试这个命令:

yum install -y java-1.6.0-openjdk-devel ant ant-nodeps libvirt-devel curl-devel /  

 httpd httpd-devel apr-devel openssl-devel dhcp   
结果还是不行。看来不是包没有装。再使用su eucalyptus -c "virsh list" 命令,得到的信息为" libvir: 错误 : 操作失败 :   

xenProxyOpen错误: 连接到管理程序失败。那可能是xend 服务没有看。使用xend start结果抛出了异常。  

(不能使用system-config-services来查看xend是否已经启动。因为我查看过,结果为对勾,害我又查了很久。)如何开启呢?  

首先要重启,grub会有新的一行出现(在重启之前一定要先关闭SElinux,方法为system-config-securitylevel的第二个选项卡,  

选择禁止即可。否则进入Xen会等待很长时间。)。进入Xen之后。首先Xend start,然后可以使用xm list。这次你应该能看到  

那个domain-0了吧。之后就使用eucalyptus的命令启动即可。不过可能还会遇到loop device less than 32的警告。  

再次更改 /etc/modprobe.conf文件,加入 options loop max_loop=64 保存后在命令行中输入:modprobe loop即可。  

再使用下面的命令:  

eucalyptus-cloud start  

eucalyptus-cc start  

eucalyptus-nc start   

cloud启动时可能会有Is cloud alread start?的提示。如果不放心就使用eucalyptus-cloud restart好了。这次应该啥错误都没有了!  

安装结束!(我只用了一台机器安装云...多台的暂时没有尝试。)

如果出现了以下的错误:

Restarting Eucalyptus cluster controller: (13)Permission denied: make_sock:
could not bind to address [::]:8774
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:8774
no listening sockets available, shutting down
Unable to open logs
Failed to start the CC!

那一定是system-config-security中,防火墙没有置为disable或者seLinux没有置为passivate或者disable导致的。