OpenStack安装配置篇
OpenStack是一套用来管理虚拟机的平台软件。它不是一个单一的软件,而是集成了很多个组件用来协同合作。简单的来说,譬如有十台服务器,在VMware的情况下,我们在每台服务器上安装esx或者esxi,然后装一台vcenter,在vcenter的管理界面里把十台服务器的esx通过域名或者ip加入,就能在vcenter里面统一管理。类似的,红帽也有virsh这种管理虚拟机的程序。
相关阅读:在Ubuntu上安装和配置OpenStack Nova
在这里我不介绍其他的云平台的管理软件,只是介绍如何从技术角度来使用OpenStack。如果要作为生产环境的话,你还需要考虑更多,譬如架构,网络拓扑,存储的方式,节点的分布等等。
在本篇文章里,我将介绍采用ec2兼容认证的方式 。所有组件安装在一台controller上。
关键字定义
控制端:类似vcenter的管理系统。
节点:类似安装了esx的服务器。
nova组件:安装在节点上,让节点能按照控制端的命令来操作节点上的虚拟机或者存储。
glance组件:用来管理镜像。
环境准备
ubuntu 11.10,服务器双网卡
步骤
安装完基本的操作系统后 
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install bridge-utils  #安装网桥软件 
配置网络接口
在这里我的架构是eth0连接了外网,即我們可以访问的网口。eth1做了网桥,和节点之间通过一个交换机连接。这样的好处是,内部节点和控制器的流量都走br100的交换机,而不会影响虚拟机上的应用使用的网络。
$ sudo vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.200.21
netmask 255.255.255.0
network 192.168.200.0
broadcast 192.168.200.255
gateway 192.168.200.10
auto br100
iface br100 inet static
bridge_ports eth1
bridge_stp off
bridge_maxwait 0
bridge_fd 0
address 10.200.200.2
netmask 255.255.255.0
$ sudo /etc/init.d/networking restart
初期准备工作做好,接下来就是要安装关于novaglance等组件
$ sudo apt-get install -y rabbitmq-server #安装MQ消息組件
$ sudo apt-get install -y python-greenlet python-mysqldb #安装Python dependencies
接下来安装各个nova组件及依赖
$ sudo apt-get install nova-volume nova-vncproxy nova-api nova-ajax-console-proxy
$ sudo apt-get install nova-doc nova-scheduler nova-objectstore
$ sudo apt-get install nova-network nova-compute
$ sudo apt-get install glance
安装euca2oolsunzip
$ sudo apt-get install -y euca2ools unzip
接下来我们安装数据库,这裡我选择了MySQL,其实个人觉得PostgreSQL更好。
$ sudo su -
# MYSQL_PASS=nova 设定mysql的密码和ubuntu网络配置nova数据库的密码
# cat <<MYSQL_PRESEED | debconf-set-selections
>mysql-server-5.1 mysql-server/root_password password $MYSQL_PASS
>mysql-server-5.1 mysql-server/root_password_again password $MYSQL_PASS
>mysql-server-5.1 mysql-server/start_on_boot boolean true
>MYSQL_PRESEED
# apt-get install -y mysql-server
# exit 退出root环境
$ sudo sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/myf 修改myf配置文件
$ sudo service mysql restart
$ MYSQL_PASS=nova 在普通用户环境下把密码再次设置一下变量
$ NOVA_PASS=notnova 这是nova数据库的密码
$ sudo mysql -uroot -p$MYSQL_PASS -e 'CREATE DATABASE nova;' 创建一个名字为nova的数据库,这裡建议新手使用nova的名字,如果这裡换别的名字,那麽在nova的配置文件裡面也需要更改
$ sudo mysql -uroot -p$MYSQL_PASS -e "GRANT ALL PRIVILEGES ON *.* TO 'nova'@'%' WITH GRANT OPTION;"
$ sudo mysql -uroot -p$MYSQL_PASS -e "SET PASSWORD FOR 'nova'@'%' = PASSWORD('$NOVA_PASS');"
至此,novaglance的安装部分完成,接下来是配置。
nova配置
$ sudo vi /etc/f
--dhcpbridge_flagfile=/etc/f
--dhcpbridge=/usr/bin/nova-dhcpbridge
--logdir=/var/log/nova
--state_path=/data/openstack/nova 这裡的/data/openstack/nova是我新建的一个卷和目录,确保你有这个,并且要属于nova用户,或者你也可以使用他的默认设置
--instances_path=/data/openstack/nova/instances 修改了默认存放instances的地方
-
-lock_path=/var/lock/nova
--force_dhcp_release=True
--use_deprecated_auth
--iscsi_helper=tgtadm
--verbose
--scheduler_driver=nova.scheduler.simple.SimpleScheduler
--network_manager=novawork.manager.FlatDHCPManager
--my_ip=10.200.200.2 这是我的内网ip地址
--public_inter>
--sql_connection=mysql://nova:notnova@localhost/nova 刚才建立的数据库
--libvirt_type=kvm
--api_paste_config=/etc/nova/api-paste.ini
--image_service=nova.image.glance.GlanceImageService
--ec2_dmz_host=192.168.200.21
--ec2_url=192.168.200.21:8773/services/Cloud
--rabbit_host=localhost
--glance_api_servers=10.200.200.2:9292
--flat_network_bridge=br100
--flat_inter>
--flat_network_dhcp_start=10.200.200.51 指定从instances分配从51开始,但貌似这个选项不起作用
--fixed_range=10.200.200.0/24 这个选项指定instances的网段
--flat_injected=False
--multi_host=1 使用multi_host,即以后可以在节点上也使用nova-network