CentOS上安装Eucalyptus完整教程及问题解决
此文档结合eucalyptus官方网站说明,及在CentOS上安装过程出现的问题解决方案,整理出一份完整的安装文档,供大家在源代码安装eucalyptus时参考。
文档说明思路如下:
先说明在cc机器上的安装
第一:在安装前的准备工作:
1、 xen安装:一般linux在安装时让用户选择安装程序中有xen相关,选择即可。
测试xen安装是否正常:
命令:xm list
结果:
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 1721 1 r----- 1
如果测试不正确的话,需要重新卸载xen后重新安装xen,这个可参考网上xen安装文档
2、 测试dhcp服务器运行状态
命令:service dhcp status
3、 yum安装,在运行命令yum install gcc等时会出现问题如下:
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=5&arch=i386&repo=addons error was
[Errno 4] IOError: <urlopen error (-3, '\xe5\x9f\x9f\xe5\x90\x8d\xe8\xa7\xa3\xe6\x9e\x90\xe6\x9a\x82\xe6\x97\xb6\xe5\xa4\xb1\xe8\xb4\xa5')>
Error: Cannot find a valid baseurl for repo: addons
关于此问题的解决参看网站http://centos.ustc.edu.cn/上的安装说明,即可正常使用
4、 安装vblade包,官网有说明:
For persistent dynamic block storage (aka EBS) to work, the front end will need to have the following software packages installed:
a) lvm2 package (e.g., command lvm should work)
b) aoetools package. The aoe module needs to be loaded on the front end as well as all nodes (modprobe aoe). If your kernel does not have ATA-over-Ethernet support, you will have to add that.
c) vblade package
我必须先下载一个vblade的安装包,然后查看安装包中的readme文件,查看如何安装此包,安装即可。
第二步:安装eucalyptus
1、 先安装工具安装包:
yum install -y java-1.6.0-openjdk-devel ant ant-nodeps libvirt-devel curl-devel httpd httpd-devel apr-devel openssl-devel dhcp libxml2 libxml2-devel gnutls gnutls-devel xen-devel libgcrypt-devel zlib-devel perl-Convert-ASN1 perl-Crypt-OpenSSL-RSA perl-Crypt-OpenSSL-Random chkfontpath scsi-target-utils fuse-libs swig gcc
2、 参看官网安装说明安装
(1)先在root下建立一个目录来安装eucalyptus:
mkdir zyq
先定义版本的环境变量: export VERSION=2.0.2
(2)下载源代码文件,将
eucalyptus-2.0.2-src-offline.tar.gz和eucalyptus-2.0.2-src-deps.tar.gz
上传至创建的文件夹zyq,解压源文件:
cd /root/zyq
tar zvxf eucalyptus-$VERSION-src.tar.gz
(3)设定环境变量:
命令运行:
pwd
cd eucalyptus-$VERSIONexport EUCALYPTUS_SRC=`pwd`export EUCALYPTUS=/opt/eucalyptus(4)安装依赖包
cd $EUCALYPTUS_SRCtar zvxf ../eucalyptus-$VERSION-src-deps.tar.gzmkdir -p $EUCALYPTUS/packages/ 安装axis2
cd $EUCALYPTUS/packagestar zxvf $EUCALYPTUS_SRC/eucalyptus-src-deps/axis2-1.4.tgz
安装Axis2/C:
l 先设定环境变量:
export APACHE_INCLUDES=/usr/include/httpd/export APR_INCLUDES=/usr/include/apr-1/l 安装:
export AXIS2C_HOME=$EUCALYPTUS/packages/axis2c-1.6.0cd $EUCALYPTUS_SRC/eucalyptus-src-deps/tar zvxf axis2c-src-1.6.0.tar.gzcd axis2c-src-1.6.0CFLAGS="-w" ./configure --prefix=${AXIS2C_HOME} --with-apache2=$APACHE_INCLUDES --with-apr=$APR_INCLUDES --enable-multi-thread=nomake ; make install安装Rampart/C
export AXIS2C_HOME=$EUCALYPTUS/packages/axis2c-1.6.0export LD_LIBRARY_PATH=${AXIS2C_HOME}/lib:$LD_LIBRARY_PATHcd $EUCALYPTUS_SRC/eucalyptus-src-deps/tar zvxf rampartc-src-1.3.0-0euca1.tar.gzcd rampartc-src-1.3.0./configure --prefix=${AXIS2C_HOME} --enable-static=no --with-axis2=${AXIS2C_HOME}/include/axis2-1.6.0make ; make install安装完毕后修改文件$AXIS2C_HOME/axis2.xml,
vi $AXIS2C_HOME/axis2.xml
In the 'inflow' section, change:
<!--phase name="Security"/--> to <phase name="Security"/>
In the 'outflow' section, change:
<!--phase name="Security"/--> to <phase name="Security"/>
(5)安装eucalyptus
先确定JAVA_HOME是否定义,
export JAVA_HOME="/usr/lib/jvm/java-openjdk/"export JAVA="$JAVA_HOME/jre/bin/java" 安装eucalyptus:
cd $EUCALYPTUS_SRC./configure --with-axis2=$EUCALYPTUS/packages/axis2-1.4 --with-axis2c=$EUCALYPTUS/packages/axis2c-1.6.0 --enable-debug --prefix=$EUCALYPTUSmake ; make install(6)部署eucalyptus
官网说明如下:
rsync -a $EUCALYPTUS/ root@{node-host-1}:$EUCALYPTUS/ rsync -a $EUCALYPTUS/ root@{node-host-2}:$EUCALYPTUS/ 实现的功能是将/opt/eucalyptus下的内容复制一份在nc节点上,只是单纯的复制文件,所以在nc必须安装官网在安装说明的那些包,我在这采用了将以上安装的内容在nc也安装一遍,但是如果有多个nc节点的话,这样做会大大降低效率,但是必须保证nc节点的机器符合之前的安装需求。
(7) 配置主机
a.添加用户eucalyptus
useradd eucalyptus b.配置hypervisor,我们采用libvirt来管理xen虚拟化
测试:
virsh list
正确结果:
Id 名称 状态
----------------------------------
0 Domain-0 running
2 i-5691096D 闲置
错误结果:
错误:连接到管理程序失败
解决办法就是修改配置文件,如下说明
l xen配置文件:
vi /etc/xend/xend-config.sxp (注意有的机器文件夹是xen,而不是xend)
修改为如下:
(xend-http-server yes)(xend-unix-server yes)(xend-unix-path /var/lib/xend/xend-socket)(xend-address localhost)(network-script network-bridge)(vif-script vif-bridge)(dom0-min-mem 196)(dom0-cpus 0)(vncpasswd '')l Libvirt
测试libvirt:
virsh list
修改libvirt配置文件:
vi /etc/libvirt/libvirtd.conf
#unix_sock_group = "libvirt" => unix_sock_group = "libvirt"
#unix_sock_ro_perms = "0777" => unix_sock_ro_perms = "0777"
#unix_sock_rw_perms = "0770" => unix_sock_rw_perms = "0770"
修改完以后要重启xend
c.配置network
有四种网络模式,我们采用的是system模式
d.配置Eucalyptus components
在所有节点上运行如下命令:
$EUCALYPTUS/usr/sbin/euca_conf -d $EUCALYPTUS --hypervisor xen --instances /usr/local/eucalyptus --user eucalyptus --setup功能说明:
-d specifies the root of Eucalyptus installation ($EUCALYPTUS)
--hypervisor specifies the hypervisor ('xen' or 'kvm')切记在这里必须选择自己使用的虚拟化技术
--instances specifies where, on compute nodes, instance files will be stored
--user specifies the user that you created for running Eucalyptus
--setup invokes the first-time setup tasks
e. Distribution-specific post configuration steps(centos安装在这不需要修改,针对一些特殊的linux系统需要修改)