我的配置:
1.Cloud controller(云计算控制器)
ip:192.168.1.105
2.Compute node(计算节点)
ip:192.168.1.104
在写此文前,我参考过openstack的文档,但此文档跟devstack方式安装有差异,不必去遵循太多,毕竟人家是针对apt-get方式安装的。安装需要注意的两件事情:
1.尽量不要通过代理服务器上网安装。会产生很多奇怪的问题。我按照文档用过很多方式解决,都失败了。因为时间问题,我也不想继续探索过多,此问题由技术控去考虑吧。
列举一个问题:
NO JSON Object decode.
此问题是连接keystone时,因为外在proxy存在,导致在通过外在的proxy解析ip,造成超时退出的。
2.保证目录权限:
/opt/stack , /etc/nova, /var/log/nova 的用户组和用户均是stack。如果出现莫名其妙的问题,请先确保这些目录权限是对的。
列举一个问题:
please re-run nova-manage db sync
出现此问题的权限多半是因为目录权限造成。/var/log/nova 是/etc/nova/nova.conf 中打开debug信息时需要的:
logdir=/var/log/nova
此选项在debug时很重要,可以在stack.sh中加入( dev版本的默认是关闭debug的 )。出了问题可以到 /var/log/nova 中查问题。
因此,碰到奇怪的安装问题时,大可以执行以下三条命令:
sudo chown stack:stack /opt -R
sudo chown stack:stack /etc/nova -R
sudo chown stack:stack /var/log/nova -R
1.云控制器的安装(为了减少问题,我们可以都用sudo来完成工作,当然用root也是可以的。)(安装时,我的密码都是用nova,包括计算节点)
sudo apt-get install git sudo git clone git://github.com/openstack-dev/devstack.git cd devstack/ sudo ./stack.sh 安装好后,在浏览器中可以创建vm虚拟机即可认为正常。不必做更多的工作,越做越错的。:-) 我的版本是: # nova-manage version list 2012.1-dev (2012.1-LOCALBRANCH:LOCALREVISION) 2.计算节点的安装: sudo apt-get install git sudo git clone git://github.com/openstack-dev/devstack.git cd devstack/
修改stack.sh内容。其实云控制器和计算节点的主要差别就在nova.conf上的。当然启动的服务稍有差别。
云控制器的类似如下:
[DEFAULT]
verbose=True
auth_strategy=keystone
allow_resize_to_same_host=True
compute_scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler
logdir=/var/log/nova
dhcpbridge_flagfile=/etc/nova/nova.conf
fixed_range=10.0.0.0/24
s3_host=192.168.1.105
network_manager=nova.network.manager.FlatDHCPManager
volume_group=nova-volumes
volume_name_template=volume-%08x
iscsi_helper=tgtadm
osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions
my_ip=192.168.1.105
public_interface=br100
vlan_interface=eth0
flat_network_bridge=br100
flat_interface=eth0
sql_connection=mysql://root:nova@localhost/nova
libvirt_type=qemu
instance_name_template=instance-%08x
novncproxy_base_url=http://192.168.1.105:6080/vnc_auto.html
xvpvncproxy_base_url=http://192.168.1.105:6081/console
vncserver_listen=127.0.0.1
vncserver_proxyclient_address=127.0.0.1
api_paste_config=/etc/nova/api-paste.ini
image_service=nova.image.glance.GlanceImageService
ec2_dmz_host=192.168.1.105
rabbit_host=localhost
rabbit_password=nova
glance_api_servers=192.168.1.105:9292
force_dhcp_release=True
connection_type=libvirt
firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver
我们要在stack安装的时候,产生对应的nova.conf 。进入stack.sh中,找到:
ENABLED_SERVICES=${ENABLED_SERVICES:-g-api,g-reg,key,n-api,n-crt,n-obj,n-cpu,n-net,n-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,mysql,rabbit}
改成:
ENABLED_SERVICES=${ENABLED_SERVICES:-g-api,g-reg,key,n-api,n-obj,n-cpu,n-novnc,n-xvnc}
我不知道是不是还可以精简更多,但是这个肯定是可以用的了。然后要改的是生成nova.conf的字段。查找nova.conf,找到对应的字段,让它生成nova.conf的以下字段指向云控制器的ip。也就是以上标红的字段:
s3_host=192.168.1.105
sql_connection=mysql://root:nova@192.168.1.105/nova
ec2_dmz_host=192.168.1.105
rabbit_host=192.168.1.105
glance_api_servers=192.168.1.105:9292
改好这些后,执行
sudo ./stack.sh
安装成功后,检查一下nova.conf, 没错的话,可以执行:
nova-manage service list
Binary Host Zone Status State Updated_At
nova-compute Latitude-E6410 nova enabled :-) 2012-03-10 13:31:33
nova-cert Latitude-E6410 nova enabled :-) 2012-03-10 13:31:40
nova-volume Latitude-E6410 nova enabled :-) 2012-03-10 13:31:33
nova-network Latitude-E6410 nova enabled :-) 2012-03-10 13:31:33
nova-scheduler Latitude-E6410 nova enabled :-) 2012-03-10 13:31:34
nova-consoleauth Latitude-E6410 nova enabled :-) 2012-03-10 13:31:40
nova-compute txt-4 nova enabled :-) 2012-03-10 13:31:35
或者
nova-manage host list
Latitude-E6410 nova
txt-4 nova
看到这些,基本上大功告成了。你可以在dashboard的网页上创建vm了。一般而言,都会在计算节点上创建vm的。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用devstack安装多节点openstack云计算系统 - Python技术站