部署环境介绍
控制节点:node79 192.168.136.79
计算节点:node78 192.168.136.78
每台机器均为HP Proliant
双网卡,其中eth0为公网接口,eth1为内部接口,供nova-network和虚拟机通信使用
操作系统版本为ubuntu 11.10
(1)下载devstack
分别用root用户登录node79 和node78,
cd /root
执行:git clone https://github.com/openstack-dev/devstack.git
在/root目录下会生成devstack文件夹
(2)在控制结点上安装ntp server程序,编辑/etc/ntp.conf文件
添加
server ntp.ubuntu.com
server 127.127.1.0
fudge 127.127.1.0 stratum 10
在计算结点一端,通过cron服务和ntpdate程序周期性的从控制结点同步时间。
将如下语句写入 相关的cron脚本中
ntpdate 192.168.136.79
hwclock -w
注意:计算节点不需要安装ntp服务;节点间的时间同步非常重要!!!!这一步不可省略
(3)控制节点配置
在控制节点的devstack目录中,新建localrc配置文件,添加如下的配置信息:
HOST_IP=192.168.136.79 FLAT_INTERFACE=eth1 FIXED_RANGE=10.0.0.0/24 FIXED_NETWORK_SIZE=256 FLOATING_RANGE=192.168.136.192/26 MULTI_HOST=1 MYSQL_PASS=123 RABBIT_PASS=123 SERVICE_TOKEN=123 MYSQL_PASSWORD=123 RABBIT_PASSWORD=123 SERVICE_PASSWORD=123 ADMIN_PASSWORD=123 VOLUME_BACKING_FILE_SIZE=10G
HOST_IP为当前节点的IP地址
FIXED_RANGE为虚拟机使用的内部IP段、
其中csdb123cnic为相关的密码设置,可根据自己的情况进行修改
VOLUME_BACKING_FILE_SIZE 为逻辑卷的大小
之后运行
./stack.sh安装脚本
安装成功后,将会显示如下的信息:
This is your host ip: 192.168.136.79
stack.sh completed in 31 seconds.
(4)计算节点配置
计算节点的配置和控制节点大同小异,主要是localrc文件的配置不同,
HOST_IP=192.168.136.78 # change this per compute node FLAT_INTERFACE=eth1 FIXED_RANGE=10.0.0.0/24 FIXED_NETWORK_SIZE=256 FLOATING_RANGE=192.168.136.192/26 MULTI_HOST=1 MYSQL_PASS=123 RABBIT_PASS=123 SERVICE_TOKEN=123 MYSQL_HOST=192.168.136.79 RABBIT_HOST=192.168.136.79 GLANCE_HOSTPORT=192.168.136.79:9292 ENABLED_SERVICES=n-cpu,n-net,n-api,n-novnc MYSQL_PASSWORD=123 RABBIT_PASSWORD=123 SERVICE_PASSWORD=123 ADMIN_PASSWORD=123
ENABLED_SERVICES变量控制了计算节点所安装的服务,在本例中,计算节点安装了compute,network和novnc服务
由于计算节点也安装了network服务,所以计算节点上的虚拟机的网络走的是自己所在节点的流量
另外需要提及的是,也可以通过devstack在单网卡的环境中进行多节电部署,只需要将FLAT_INTERFACE改为eth0就可以了
(5)使用
安装好之后就可以通过访问192.168.136.79地址来使用openstack了,用户名和密码分别为:admin/csdb123cnic
(6)openstack的重启
devstack采用screen管理openstack的各个服务,因此在安装完成之后,请确保使用kill screen命令中止相关服务。
devstack没有提供重启openstack服务的相关脚本,当机器重新启动之后,openstack的相关服务不会随机启动,因此这一部分需要更改相关脚本来实现。
此外需要注意的是,安装openstack之后,再次运行stack.sh脚本文件,会重新安装openstack,从而得到一个全新的openstack环境。
我们编写自己的启动脚本,如下所示:
控制节点服务启动脚本
#!/bin/bash set -o xtrace ps ax|grep nova|grep -v kvm|grep -v grep|awk '{print $1}'|xargs -L 1 kill ps ax|grep glance|grep -v grep|awk '{print $1}'|xargs -L 1 kill ps ax|grep keystone|grep -v grep|awk '{print $1}'|xargs -L 1 kill cd /opt/stack/glance nohup bin/glance-registry --config-file=/etc/glance/glance-registry.conf > /opt/stack/nohup.out & cd /opt/stack/glance nohup bin/glance-api --config-file=/etc/glance/glance-api.conf > /opt/stack/nohup.out & cd /opt/stack/keystone nohup /opt/stack/keystone/bin/keystone-all --config-file /etc/keystone/keystone.conf --debug > /opt/stack/nohup.out& cd /opt/stack/nova nohup /opt/stack/nova/bin/nova-api > /opt/stack/nohup.out & #cd /opt/stack/nova #nohup sg libvirtd /opt/stack/nova/bin/nova-compute > /opt/stack/nohup.out & cd /opt/stack/nova nohup /opt/stack/nova/bin/nova-cert > /opt/stack/nohup.out & cd /opt/stack/nova nohup /opt/stack/nova/bin/nova-volume > /opt/stack/nohup.out & cd /opt/stack/nova nohup /opt/stack/nova/bin/nova-network > /opt/stack/nohup.out & cd /opt/stack/nova nohup /opt/stack/nova/bin/nova-scheduler > /opt/stack/nohup.out & cd /opt/stack/noVNC nohup ./utils/nova-novncproxy --config-file /etc/nova/nova.conf --web . > /opt/stack/nohup.out & cd /opt/stack/nova nohup ./bin/nova-xvpvncproxy --config-file /etc/nova/nova.conf > /opt/stack/nohup.out & cd /opt/stack/nova nohup ./bin/nova-consoleauth > /opt/stack/nohup.out & set +o xtrace
计算节点服务启动脚本:
#!/bin/bash set -o xtrace ps ax|grep nova|grep -v kvm|grep -v grep|awk '{print $1}'|xargs -L 1 kill ps ax|grep glance|grep -v grep|awk '{print $1}'|xargs -L 1 kill ps ax|grep keystone|grep -v grep|awk '{print $1}'|xargs -L 1 kill cd /opt/stack/nova nohup /opt/stack/nova/bin/nova-api > /opt/stack/nohup.out & cd /opt/stack/nova nohup sg libvirtd /opt/stack/nova/bin/nova-compute > /opt/stack/nohup.out & cd /opt/stack/nova nohup /opt/stack/nova/bin/nova-network > /opt/stack/nohup.out & cd /opt/stack/noVNC nohup ./utils/nova-novncproxy --config-file /etc/nova/nova.conf --web . > /opt/stack/nohup.out & set +o xtrace