安装步骤:
本次安装用2台PC,将云端和节点分别安装在不同PC上。所有eucalyptus的安装在Centos操作系统上进行,该系统需要有以下支持:
1 相关软件安装
1. yum install gcc
2. yum intall ntp
3. yum install -y java-1.6.0-openjdk ant ant-nodeps dhcp bridge-utils httpd
2 xen虚拟机安装
(1)yum install xen*
(2)xen内核安装:yum -y install kernel-xen* (这步很重要)
(3)启用内核 :修改/boot/grub/grub.conf 修改其中的default=1为default=0 重启计算机。
xm list 如果出现以下信息说明xen启用成功。
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 3919 4 r----- 16.9
3 配置xen
修改 /etc/xen/xend-config.sxp。如下:
1. (xend-http-server yes)
2. (xend-unix-server yes)
3. (xend-unix-path /var/lib/xend/xend-socket)
4. (xend-address localhost)
5. (network- script network-bridge)
6. (vif- script vif-bridge)
7. (dom0-min-mem 196)
8. (dom0-cpus 0)
9. (vncpasswd '')
4 配置防火墙(如果不进行配置)
将防火墙关闭(如果没有关闭使用命令:service iptables off)
修改/etc/selinux/config 修改结果 SELINUX=disabled
5 eucalyptus安装,这里使用源码安装(对以下安装如有疑问请参考官网http://open.eucalyptus.com/wiki/EucalyptusInstallationCentos_v2.0)
如果采用集群方式,前端节点和后端节点装在不同PC上,参考一下方式:
前端pc:192.168.31.34
后端pc:192.168.31.35
(1)制作rpm安装包,编辑/etc/yum.repos.d/euca.repo文件内容如下:
o [euca]
o name=Eucalyptus
o baseurl=http://www.eucalyptussoftware.com/downloads/repo/eucalyptus/2.0.1/yum/centos/
o enabled=1
(2)前端节点安装:
1. yum install eucalyptus-cloud.$ARCH eucalyptus-cc.i386 eucalyptus-walrus.$ARCH eucalyptus-sc.i386 --nogpgcheck
(3)后端节点:
1. yum install eucalyptus-nc.i386 --nogpgcheck
6 启用eucalyptus
前端节点启用:
/etc/init.d/eucalyptus-cloud start
/etc/init.d/eucalyptus-cc start
后端节点启用
/etc/init.d/eucalyptus-nc start
如果成功启用则出现:Starting Eucalyptus services: done.
7 查看xen虚拟机连接:
命令:su eucalyptus -c "virsh list" 如果成功连接会出现如下Domain-0的相关信息
Id Name State
----------------------------------
0 Domain-0 running
8 修改网络配置
查看 /etc/eucalyptus/eucalyptus.conf
模式VNET_MODE改为SYSTEM //默认应该是这个,不需要更改,如果不是,请修改
9 注册控制器和节点
(1)注册前端控制器
euca_conf --register-walrus 192.168.31.34
euca_conf --register-cluster CloudTest 192.168.31.34 //IP地址前的是CLC名,自己取1个
euca_conf --register-sc CloudTest 192.168.31.34
注册验证:
/usr/sbin/euca_conf \--list-walruses
registered walruses:
walrus 192.168.31.34 //返回的IP地址是否为你注册的IP
/usr/sbin/euca_conf \--list-clusters
registered clusters:
CloudServer 192.168.31.34
/usr/sbin/euca_conf \--list-scs
registered storage controllers:
(2)添加后端节点
euca_conf -addnode 192.168.31.35
验证节点:
euca_conf --list-nodes
registered nodes: 192.168.34.195 CloudTest
(3)执行 /usr/sbin/euca_conf -synckeys 验证组件是否注册好。如果出现后端节点ip说明注册完成。
10 登录eucalyptus的web管理界面
https://192.168.31.34:8443 默认管理员账号和密码为:admin admin (本次安装用户名密码为:admin yytest)
问题:无法登录。出现无效的安全验证。解决方法:更改火狐浏览器设置:
11 安装euca2ool包。
(1)制作rpm安装包:编辑/etc/yum.repos.d/euca.repo文件内容如下:
1.
当今,云计算应用日趋流行,各大型企业、组织纷纷加入云计算的热潮。作为研发组织,以虚拟化技术为基石的云计算技术为我们的组织管理和研发提供了便利。
Eucalyptus是一款基本开源的云计算应用平台,现已集成到Ubuntu的企业版。由于笔者搭建centos系统较为便利,所以本文在centos的平台上以xen为基础搭建eucalyputs系统。
由于起初笔者对于linux系统管理基本处于“文盲”阶段,所以在最初搭建的过程中走了很多弯路,付出了很多努力,但同时笔者也在这个艰辛的过程中学到很多,从“文盲”-->"小菜“。希望我的这篇文章能够为同样在Eucalyptus搭建中遇到问题的小菜们提供一些帮助。
在Eucalyptus的社区网站中有对centos搭建Eucalyptus的详细讲述。<点击查看>
作为测试,笔者以三台服务器节点来完成平台搭建。其中将CLC,CC安装在一台前端节点<front-end>上作为控制节点,另外两台作为Node。
笔者的网络配置情况如下:
(1)三台节点通过eth1局域网互连
(2)网段: 10.10.0.0, netmask:255.255.0.0
(3)<front-end> IP:10.10.x.9
(4)<node1> IP: 10.10.x.10
(5)<node2> IP:10.10.x.11
下面是笔者安装的详细步骤
Front-end
//安装ntp用来实现front-end和nod
yum install -y ntp
ntpdate pool.ntp.org//front-end需要java,dhcp服务器二进制代码
yum install -y java-1.6.0-openjdk ant ant-nodeps dhcp bridge-utils perl-Convert-ASN1.noarch scsi-target-utils httpd
//配置防火墙,port 8443,8773,8774必须打开,或者直接关闭防火墙
run system-config-securitylevel-tui
Select Security Level:Disable
Select OK;
//安装Eucalyptus,关于源码安装请参看Eucalyptus社区的文档
//创建/etc/yum.repos.d/euca.repo文件,文件内容如下:
[euca]
name=Eucalyptus
baseurl=http://www.eucalyptussoftware.com/downloads/repo/eucalyptus/$VERSION/yum/centos/
enabled=1
其中$VERSION文版本号,比如笔者所安装的版本为2.0.1,则将该字段替换为2.0.1
安装命令:
yum install eucalyptus-cloud.$ARCH eucalyptus-cc.$ARCH eucalyptus-walrus.$ARCH eucalyptus-sc.$ARCH --nogpgcheck
其中$ARCH为主机的体系结构,比如笔者的位x86_64.(通常为i386或x86_64)
//配置/etc/eucalyp/eucalyputs.conf文件,这里是笔者出错最多的地方,后面将给出如何配置的详细说明,请读者阅读后根据自己的实际情况配置,一下只是笔者配置的一个实例
HYPERVISOR="xen"
VNET_PUBINTERFACE="eth1"
VNET_PRIVINTERFACE="eth1"
VNET_MODE="STATIC"
VNET_SUBNET="10.10.0.0"
VNET_NETMASK="255.255.0.0"
VNET_BROADCAST="10.10.255.255"
VNET_ROUTER="10.10.x.9"
VNET_DNS="8.8.8.8"
VNET_MACMAP="AA:DD:11:CE:FF:ED=10.10.x.32 AA:DD:11:CE:FF:EE=10.10.x.33 AA:DD:11:CE:FF:EF=10.10.x.34"文件中其他可以保持默认
Node
//安装ntp用来实现front-end和nod
yum install -y ntp
ntpdate pool.ntp.org
yum install -y java-1.6.0-openjdk ant ant-nodeps dhcp bridge-utils perl-Convert-ASN1.noarch scsi-target-utils httpd
//Node需要安装xen并且配置xen允许通过HTTP从localhost控制hypervisor
yum install -y xen*
yum install -y kernel-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/boot/grub.conf中的启动项,是其启动xen,重启节点。
//配置防火墙,port 8775必须打开,或者直接关闭防火墙
run system-config-securitylevel-tui
Select Security Level:Disable
Select OK;
/安装Eucalyptus,关于源码安装请参看Eucalyptus社区的文档
//创建/etc/yum.repos.d/euca.repo文件,文件内容如下:
[euca]
name=Eucalyptus
baseurl=http://www.eucalyptussoftware.com/downloads/repo/eucalyptus/$VERSION/yum/centos/
enabled=1
其中$VERSION文版本号,比如笔者所安装的版本为2.0.1,则将该字段替换为2.0.1
安装命令:
yum install eucalyptus-nc.$ARCH --nogpgcheck
//Post-Install Steps
在每台node节点上,查看/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"
//确保libvirt运行正常并可与hypervisor正常通信,在Node节点运行如下命令:
$: virsh list
如果上述命令的输出包括Domain-0,则配置正确。
配置/etc/eucalyptus/eucalyptus.conf文件
HYPERVISOR="xen"
VNET_PUBINTERFACE="xenbr1"
VNET_PRIVINTERFACE="xenbr1"
VNET_BRIDGE="xenbr1"
VNET_MODE="STATIC"
启动Eucalyptus
//front-end
/etc/init.d/eucalyptus-cloud start
/etc/init.d/eucalyputs-cc start
//Node
/etc/init.d/eucalyputs-nc start注册Eucalyputs组件
//front-end
euca_conf --register-walrus <front-end IP address> //如笔者的euca_conf --register-walrus 10.10.x.9
euca_conf --register-cluster <clustername> <front-end IP address> //clustername 为自定义的名字
euca_conf --register-sc <clustername> <front-end IP address>
//在front-end上注册nodes
euca_conf --register-nodes <Node 0 IP address> <Node 1 IP address> ... <Node N IP address>
如笔者:euca_conf --register-nodes 10.10.x.10 10.10.x.11
初始配置
登陆管理主页http://front-end-ip:8443
默认用户名密码为admin
登陆后修改密码
设置管理员邮箱
确认CC的IP地址
在Credentials主页点击Download Credentials按钮下载
创建目录存储下载的文件并解压
mkdir $HOME/.euca
unzip euca2-admin-x509.zip -d $HOME/.euca
. $HOME/.euca/eucarc //注册eucarc环境
安装Euca2ools
创建/etc/yum.repos.d/euca.repo文件
[euca2ools]
name=Euca2ools
baseurl=http://www.eucalyptussoftware.com/downloads/repo/euca2ools/$VERSION/yum/centos/
enabled=1其中$VERSION为版本号,如1.2
yum install euca2ools.$ARCH --nogpgcheck
上传镜像文件
//增加镜像<查看可下载镜像>
euca-bundle-image -i <kernel file> --kernel true
euca-upload-bundle -b <kernel bucket> -m /tmp/<kernel file>.manifest.xml
euca-register <kernel-bucket>/<kernel file>.manifest.xmleuca-bundle-image -i <vm image file>
euca-upload-bundle -b <image bucket> -m /tmp/<vm image file>.manifest.xml
euca-register <image bucket>/<vm image file>.manifest.xmleuca-bundle-image -i <initrd file> --ramdisk true
euca-upload-bundle -b <initrd bucket> -m /tmp/<initrd file>.manifest.xml
euca-register <initrd bucket>/<initrd file>.manifest.xml//关联kernels和ramdisks到instances
euca-bundle-image -i <vm image file> --kernel <eki-XXXXXXXX> --ramdisk <eri-XXXXXXXX>eki-XXXXXXXX eri-XXXXXXXX均为上面步骤产生,请注意记录,也可以通过web管理页面进行查看下面是一个传镜像实例tar zxvf euca-Ubuntu-9.04-x86_64.tar.gz
euca-bundle-image -i euca-Ubuntu-9.04-x86_64/kvm-kernel/vmlinuz-2.6.28-11-generic --kernel true
euca-upload-bundle -b Ubuntu-kernel-bucket -m /tmp/vmlinuz-2.6.28-11-generic.manifest.xml
euca-register Ubuntu-kernel-bucket/vmlinuz-2.6.28-11-generic.manifest.xml
(set the printed eki to $EKI)
euca-bundle-image -i euca-Ubuntu-9.04-x86_64/kvm-kernel/initrd.img-2.6.28-11-generic --ramdisk true
euca-upload-bundle -b Ubuntu-ramdisk-bucket -m /tmp/initrd.img-2.6.28-11-generic.manifest.xml
euca-register Ubuntu-ramdisk-bucket/initrd.img-2.6.28-11-generic.manifest.xml
(set the printed eri to $ERI)
euca-bundle-image -i euca-Ubuntu-9.04-x86_64/ubuntu.9-04.x86-64.img --kernel $EKI --ramdisk $ERI
euca-upload-bundle -b Ubuntu-image-bucket -m /tmp/ubuntu.9-04.x86-64.img.manifest.xml
euca-register Ubuntu-image-bucket/ubuntu.9-04.x86-64.img.manifest.xml创建自己的密钥文件euca-add-keypair mykey | tee mykey.privchmod 0600 mykey.priv通过euca-describe-images查看有哪些镜像
运行实例euca-run-instances -k mykey <emi-id> -t <type> -n <number of instances to start>其中mykey和mykey.priv可以命名为自己的文件,emi-id为可查看到的镜像如euca-run-instances -k mykey emi-39E1892可以过euca-describe-instances查看instances运行状态运行状态由pending变为running后即可登录如RESERVATION r-38390699 admin default
INSTANCE i-3BC30777 emi-1C88159B 10.10.103.33 10.10.103.33 running key 0 m1.small 2011-02-18T12:07:14.623Z mycluster eki-8DAF16EB eri-882616CD
RESERVATION r-3C9007FC admin default
INSTANCE i-3BDD0719 emi-1C88159B 10.10.103.32 10.10.103.32 running key 0 m1.small 2011-02-18T08:59:33.67Z mycluster eki-8DAF16EB eri-882616CD//登录
ssh -k mykey [email protected]
注意这里登录时提示需要输入passphase,这里需要自己修改一下,改变RSA passphase:ssh-keygen -fid_rsa -p
至此我们登上instances开始我们的云端之旅了FAQ
问:front-end中
VNET_PUBINTERFACE="eth1"
VNET_PRIVINTERFACE="eth1"如何配置
答:VNET_PUBINTERFACE设置成front-end与外网连接的网卡接口
VNET_PRIVINTERFACE设置成与Node节点互连的网卡接口
问front-end中如何配置Mode
答:eucalyputs中有四种可选模式,这里笔者选择了static模式,其他模式可以参考官方文档。下面对static模式配置进行简单描述
VNET_MODE="STATIC" //设置为static模式
VNET_SUBNET="10.10.0.0" //网段
VNET_NETMASK="255.255.0.0" //netmask
VNET_BROADCAST="10.10.255.255" //广播地址
VNET_ROUTER="10.10.x.9" //route
VNET_DNS="8.8.8.8" //dns服务器
VNET_MACMAP="AA:DD:11:CE:FF:ED=10.10.x.32 AA:DD:11:CE:FF:EE=10.10.x.33 AA:DD:11:CE:FF:EF=10.10.x.34" //mac:ip映射,用来管理ip
注意在上面的设置中,网段一定要设置成instance和nodes以及连接nodes的front-end的网卡接口在同一网段,否则无法实现通信。笔者在这一点上犯了很多错误,花费了大量的时间
问:node节点VNET_PUBINTERFACE="xenbr1",VNET_PRIVINTERFACE="xenbr1"如何设置
答:设置为xen自动建立的网桥。这里网桥为xenbr1
问:VNET_BRIDGE="xenbr1"如何设置:
答:设置为xen自动建立的网桥。这里网桥为xenbr1。关于如何确定网桥,可以通过
brctl show命令来查看。
对于整个的搭建过程,笔者进行了上述陈述,有些地方可能陈述的不是很清楚,如果读者有什么疑问可以和笔者联系