Ubuntu上安装和配置OpenStack Nova详解

日期: 2012-04-09 作者:VPSEE 来源:TechTarget中国 英文

  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。

  配置网络

  在安装完基本的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

  关于FlatManager网络配置可参考:OpenStack Nova安装后的FlatManager网络配置。

  安装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

  如果出现这个问题,检查novarc这个文件看看EC2_URL、S3_URL、NOVA_URL这三行是不是有两个连续的 http://?

以下是引用片段:
$ euca-describe-availability-zones verbose
invalid literal for int() with base 10: ”
$ vi /home/vpsee/creds/novarc

export EC2_URL=”http://172.16.39.100:8773/services/Cloud”
export S3_URL=”http://172.16.39.100:3333″

export NOVA_URL=”http://172.16.39.100:8774/v1.1/”

  删除一个http://就可以了:

以下是引用片段:
$ vi /home/vpsee/creds/novarc

export EC2_URL=”http://172.16.39.100:8773/services/Cloud”
export S3_URL=”http://172.16.39.100:3333″

export NOVA_URL=”http://172.16.39.100:8774/v1.1/”

  启动第一个实例

  启动实例之前需要先上传一个系统模版,我们称之为镜像(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-add-keypair mykey > mykey.priv
$ 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

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

作者

VPSEE
VPSEE

相关推荐