分享

openstack icehouse 3节点部署遇到的问题和解决方法

nettman 发表于 2014-7-18 22:32:33 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 2 16724
问题导读:
1.遇到错误,该如何查看错误原因?
2.openstack-nova-compute正常启动,进程不存在,可能原因是什么?
扩展:
3.openstack遇到错误,该如何入手解决问题?




刚接触openstack不久,参考官方文档实施3节点部署时遇到了一些问题,主要集中在compute node,还好有十几年的运维经验协助我把问题一一解决了。以下会用红字部分标识解决方法。

系统环境:CentOS 6.5 64位
各节点IP:完全按照官方文档中的IP进行了配置
日志记录日期:2014-7-6

问题部分:
Controller Node
Install the dashboard
Updatethe ALLOWED_HOSTS in local_settings.py to include theaddresses you wish to access the dashboard from.
Edit /etc/openstack-dashboard/local_settings:

  1. ALLOWED_HOSTS= ['localhost', 'my-desktop']
复制代码
实际配置为
  1. ALLOWED_HOSTS = ['10.0.0.11', '0.0.0.0']
复制代码


这段配置估计是python的列表,指允许访问dashboard的hosts,
按照官方文档的配置,dashboard页面会报错无法开启。如下图所示:

1.jpg

通过检查Apache日志/var/log/httpd/error_log 后排除了此问题。

2.jpg

Compute Node
问题1:

OpenStack Networking (neutron)
Configure compute node
To install the Networkingcomponents


  1. yum install openstack-neutron-ml2 openstack-neutron-openvswitch
复制代码


实际还缺少:
openstack-nova-compute
完整的内容为:


  1. yum install openstack-neutron-ml2openstack-neutron-openvswitch openstack-nova-compute -y
复制代码





问题2:
To configureCompute to use Networking
By default, mostdistributions configure Compute to use legacy networking. You must reconfigureCompute to manage networks through Networking.
  • Run the following commands:

Replace NEUTRON_PASS with the password you chose for the neutron user in the Identity service.


  1. # openstack-config --set/etc/nova/nova.conf DEFAULT \
  2. network_api_class nova.network.neutronv2.api.API
  3. # openstack-config --set/etc/nova/nova.conf DEFAULT \
  4. neutron_url http://controller:9696
  5. # openstack-config --set /etc/nova/nova.confDEFAULT \
  6. neutron_auth_strategy keystone
  7. # openstack-config --set/etc/nova/nova.conf DEFAULT \
  8. neutron_admin_tenant_name service
  9. # openstack-config --set/etc/nova/nova.conf DEFAULT \
  10. neutron_admin_username neutron
  11. # openstack-config --set/etc/nova/nova.conf DEFAULT \
  12. neutron_admin_password NEUTRON_PASS
  13. # openstack-config --set/etc/nova/nova.conf DEFAULT \
  14. neutron_admin_auth_url http://controller:35357/v2.0
  15. # openstack-config --set/etc/nova/nova.conf DEFAULT \
  16. linuxnet_interface_driver nova.network.linux_net.LinuxOVSInterfaceDriver
  17. # openstack-config --set/etc/nova/nova.conf DEFAULT \
  18. firewall_driver nova.virt.firewall.NoopFirewallDriver
  19. # openstack-config --set/etc/nova/nova.conf DEFAULT \
  20. security_group_api neutron
复制代码
实际还缺少:



  1. openstack-config --set /etc/nova/nova.conf DEFAULT \
  2. qpid_hostname controller
  3. openstack-config --set /etc/nova/nova.conf DEFAULT \
  4. rpc_backend qpid
  5. openstack-config --set /etc/nova/nova.conf DEFAULT \
  6. glance_host controller
  7. openstack-config --set /etc/nova/nova.conf DEFAULT \
  8. auth_strategy keystone
  9. openstack-config --set /etc/nova/nova.conf DEFAULT \
  10. novncproxy_base_url http://10.0.0.11:6080/vnc_auto.html
  11. openstack-config --set /etc/nova/nova.conf DEFAULT \
  12. vncserver_proxyclient_address 10.0.0.31
  13. openstack-config --set /etc/nova/nova.conf DEFAULT \
  14. vncserver_listen 0.0.0.0
  15.   
  16. chkconfig openstack-nova-compute on
复制代码


原因分析:
通过检查compute日志/var/log/nova/compute.log,发现如下问题。
1、compute node无法和controller node通信,如下图所示

3.jpg
查看/etc/nova/nova.conf配置文件,确认默认配置为rpc_backend=rabbit、qpid_hostname=localhost,故修改
rpc_backend=qpid
qpid_hostname=controller

2、compute node无法从controller node GET到导入的image,如下图所示
controller node 日志/var/log/glance/api.log截图
4.jpg

compute node日志/var/log/nova/compute.log截图

5.jpg

查看/etc/nova/nova.conf配置文件,确认默认配置为glance_host=$my_ip而my_ip=10.0.0.1,故修改
glance_host=controller
修改后发现还是无法获取到image,再次分析/var/log/glance/api.log后确认,GET的时候未带入token信息。查看/etc/nova/nova.conf配置文件,确认默认配置为auth_strategy=noauth,故修改
auth_strategy=keystone

3、controller node上的dashboard无法打开虚机的控制台,查看各日志均无任何报错信息。前台报错截图如下

6.jpg

搜索官方帮助区后解决了此问题

编辑compute节点的/etc/nova/nova.conf配置文件
novncproxy_base_url=http://10.0.0.11:6080/vnc_auto.html
vncserver_proxyclient_address=10.0.0.31
vncserver_listen=0.0.0.0

修改配置后需要重启openstack-nova-compute服务,并使用netstat命令检查5900端口状态,这是控制台需要访问compute的端口






问题3:
执行openstack-nova-compute启动命令,前端无任何报错信息,服务可正常启动。


  1. /etc/init.d/openstack-nova-compute start
复制代码

稍后检查openstack-nova-compute状态,会发现提示信息为进程不存在,但pid文件存在需要删除pid文件后方可再次启动服务。

  1. /etc/init.d/openstack-nova-compute status
  2. rm -f /var/run/nova/nova-compute.pid
复制代码


解决方法:
通过检查compute日志/var/log/nova/compute.log后排除了此问题。
8.jpg

官方文档中未对libvirtd设置进行介绍,实际使用中需要对libvirtd做如下配置。
·        Edit the cgroup_device_acl array in the/etc/libvirt/qemu.conf file to:

  1. cgroup_device_acl = [
  2. "/dev/null", "/dev/full","/dev/zero",
  3. "/dev/random", "/dev/urandom",
  4. "/dev/ptmx", "/dev/kvm","/dev/kqemu",
  5. "/dev/rtc","/dev/hpet","/dev/net/tun"
  6. ]
复制代码



·        Enable live migration by updating/etc/libvirt/libvirtd.conf file:

  1. listen_tls = 0
  2. listen_tcp = 1
  3. auth_tcp = "none"
复制代码


启动openstack-nova-compute前需要先启动libvirtd服务,并将libvirtd设置为开机启动服务


  1. /etc/init.d/libvirtd start
  2. chkconfig libvirtd on
复制代码








7.jpg
加微信w3aboutyun,可拉入技术爱好者群

已有(2)人评论

跳转到指定楼层
fengyangcheng 发表于 2014-8-1 10:51:09
很好,谢谢楼主
回复

使用道具 举报

marsaber 发表于 2015-1-15 11:29:48
后来的官方文档中好像已经解决了这些问题。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条