我只是记点流水帐,不是技术文档。
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导致的。