设为首页 收藏本站
查看: 1279|回复: 0

[经验分享] Centos+xen+Eucalyputs 云计算平台搭建

[复制链接]

尚未签到

发表于 2015-10-12 07:28:45 | 显示全部楼层 |阅读模式
当今,云计算应用日趋流行,各大型企业、组织纷纷加入云计算的热潮。作为研发组织,以虚拟化技术为基石的云计算技术为我们的组织管理和研发提供了便利。
     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=&quot;xen&quot;
  • VNET_PUBINTERFACE=&quot;eth1&quot;
  • VNET_PRIVINTERFACE=&quot;eth1&quot;
  • VNET_MODE=&quot;STATIC&quot;
  • VNET_SUBNET=&quot;10.10.0.0&quot;
  • VNET_NETMASK=&quot;255.255.0.0&quot;
  • VNET_BROADCAST=&quot;10.10.255.255&quot;
  • VNET_ROUTER=&quot;10.10.x.9&quot;
  • VNET_DNS=&quot;8.8.8.8&quot;
  • VNET_MACMAP=&quot;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&quot;




  • 文件中其他可以保持默认





  • 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 = &quot;libvirt&quot; => unix_sock_group = &quot;libvirt&quot;
  • #unix_sock_ro_perms = &quot;0777&quot; => unix_sock_ro_perms = &quot;0777&quot;
  • #unix_sock_rw_perms = &quot;0770&quot; => unix_sock_rw_perms = &quot;0770&quot;

  • //确保libvirt运行正常并可与hypervisor正常通信,在Node节点运行如下命令:
  • $: virsh list
  • 如果上述命令的输出包括Domain-0,则配置正确。


  • 配置/etc/eucalyptus/eucalyptus.conf文件
  • HYPERVISOR=&quot;xen&quot;
  • VNET_PUBINTERFACE=&quot;xenbr1&quot;

    VNET_PRIVINTERFACE=&quot;xenbr1&quot;
  • VNET_BRIDGE=&quot;xenbr1&quot;
  • VNET_MODE=&quot;STATIC&quot;





  • 启动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.xml

    • euca-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.xml

    • euca-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/xen-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/xen-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.priv

    • chmod 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后即可登录如

    • RESERVATIONr-38390699admindefault
      INSTANCEi-3BC30777emi-1C88159B10.10.103.3310.10.103.33running key 0 m1.small 2011-02-18T12:07:14.623Z    mycluster eki-8DAF16EB eri-882616CD
      RESERVATIONr-3C9007FCadmindefault
      INSTANCEi-3BDD0719emi-1C88159B10.10.103.3210.10.103.32running 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=&quot;eth1&quot;

VNET_PRIVINTERFACE=&quot;eth1&quot;如何配置
  答:VNET_PUBINTERFACE设置成front-end与外网连接的网卡接口
  VNET_PRIVINTERFACE设置成与Node节点互连的网卡接口
  问front-end中如何配置Mode
  答:eucalyputs中有四种可选模式,这里笔者选择了static模式,其他模式可以参考官方文档。下面对static模式配置进行简单描述


  • VNET_MODE=&quot;STATIC&quot;                                //设置为static模式
  • VNET_SUBNET=&quot;10.10.0.0&quot;                         //网段
  • VNET_NETMASK=&quot;255.255.0.0&quot;                   //netmask
  • VNET_BROADCAST=&quot;10.10.255.255&quot;           //广播地址
  • VNET_ROUTER=&quot;10.10.x.9&quot;                         //route
  • VNET_DNS=&quot;8.8.8.8&quot;                                   //dns服务器
  • VNET_MACMAP=&quot;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&quot;                 //mac:ip映射,用来管理ip
  注意在上面的设置中,网段一定要设置成instance和nodes以及连接nodes的front-end的网卡接口在同一网段,否则无法实现通信。笔者在这一点上犯了很多错误,花费了大量的时间
  问:node节点VNET_PUBINTERFACE=&quot;xenbr1&quot;,VNET_PRIVINTERFACE=&quot;xenbr1&quot;如何设置
  答:设置为xen自动建立的网桥。这里网桥为xenbr1
  问:VNET_BRIDGE=&quot;xenbr1&quot;如何设置:
  答:设置为xen自动建立的网桥。这里网桥为xenbr1。关于如何确定网桥,可以通过
  brctl show命令来查看。
  
  对于整个的搭建过程,笔者进行了上述陈述,有些地方可能陈述的不是很清楚,如果读者有什么疑问可以和笔者联系
  
  




版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-125577-1-1.html 上篇帖子: Xen 简介 下篇帖子: Xen 虚拟机架构
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表