openstack 初步部署和测试 ............................................................................................................. 2
openstack功能 .......................................................................................................................... 2 openstack安装过程 .................................................................................................................. 3
中心控制节点上的安装: ............................................................................................... 3 在计算节点上安装nova .................................................................................................. 6 在openstack上开启虚拟机 ............................................................................................. 7 手动分配ip地址 .............................................................................................................. 8 配置逻辑卷 ....................................................................................................................... 9 动态迁移 ......................................................................................................................... 10 镜像管理 ......................................................................................................................... 12 openstack的api ...................................................................................................................... 12
用户管理 ......................................................................................................................... 13 project管理..................................................................................................................... 14 account管理 ................................................................................................................... 14 role管理 ......................................................................................................................... 15 network管理................................................................................................................... 15 image管理 ...................................................................................................................... 17 instance_type/flavors管理 .............................................................................................. 17 VM/instance管理 ........................................................................................................... 17 volume逻辑卷管理 ........................................................................................................ 19 service 管理 ................................................................................................................... 19 fixed 固定ip管理 ......................................................................................................... 20
openstack 初步部署和测试
openstack功能
openstack提供的是一个云平台实现方案,类似于其他的云实现,openstack提供了基于虚拟机的云计算服务(nova);云存储服务(swift),以及镜像服务(glance),在openstack的新版本diablo中还引进了openstack一直缺乏的认证功能(代号为keystone),还提供了改进的web界面管理dashboard(Horizon)。我们这里已经安装的版本是openstack的上一版cactus,提供了一个简单的dashboard可以体验。
下面介绍openstack提供的云计算服务(nova) openstack官方给出的框架如下:
我们看到openstack的两个核心组件:一个是消息队列Queue,使用的Rabbitmq-serer,另一个是数据库,这里使用的是mysql数据库。nova的5个关键部分:nova-api,nova-compute,nova-network,nova-schedule和nova-volume之间的消息传递都是通过消息队列服务器来完成,它们之间并无数据的传递,并通过数据来记录相关状态。
对镜像服务glance,openstack专门提供了一个glance-api接口,所有镜像服务都是通过这个接口与镜像存储和相关数据库联系的。
nova-api:提供命令接口,包括openstack自身的用户命令(以nova-manage 开头的命令),和EC2中的相关命令(格式为euca-********),其中EC2的命令实现的比较全面一些。
nova-compute:提供云计算的核心服务,在计算节点上必须跑的服务,而且可以在计算节点上只跑nova-compute服务,来支持虚拟机的创建删除迁移等功能,该服务基本上就是对所有虚拟机的相关操作。
nova-network:nova提供的网络服务,负责分配ip地址,配置网关,网桥,修改iptables,创建路由等功能,主要是要完成各个虚拟机之间的连通,以及不同主机上的不同虚拟机的通信问题。
nova-schedule:是nova的一个策略服务器,从消息队列中取出要创建虚拟机消息并决定虚拟机要运行在那个位置上。
nova-volume:nova的逻辑卷管理服务,openstack使用LVM来管理磁盘,并能够把分区挂载到虚拟机上当做一个硬盘使用。
dashboard:openstack提供了一个简易的web界面。dashboard把请求转化为nova-api能接受的命令。
nova提供的功能主要有以下几个方面:
1.用户管理 提供用户账户的管理,包括管理员账户和普通用户账户的管理,这些账户可以创建自己的工程,并创建虚拟机,发布应用等
2.权限管理 openstack提供的权限有Cloud Administrator,IT Security,System
Administrator,Network Administrator,Developer,Project Manager(创建工程时的默认角色)六种,可以给用户添加或者删除某个角色,但不能创建新的角色
3.项目管理 用户可以创建删除项目,添加可访问用户,创建压缩用户证书和环境变量等
4.网络管理 给虚拟机提供DHCP或者VLan等网络管理,并能对虚拟机绑定外网ip,实现外网ip的分配回收等管理。
5.镜像管理 提供虚拟机镜像上传,存储,注册
6.虚拟机管理 提供虚拟机的创建,删除,重启,迁移等操作,
7.虚拟机类型管理 创建虚拟机时需要制定虚拟机类型,虚拟机类型规定了内存,cpu,硬盘等信息。
8.逻辑卷管理 使用LVM创建逻辑卷,并绑定到虚拟机上,显示为增加的硬盘。
openstack安装过程 中心控制节点上的安装:
安装有脚本安装和手动安装,这里进行手动安装,系统ubuntu10.04 LTS
首先要配置nova包仓库,需要先安装python-software-properties,才能添加apt仓库,如果是用PXE方式安装的系统,那么ubuntu 源配置的应该都不对,需要重新配置,/etc/apt/sources.list 文件,并apt-get update
sudo apt-get install python-software-properties 添加nova包源
sudo add-apt-repository ppa:nova-core/release 再更新
sudo apt-get update
安装消息队列服务器,Rabbitmq
sudo apt-get install -y rabbitmq-server
安装python依赖文件,这里需要python版本在2.7一下,否则会报错。ubuntu11.10默认安装的python3.0,版本过高。
sudo apt-get install -y python-greenlet python-mysqldb 安装nova包,其中需要的一些依赖文件将被自动安装
sudo apt-get install -y nova-common nova-doc python-nova nova-api
sudo apt-get install -y nova-network nova-objectstore nova-scheduler nova-compute
安装工具支持,euca2ools和unzip
sudo apt-get install -y euca2ools unzip
重启机器,因为安装过程中出现过系统崩溃的情况,还不明原因,所以安装还是要谨慎一些。
安装数据库mysql,期间需要输入访问密码。 sudo apt-get install -y mysql-server
编辑/etc/mysql/my.cnf,修改‘bind-address' 从127.0.0.1到0.0.0.0,就是不仅仅只有本机能登陆该mysql服务器,并重启mysql服务 sudo sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
sudo service mysql restart
创建数据库'nova',数据库名字要和/etc/nova/nova.conf中配置的数据库连接--sql_connection一致。
sudo mysql -uroot -pmysql -e 'CREATE DATABASE nova;' 创建用户nova并授权其对数据库全部控制权
sudo mysql -uroot -pnova -e \GRANT OPTION;\
给用户nova设置密码例如:novapass
sudo mysql -uroot -pnova -e \PASSWORD FOR 'nova'@'%' =PASSWORD('novapass');\
使用用户名nova和密码novapass可以登录数据库
配置网络,这里配置了两块网卡。但用到的就只有eth0,而eth1就做一个备选的网口。在安装的openstack中并没有用到,但openstack支持双网卡配置,修改 /etc/network/interface如下:
auto br100
iface br100 inet static
bridge_ports eth0 bridge_stp off bridge_maxwait 0 bridge_fd 0 address 192.168.1.10 netmask 255.255.255.0 gateway 192.168.1.253
auto eth1
iface eth1 inet static address 192.168.1.17 netmask 255.255.255.0 gateway 192.168.1.253
重启网络服务
/etc/init.d/networking restart
修改openstack配置文件/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=1
--s3_host=192.168.1.10 --rabbit_host=192.168.1.10 --osapi_host=192.168.1.10 --cc_host=192.168.1.10 --FAKE_subdomain=ec2 --ec2_host=192.168.1.10
--ec2_url=http://192.168.1.10:8773/services/Cloud
--sql_connection=mysql://nova:novapass@192.168.1.10/nova #--image_service=nova.image.glance.GlanceImageService #--glance_host=192.168.1.10 #--glance_port=9292
--network_manager=nova.network.manager.FlatDHCPManager --flat_network_dhcp_start=172.16.0.2 --fixed_range=172.16.0.0/24 --iscsi_ip_prefix=192.168.1 --bridge_interface=br100 --flat_network_bridge=br100 --flat_interface=eth0 --flat_injected=False --num_networks=100 #--public_interface=eth1 --network_size=256
--routing_source_ip=192.168.1.10 --libvirt_type=kvm --use_syslog=true
--connection_type=libvirt
重启nova所有服务
restart libvirt-bin; restart nova-network; restart nova-compute;