`
luoqiaowen
  • 浏览: 9126 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

在 Ubuntu 上安装和配置 OpenStack Nova

 
阅读更多

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 的朋友可以看看:在 CentOS 上安装和配置 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

关于 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://http://172.16.39.100:8773/services/Cloud"
export S3_URL="http://http://172.16.39.100:3333"
...
export NOVA_URL="http://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),自己制作操作系统镜像有点麻烦(请看:为 OpenStack Nova 制作 Ubuntu 镜像为 OpenStack Nova 制作 CentOS 镜像 为 OpenStack Nova 制作 Windows 镜像。),这里直接使用一个已经做好的 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

Troubleshooting

解决 DataSourceEc2.py[WARNING]: ‘http://169.254.169.254′ failed: url error 问题
删除 OpenStack Nova Volume 时遇到的 error_deleting 问题
解决 Warning: failed to parse error message from AWS: :1:0: syntax error 问题
重置 OpenStack Nova 数据库

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

分享到:
评论

相关推荐

    Ubuntu 14.04 下安装Openstack kilo 官方手册

    Ubuntu下14.04官方安装手册,值得拥有。

    openstack-nova_novncproxy:OpenStack Nova novncproxy服务安装-Ansible角色

    Nova Novncproxy OpenStack Nova novncproxy服务安装在Ubuntu Precise(12.04)和Trusty(14.04)上进行了测试要求RabbitMQ服务器。 见下文。 对于RHEL / CentOS,需要RHOSP或RDO存储库。角色变量Nova novncproxy...

    Common OpenStack Deployments pdf

    OpenStack is today’s leading technology for building and integrating public and private clouds. Common OpenStack Deployments is a complete, practical guide to deploying OpenStack and understanding ...

    OpenStackHA集群自动化部署工具ProStack.zip

    可以在 Ubuntu 14.04 Server 版上面自动化安装部署带有主/主式HA的OpenStack集群 可以自动化安装Ceph做为后端存储 拥有Web界面进行OpenStack集群的各项参数设置 支持卸载...

    openstack:部署OpenStack的脚本

    这些脚本旨在在Ubuntu 14.04上部署Kilo OpenStack。 它们用于OpenStack的初始安装。 它们不涉及网络,项目,用户,扫视图像等的创建。这将在以后的“操作方法”部分中介绍。 这些脚本受创建的Folsom和Grizzly文档的...

    openstack-juno-scripts

    Ubuntu 14.04 LTS 的 Openstack Juno 安装脚本 对于 Openstack 控制器: 操作系统:Ubuntu14.04 LTS 网卡: Eth0 : 公网 Eth1:Openstack 管理网络 此脚本安装 openstack 的以下组件并配置它们: 基石 一瞥 ...

    openstack源码分析之环境搭建

    由于OpenStack Nova是python语言进行开发的,而eclipse是很好用的开发工具,所以特此献上ubuntu上搭建eclipse+pydev插件形式开发环境的方法,以便大家能够更加方便的对源码进行分析。

    openstack实验报告.docx

    安装 OpenStack 对新手来说是个痛苦的过程,尤其是 OpenStack 和它依赖的一些组件在快速发展中,经常出现这个版本 keystone 对不上那个版本 dashboard 类似的情况。如果只是想看看 OpenStack 的话,使用 DevStack ...

    datadog-openstack-capacity-reporting

    概述仅在使用Python 2.7.6在Ubuntu Server 14.04.1之上运行的OpenStack Juno上对该插件进行了测试。 该插件旨在安装在OpenStack环境中的每个计算节点上。 安装后,此插件将查询OpenStack Nova API,以收集数据狗代理...

    ansible-role-nova-compute-docker

    新星计算docker ansible角色 该角色的目的是将nova-compute-docker部署到Ubuntu上。角色变量openstack_mysql_host:127.0.0.1 openstack_mysql_port:3306 openstack_rabbitmq_host:127.0.0.1 openstack_rabbitmq_...

    packer-devstack:让打包程序在 OpenStack 中创建 DevStack 的虚拟机映像

    以此为基础,在虚拟机上安装DevStack,设置local.conf为OFFLINE=true,上传虚拟机状态到Glance,销毁虚拟机。 最终结果是您在 Glance 中有一个镜像,可以在大约 3 分钟内启动 DevStack! 入门 下载基础镜像 wget ...

    prometheus-openstack-exporter:用于Prometheus监控系统的OpenStack导出器

    在Ubuntu 16.04上: apt-get install python-prometheus-client在Ubuntu 14.04上: pip install prometheus_client安装# Copy example config in place, edit to your needssudo cp prometheus-openstack-exporter....

    OpenStackDeployDocs:OpenStack 部署文档

     可以在 Ubuntu 14.04 Server 版上面自动化安装部署带有主/主式HA的OpenStack集群  可以自动化安装Ceph做为后端存储  拥有Web界面进行OpenStack集群的各项参数设置  支持卸载功能,卸载完OpenStack/Ceph之后,...

    simplestack:使用 Ansible 进行简单的 OpenStack 安装

    关于唯一额外的事情是haproxy被设置为使用ssl在nova和glance apis前面。流浪汉要求: 两台或三台服务器(通常是流浪虚拟机) 可信赖 14.04curtis$ vagrant box add ubuntu/trusty64 我正在使用vagrant-cachier插件...

    openstack-dns-updater:OpenStack DNS更新器

    OpenStack DNS更新程序在RabbitMQ消息总线上进行侦听。 每当创建或删除实例时,DNS更新程序都会创建或删除其DNS A记录。 实例的名称直接用作其FQDN。 因此,OpenStack中的实例应使用其FQDN命名。 DNS中存储的IP地址...

    dockerstack:在容器内运行的OpenStack服务。 具有讽刺意味的演示

    1.6.0或更高版本运行剧本的ansible服务器上的docker 版本1.2.3 运行剧本的ansible服务器上的 运行剧本的ansible服务器上的Keystone,Glance,Neutron,Swift,Ironic和Nova的OpenStack python客户端 pip install ...

    chef-openstack-testing-stack:被剥夺的

    使用目前与基础 OpenStack Juno 版本相关联的说明书的master分支,这支持部署到 Ubuntu 14 和 CentOS 7 平台的所有 nova 网络。 对多合一中子和多节点支持的支持正在进行中。 该项目的 stable/icehouse 分支支持 ...

    OpenStack云计算快速入门教程(1)之OpenStack及其构成简介

    该教程基于Ubuntu12.04版,它将帮助读者建立起一份OpenStack最小化安装。我是五岳之巅,翻译中多采用意译法,所以个别词与原版有出入,请大家谅解。我不是英语专业,我觉着搞技术最重要的就是理解,而不是四级和考研...

    nova-network

    描述本说明书配置 OpenStack 所需的网络,特别是计算服务 nova。要求需要 Chef 0.10.0 或更高版本(用于 Chef 环境)平台CentOS >= 6.3 Ubuntu >= 12.04食谱以下说明书是依赖项: mysql 新星osops-utils 系统控制...

    bootmachine:裸金属到铑

    配置管理工具目前支持: 盐 自己写队列中的下一个: 厨师 木偶 自己写提供者目前支持: 通过python-novaclient的Rackspace Openstack Compute API v2 通过python-novaclient进行非机架空间Openstack计算通过...

Global site tag (gtag.js) - Google Analytics