您的位置:首页 > 运维架构 > Linux

CentOS+xen+Eucalyptus 云计算平台搭建

2013-04-09 07:07 302 查看
CentOS+xen+Eucalyptus
云计算平台搭建

 

        当今,云计算应用日趋流行,各大型企业、组织纷纷加入云计算的热潮。作为研发组织,以虚拟化技术为基石的云计算技术为我们的组织管理和研发提供了便利。

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 root@10.10.103.32
注意这里登录时提示需要输入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命令来查看。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: