在CentOS 6.3上安装Eucalyptus 3.2

By , January 10, 2013 1:21 am

12月底,Eucalyptus 3.2正式发布。最近终于有时间在一台服务器上快速安装了一遍。在这里做个简单的纪录,供有需要的同行参考。这个安装过程基本上是下面这个英文链接的翻版,主要的不同在于原作者安装的是3.1版,而我安装的是3.2版,并且增加了下载和注册虚拟机映像、管理门户、用户门户等等内容,使得这个入门级的教程更加完整了。

http://cptyesterday.wordpress.com/2012/09/20/single-system-test-cloud-take-2/

在安装过程中所进行的所有操作,都是以root用户的身份来进行的。

[系统配置]

单台双路服务器,配置两颗Intel Xeon E5420 @ 2.50 GHz的处理器,8 GB的内存, 全新安装的CentOS 6.3 x86_64操作系统。只有一个网卡接到一个1000 Mbps的交换机,配置IP为192.168.1.10,与局域网内的其他服务器位于同一C 类子网。由于所有的用户都要从192.168.1.0这个网段访问虚拟机,我们将这个网段看作是外网,并将192.168.1.20~40预留下来作为虚拟机的外网IP地址。

编辑文件/etc/sysconfig/network-scripts/ifcfg-eth0,内容如下:

DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=no

编辑文件/etc/sysconfig/network-scripts/ifcfg-br0,内容如下:

DEVICE=br0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=none
IPADDR=192.168.1.10
NETMASK=255.255.255.0
NETWORK=192.168.1.0

编辑/etc/sysconfig/network,添加下列配置:

NOZEROCONF=true

重新启动网络服务,使得上述配置生效:

service network restart

接下来关闭系统防火墙。运行下面的命令,并在弹出的界面中取消已经启用的防火墙:

system-config-firewall-tui

编辑/etc/selinux/config,将SELINUX设置为permissive或者disabled:

SELINUX=permissive

运行下面的命令使如上配置生效:

setenforce 0

配置NTP服务:

yum -y install ntp
chkconfig ntpd on
service ntpd start
ntpdate -u pool.ntp.org
hwclock –systohc

[Eucalyptus安装]

首先安装Eucalyptus的软件源:

yum install http://downloads.eucalyptus.com/software/eucalyptus/3.2/centos/6/x86_64/eucalyptus-release-3.2.noarch.rpm
yum install http://downloads.eucalyptus.com/software/euca2ools/2.1/centos/6/x86_64/euca2ools-release-2.1.noarch.rpm
yum install http://downloads.eucalyptus.com/software/eucalyptus/3.2/centos/6/x86_64/epel-release-6.noarch.rpm
yum install http://downloads.eucalyptus.com/software/eucalyptus/3.2/centos/6/x86_64/elrepo-release-6.noarch.rpm

然后安装Eucalyptus云控制器(Cloud Controller,CLC):

yum groupinstall eucalyptus-cloud-controller

然后安装Eucalyptus的其他组件:

yum -y install eucalyptus-nc eucalyptus-cc eucalyptus-sc eucalyptus-walrus

到这里为止,Eucalyptus的安装就完成了。在此基础上,我们还需要针对我们的网络环境做一些配置。

首先编辑/etc/eucalyptus/eucalyptus.conf,修改配置如下:

CREATE_SC_LOOP_DEVICES=256
NODES=”192.168.1.10″
USE_VIRTIO_NET=”1″
VNET_MODE=”MANAGED-NOVLAN”
VNET_PRIVINTERFACE=”br0″
VNET_PUBINTERFACE=”eth0″
VNET_BRIDGE=”br0″
VNET_PUBLICIPS=”192.168.1.20-192.168.1.40″
VNET_SUBNET=172.31.0.0
VNET_NETMASK=255.255.255.0
VNET_ADDRSPERNET=”16″
VNET_DNS=8.8.8.8

当我们安装eucalyptus-nc服务的时候,我们顺带地安装了libvirtd,而libvirtd又顺带地安装了dnsmasq。但是dnsmasq跟Eucalyptus有一些不兼容的地方,因此我们把dnsmasq给禁用掉:

service dnsmasq stop
chkconfig dnsmasq off

接下来对Eucalyptus进行初始化:

euca_conf –initialize

接下来启动Eucalyptus的各个组件:

service eucalyptus-cloud start
service eucalyptus-cc start
service eucalyptus-nc start

注册各个组件:

/usr/sbin/euca_conf –register-walrus –partition walrus –host 192.168.1.10–component walrus-single
/usr/sbin/euca_conf –register-cluster –partition cluster01 –host 192.168.1.10 –component cc-single
/usr/sbin/euca_conf –register-sc –partition cluster01 –host 192.168.1.10 –component sc-single
/usr/sbin/euca_conf –register-nodes “192.168.1.10″

到这里为止,一个基于单台服务器的Eucalyptus云已经安装配置完毕,可以使用了。我们可以使用如下命令来获得管理员用户的授权资料:

euca_conf –get-credentials admin.zip

将admin.zip解压缩,设定必要的环境变量:

unzip admin.zip
source eucarc

执行如下命令,应该可以看到Eucalyptus云的概述:

$ euca-describe-availability-zones verbose
AVAILABILITYZONE cluster01 192.168.1.10 arn:euca:eucalyptus:cluster01:cluster:cc-single/
AVAILABILITYZONE |- vm types free / max cpu ram disk
AVAILABILITYZONE |- m1.small 0005 / 0008 1 512 5
AVAILABILITYZONE |- c1.medium 0002 / 0004 2 512 10
AVAILABILITYZONE |- m1.large 0002 / 0004 2 1024 15
AVAILABILITYZONE |- m1.xlarge 0002 / 0003 2 2048 20
AVAILABILITYZONE |- c1.xlarge 0001 / 0001 4 4096 20

[下载虚拟机镜像]

用eustore-describe-images命令查看EuStore上公开发布的虚拟机映像:

$ eustore-describe-images
0400376721 fedora x86_64 starter kvm Fedora 16 x86_64 – SELinux / iptables disabled. Root disk of 4.5G. Root user enabled.
2425352071 fedora x86_64 starter kvm Fedora 17 x86_64 – SELinux / iptables disabled. Root disk of 4.5G. Root user enabled.
1107385945 centos x86_64 starter xen, kvm, vmware CentOS 5 1.3GB root, Hypervisor-Specific Kernels
0696716400 centos x86_64 starter kvm Updated – CentOS 5 1.3GB root, Hypervisor-Specific Kernel; 2.6.18-308.11.1.el5 kernel version
3868652036 centos x86_64 starter kvm CentOS 6.3 x86_64 – SELinux / iptables disabled. Root disk of 4.5G. Root user enabled.
1347115203 opensuse x86_64 starter kvm OpenSUSE 12.2 x86_64 – KVM image. SUSE Firewall off. Root disk of 2.5G. Root user enabled. Working with kexec kernel and ramdisk. OpenSUSE minimal base package set..

用eustore-install-image命令下载一个EuStore上的虚拟机映像并注册到本地云,例如:

eustore-install-image -i 3868652036 -s “CentOS 6.3 x86_64″ -b centos_6.3 -k kvm

在如上命令中,-i参数指定的是EuStore上公开发布的虚拟机映像的ID,-s参数指定的是该虚拟机映像被注册到本地云之后的名称,-b参数指定的是该虚拟机映像被存储到本地Walrus服务上的bucket名称,-k参数指定的是本地云的虚拟化技术类型(xen或者kvm)。需要说明的是,-s参数中的空格会被系统转换成’-’字符,所有的大写字母会被系统转换成小写字母。另外,-b参数所指定的bucket名称不能含有大写字母,不然的话在将虚拟机映像写入Walrus的时候会失败。(一个明显不合理的地方是,对-b参数的合法性检查是在指定的虚拟机映像下载完毕后才进行的。如果你的外网连接比较慢,花了一个小时的时间总算下载了一个虚拟机映像但是注册失败的时候,你一定会同意我的观点的。)

[管理门户]

通过浏览器访问管理门户,其URL地址为https://192.168.1.10:8443/。第一次登录时,使用的用户名和密码都是admin,系统会强制要求您在登录后立即更改admin用户的密码。下面是完成登录后的一个屏幕截图:

屏幕快照 2013-01-10 上午12.36.54

[用户门户]

Eucalyptus的用户门户是需要单独安装的,其安装过程倒也非常简单,只需要一个命令:

yum install eucalyptus-console

不需要进行任何配置,用户门户就可以使用了。如果你需要中文界面,编辑 /etc/eucalyptus-console/console.ini,修改language设置为zh_CN即可:

language: zh_CN

如果你修改了任何配置,需要重新启动eucalyptus-console服务:

service eucalyptus-console restart

通过浏览器访问用户门户,其URL地址为https://192.168.1.10:8888/。你可以使用管理员用户登录,也可以在管理门户中创建其他用户后用其他用户的身份登录。下面是完成登录后的一个屏幕截图:

屏幕快照 2013-01-10 上午1.07.04

[其他]

没有其他啦。总的来说,Eucalyptus 3.2的安装和配置还是比较简单的。如果硬件配置和网络状况还可以的话,用一个小时基本上可以完成从裸机到Eucalyptus云的全部安装与配置工作。

对于懒得一步一步地进行安装配置的同学,还有一个更加简单的方法,那就是使用Eucalyptus所提供的FastStart工具。简单地说,FastStart是一个定制过的CentOS 6.3安装光盘(ISO格式),其中包含了KVM和Eucalyptus 3.2的自动安装和配置工具。使用FastStart的安装过程实在是过于简单,这里我就不进行介绍了。

Eucalyptus FastStart的下载地址:

http://go.eucalyptus.com/Download-FastStart.html

7 Responses to “在CentOS 6.3上安装Eucalyptus 3.2”

  1. John Donnelly says:

    It appears you are missing a step to bind the br0 to
    an existing emx or ethx device.

    For instance, when you create ifcfg-br0, you also need to append a line the ifcfg-em0 configuration:

    echo “BRIDGE=br0″ >> ifcfg-em0

    cd /etc/sysconfig/network-scripts

    if [ ! -f ifcfg-br0 ]; then
    echo “DEVICE=br0″ > ifcfg-br0
    echo “TYPE=Bridge” >> ifcfg-br0
    echo “BOOTPROTO=dhcp” >> ifcfg-br0
    echo “ONBOOT=yes” >> ifcfg-br0
    echo “DELAY=0″ >> ifcfg-br0

    if [ -f ifcfg-em1 ]; then
    echo “BRIDGE=br0″ >> ifcfg-em1
    echo “added BRIDGE=br0 to em1″
    else
    if [ -f ifcfg-em2 ]; then
    echo “BRIDGE=br0″ >> ifcfg-em1
    echo “added BRIDGE=br0 to em2″
    else
    echo “can’t make br0 ”
    exit
    fi
    fi
    service network restart
    fi

  2. qyjohn says:

    Thanks a lot for John D’s comments. I have make the appropriate updates to the original post.

  3. John Donnelly says:

    Hi John,

    You don’t have to link br0 to an existing if-cfg device since you are creating a “private” network that has no physical access to any other networks. You essentially have a “A Cloud in Box”.

    Cheers.

  4. cj.zhao says:

    蒋总,注册完SC后,还需要设置如下参数,要不然SC启不来!
    euca-modify-property -p cluster01.storage.blockstoragemanager=overlay

  5. [...] 在这个文档中,我们将跳过如何安装配置Eucalyptus。如果您需要帮助的话,您可以参考《在CentOS 6.3上安装Eucalyptus》这个教程。 [...]

  6. 西龙 says:

    我用的是 faststart3.2.2光盘安装,一切正常,可以运行 实例,可以登录运行的实例。镜像是从官网下载的euca-centos5-2013.06.18-x86_64-ec2user.tgz,我用了euca-bundle-image -r x86_64,可是用命令euca-describe-images查看还是 i386。

    帮忙看看怎么改到 x86_64?

    # pwd
    /root/credentials/admin
    # source eucarc
    # euca-bundle-image -i /home/euca-centos5/kvm-kernel/vmlinuz-2.6.18-348.6.1.el5 -r x86_64 –kernel true
    # euca-upload-bundle -b eucentos5 -m /tmp/vmlinuz-2.6.18-348.6.1.el5.manifest.xml
    # euca-register eucentos5/vmlinuz-2.6.18-348.6.1.el5.manifest.xml

    # euca-bundle-image -i /home/euca-centos5/kvm-kernel/initrd-2.6.18-348.6.1.el5.img -r x86_64 –ramdisk true
    # euca-upload-bundle -b eucentos5 -m /tmp/initrd-2.6.18-348.6.1.el5.img.manifest.xml
    # euca-register eucentos5/initrd-2.6.18-348.6.1.el5.img.manifest.xml

    # euca-bundle-image -i /home/euca-centos5/euca-centos5-ec2user-2013.06.18-x86_64.img -r x86_64 –ramdisk eri-CD0C3BC8 –kernel eki-B8B635DF
    # euca-upload-bundle -b eucentos5 -m /tmp/euca-centos5-ec2user-2013.06.18-x86_64.img.manifest.xml
    # euca-register eucentos5/euca-centos5-ec2user-2013.06.18-x86_64.img.manifest.xml

    # euca-describe-images |grep centos5
    IMAGE eri-CD0C3BC8 eucentos5/initrd-2.6.18-348.6.1.el5.img.manifest.xml 788665186707 available private i386 ramdisk instance-store
    IMAGE eki-B8B635DF eucentos5/vmlinuz-2.6.18-348.6.1.el5.manifest.xml 788665186707 available private i386 kernel instance-store
    IMAGE emi-6F82360F eucentos5/euca-centos5-ec2user-2013.06.18-x86_64.img.manifest.xml 788665186707 available private i386 machine eki-B8B635DF eri-CD0C3BC8 instance-store

Leave a Reply

Panorama Theme by Themocracy