zoukankan      html  css  js  c++  java
  • [网摘学习]在Ubuntu上安装和配置OpenStack Nova之一

      最近在Ubuntu下配置Openstack,由于参考的资源只有官方网站www.openstack.org,而且代码和wiki都在不断的更新,遇到了很多的问题,走了很多弯路,个人FAQ文档那个还在不断的整理中.刚才发现配置方法有中文的,虽然不是很完善,后面的dashborad没有说明,但也有值得借鉴的价值.遂摘录于下,(仅供学习使用,文章归原作者所有),之后我会基于此进行整理和完善修改:

    原文参见:http://os.51cto.com/art/201105/263937.htm

    OpenStack 是由 Rackspace 和 NASA 共同开发的云计算平台,帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基础架构服务(Infrastructure as a Service, IaaS)。OpenStack 包含两个主要模块:Nova 和 Swift,前者是 NASA 开发的虚拟服务器部署和业务计算模块;后者是 Rackspack 开发的分布式云存储模块,两者可以一起用,也可以分开单独用。OpenStack 是开源项目,除了有 Rackspace 和 NASA 的大力支持外,后面还有包括 Dell、Citrix、 Cisco、 Canonical 这些重量级公司的贡献和支持,发展速度非常快,有取代另一个业界领先开源云平台 Eucalyptus 的态势。

    OpenStack 是 Python 2.6 写的,CentOS 5.6 上默认的是 Python 2.4 的环境并且还有很多依赖关系不容易升级到 2.6,所以在 Ubuntu 上安装会简单一些,而且 Ubuntu 是 OpenStack 的官方首选系统,文档都是按 Ubuntu 写的,所以这里 VPSee 采用最新的 Ubuntu 11.04 Server 64bit 版本来安装和配置 OpenStack Nova. 如果对其他类似的开源云计算平台感兴趣的话可以看看:在 CentOS 上安装和配置 OpenNebula.

    配置网络

    在安装完基本的 Ubuntu 11.04 Server 系统后升级和更新整个系统,安装完 bridge-utils 包后重启系统:

    $ sudo apt-get update
    $ sudo apt-get upgrade
    $ sudo apt-get install bridge-utils
    $ sudo reboot

    配置网桥:

    $ sudo vi /etc/network/interfaces
    auto lo
    iface lo inet loopback
    auto eth0
    iface eth0 inet static
    address 172.16.39.111
    netmask 255.255.254.0
    gateway 172.16.38.1
    auto br100
    iface br100 inet static
    bridge_ports eth1
    bridge_stp off
    bridge_maxwait 0
    bridge_fd 0
    address 192.168.0.1
    netmask 255.255.0.0
    broadcast 192.168.255.255

    安装 NTP 服务

    OpenStack Nova 需要 NTP 服务器来保持所有节点服务器(Cloud Compute)的时间同步,所以需要在前端控制服务器(Cloud Controller)上安装 NTP 服务器,然后在节点服务器上安装 NTP 客户端保持与前端的同步:

    $ sudo apt-get install ntp
    $ sudo vi /etc/ntp.conf
    server 127.127.1.0
    fudge 127.127.1.0 stratum 10
    $ sudo /etc/init.d/ntp restart

    安装和配置 MySQL 数据库

    OpenStack Nova 需要数据库的支持,这里选用 MySQL(当然也可以用其他的数据库,比如 PostgreSQL 等):

    $ sudo apt-get install mysql-server

    修改 MySQL 绑定地址,以便其他的节点服务器也能访问这个数据库:

    $ sudo vi /etc/mysql/my.cnf
    ...
    #bind-address = 127.0.0.1
    bind-address = 0.0.0.0
    ...
    $ sudo /etc/init.d/mysql restart

    创建一个名为 nova 的数据库,并设置 root 从任何 IP 访问的权限和密码:

    $ sudo mysql -uroot -ppassword -e 'CREATE DATABASE nova;'
    $ sudo mysql -uroot -ppassword -e "GRANT ALL PRIVILEGES ON *.* TO \
    'root'@'%' WITH GRANT OPTION;"
    $ sudo mysql -uroot -ppassword -e "SET PASSWORD FOR \
    'root'@'%' = PASSWORD('password');"

    安装 Glance 镜像服务

    Glance 是个镜像服务器,用来给 OpenStack Nova 提供操作系统镜像(image)服务,提供可选择的操作系统模版(镜像)。

    $ sudo apt-get install glance

    安装 OpenStack Nova

    OpenStack Nova 已经进入 Ubuntu 11.04 源,所以直接安装就可以了,不必源码安装:

    $ sudo apt-get install rabbitmq-server nova-common nova-doc python-nova
    nova-api nova-network nova-volume nova-objectstore nova-scheduler nova-compute
    $ sudo apt-get install -y euca2ools
    $ sudo apt-get install -y unzip

    配置 Nova:

    $ sudo vi /etc/nova/nova.conf
    --dhcpbridge_flagfile=/etc/nova/nova.conf
    --dhcpbridge=/usr/bin/nova-dhcpbridge
    --logdir=/var/log/nova
    --state_path=/var/lib/nova
    --lock_path=/var/lock/nova
    --verbose
    --s3_host=172.16.39.111
    --rabbit_host=192.168.0.1
    --cc_host=192.168.0.1
    --ec2_url=http://172.16.39.111:8773/services/Cloud
    --fixed_range=192.168.0.0/16
    --network_size=8
    --FAKE_subdomain=ec2
    --routing_source_ip=192.168.0.1
    --sql_connection=mysql://root:password@172.16.39.111/nova
    --glance_host=192.168.0.1
    --image_service=nova.image.glance.GlanceImageService

    重启 nova 相关服务以便设置生效:

    $ sudo restart libvirt-bin; sudo restart nova-network;
    sudo restart nova-compute; sudo restart nova-api;
    sudo restart nova-objectstore; sudo restart nova-scheduler;
    sudo restart nova-volume; sudo restart glance-api; sudo restart glance-registry

    使用 Nova

    开始使用 Nova 前需要创建 nova 数据库表、创建网络、创建管理员帐号、创建云并联到刚才创建的管理员上:

    $ sudo nova-manage db sync
    $ sudo nova-manage network create 192.168.0.0/24 1 255
    $ sudo nova-manage floating create 10.10.10.2 10.10.10.224/27
    $ sudo nova-manage user admin vpsee
    $ sudo nova-manage project create mycloud vpsee

    因为多个管理员可以创建多个不同的云,所以某个云的管理员需要特定的权限才能访问和管理自己的 Nova 云,创建权限信息,并解压到自己的目录里,需要注意的是每次使用 nova 管理云的时候都需要读取 novarc 里面的配置信息:

    $ mkdir /home/vpsee/creds
    $ sudo nova-manage project zipfile mycloud vpsee /home/vpsee/creds/novacreds.zip
    $ cd /home/vpsee/creds
    $ unzip novacreds.zip
    $ sudo chown -R vpsee:vpsee /home/vpsee/creds/
    $ source /home/vpsee/creds/novarc

    每次用 nova 的时候都要用到 novarc 里面的环境变量,每次 source novarc 很麻烦,所以最好加到 .bashrc 里面:

    $ cat /home/vpsee/creds/novarc >> /home/vpsee/.bashrc
    $ source /home/vpsee/.bashrc

    再次重启 nova 相关的所有服务:

    $ sudo restart libvirt-bin; sudo restart nova-network;
    sudo restart nova-compute; sudo restart nova-api;
    sudo restart nova-objectstore; sudo restart nova-scheduler;
    sudo restart nova-volume; sudo restart glance-api; sudo restart glance-registry

    如果一切正常的话,应该可以打印出如下的类似信息:

    $ euca-describe-availability-zones verbose
    AVAILABILITYZONE nova available
    AVAILABILITYZONE |- node00
    AVAILABILITYZONE | |- nova-scheduler enabled :-) 2011-05-22 10:32:31
    AVAILABILITYZONE | |- nova-network enabled :-) 2011-05-22 10:32:32
    AVAILABILITYZONE | |- nova-compute enabled :-) 2011-05-22 10:32:24

    启动第一个实例

    启动实例之前需要先上传一个系统模版,我们称之为镜像(image),自己制作操作系统镜像有点麻烦,这里直接使用一个已经做好的 Ubuntu 10.10 版本镜像,下载已经做好的镜像文件并上传到镜像服务器(这里镜像服务器和前端服务器在同一台物理服务器上):

    $ wget http://c0179148.cdn1.cloudfiles.rackspacecloud.com/ubuntu1010-UEC-localuser-image.tar.gz
    $ uec-publish-tarball ubuntu1010-UEC-localuser-image.tar.gz ubuntu1010-bucket x86_64

    列出云里现有的可以加载的镜像,并以某个镜像(比如编号为 ami-00000003)为模版启动一个实例(操作系统):

    $ euca-describe-images
    IMAGE aki-00000001 ubuntu1010-bucket/vmlinuz-2.6.32-28-server.manifest.xml available public x86_64 kernel
    IMAGE ari-00000002 ubuntu1010-bucket/initrd.img-2.6.32-28-server.manifest.xmavailable public x86_64 ramdisk
    IMAGE ami-00000003 ubuntu1010-bucket/maverick-server-uec-amd64.img.manifest.xml available public x86_64 machine aki-00000001 ari-00000002
    $ euca-run-instances -k mykey -t m1.tiny ami-00000003

    检查一下实例是否成功启动和运行:

    $ virsh list
    Id Name State
    ----------------------------------
    1 instance-00000001 running

    访问实例

    启动实例后怎么访问呢?和访问 VPS 一样,需要 IP 地址然后 ssh 访问,还记得上面的网络配置么,新创建的系统将按照 192.168.0.x 的形式分配 IP,所以 192.168.0.3 就是刚刚 euca-run-instances 创建的实例的 IP 地址:

    $ ssh ubuntu@192.168.0.3

    原文:http://www.vpsee.com/2011/05/install-openstack-nova-on-ubuntu/

    赠人玫瑰
    手留余香

    我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
    如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

  • 相关阅读:
    Asp.net相关知识和经验的碎片化记录
    JavaScript相关知识和经验的碎片化记录
    HTML相关知识和经验的碎片化记录
    CSS相关知识和经验的碎片化记录
    C# 实现文件(夹)在ftp服务器间的同步【无需将文件(夹)保存到本地】
    js中call、apply、bind的用法
    js中的数组对象排序
    CSS3图片轮播效果
    HTML5 canvas制作童年的回忆大风车
    js实现滑动器效果
  • 原文地址:https://www.cnblogs.com/haochuang/p/2253348.html
Copyright © 2011-2022 走看看