OpenStack之noVNC问题(Failed to connect to server (code: 1006))处理

转载 2016年08月29日 17:54:02

原博文地址 : http://www.itbaofeng.com/?p=264


1.环境及问题描述

环境

  • OpenStack版本:juno
  • 操作系统版本:CentOS 7.1 x86_64
  • 3个controller节点 + 1个computer节点 + 1个haproxy节点(其中controller节点兼computer使用)

问题描述

搭建好测试环境后,发现在打开云主机控制台的时候,显示:Failed to connect to server (code: 1006)
每刷新3次,有1次可以连接。

3个controller节点的consoleauth日志信息如下:

  1. #controller1:
  2. 2015-10-10 11:05:05.051 1104 AUDIT nova.consoleauth.manager [req-0f697774-b778-4ce8-9cff-7078e2036317 None] Checking Token: fef65824-406b-42e5-9199-4ee8194e39fa, False
  3. 2015-10-10 11:05:23.870 1104 AUDIT nova.consoleauth.manager [req-b04e2736-6283-4ba2-bea3-bc556a8e60d6 None] Checking Token: fef65824-406b-42e5-9199-4ee8194e39fa, False
  4. 2015-10-10 11:13:48.088 1104 AUDIT nova.consoleauth.manager [req-a9258fed-35d4-492f-9a5a-00a3b58240d4 None] Checking Token: fef65824-406b-42e5-9199-4ee8194e39fa, False
  5. 2015-10-10 11:36:18.694 1104 AUDIT nova.consoleauth.manager [req-c5a66fba-b99d-4a57-840f-a74ed3c7c2da None] Checking Token: fef65824-406b-42e5-9199-4ee8194e39fa, False
  6. #controller2:
  7. 2015-10-10 11:05:07.044 1103 AUDIT nova.consoleauth.manager [req-ca733888-bfa0-46f4-abf2-49e1c8693b9c None] Checking Token: fef65824-406b-42e5-9199-4ee8194e39fa, False
  8. 2015-10-10 11:05:56.271 1103 AUDIT nova.consoleauth.manager [req-b4310c18-61c1-49e9-97dd-8db8ea0c4ef5 None] Checking Token: fef65824-406b-42e5-9199-4ee8194e39fa, False
  9. 2015-10-10 11:13:45.048 1103 AUDIT nova.consoleauth.manager [req-a1ddd835-1694-4d28-956b-6d700b550897 None] Checking Token: fef65824-406b-42e5-9199-4ee8194e39fa, False
  10. 2015-10-10 11:13:49.734 1103 AUDIT nova.consoleauth.manager [req-e278eede-ed05-4bc7-b667-c393f9c900f1 None] Checking Token: fef65824-406b-42e5-9199-4ee8194e39fa, False
  11. #controller3:
  12. 2015-10-10 11:05:04.723 1096 AUDIT nova.consoleauth.manager [req-2c015318-f860-4ab9-addf-22681c72c7ef None] Received Token: fef65824-406b-42e5-9199-4ee8194e39fa, {'instance_uuid': u'88445c97-f175-4225-9ff3-be7e4bc621ca', 'internal_access_path': None, 'last_activity_at': 1444446304.72337, 'console_type': u'novnc', 'host': u'172.168.128.138', 'token': u'fef65824-406b-42e5-9199-4ee8194e39fa', 'port': u'5901'}
  13. 2015-10-10 11:05:10.897 1096 AUDIT nova.consoleauth.manager [req-5b2bece9-89d3-4099-b3e9-af9dd69e6481 None] Checking Token: fef65824-406b-42e5-9199-4ee8194e39fa, True
  14. 2015-10-10 11:06:02.011 1096 AUDIT nova.consoleauth.manager [req-38d0ceb4-67fb-4ed3-b10e-25e69e31548e None] Checking Token: fef65824-406b-42e5-9199-4ee8194e39fa, True
  15. 2015-10-10 11:13:46.502 1096 AUDIT nova.consoleauth.manager [req-2a26287c-d33e-4201-9641-27caadccf446 None] Checking Token: fef65824-406b-42e5-9199-4ee8194e39fa, True
  16. 2015-10-10 11:13:51.365 1096 AUDIT nova.consoleauth.manager [req-bf01a298-7cc7-4fcd-a565-3e96fdf29226 None] Checking Token: fef65824-406b-42e5-9199-4ee8194e39fa, True

2. 问题分析

通过日志我们可以总结:当我们通过dashboard通过novnc访问控制台的时候,获取到的token值是固定的,然后会轮询到3个controller节点进行token验证,而这3个controller节点上对同一个实例的token值是不同的。

2.1 NOVNC实现原理

我们先了解一下NOVNC的实现原理:
参考:

noVNC的处理流程如下图所示:

2.2 问题分析

从上面的图中可以看出,本次的问题出现在第7步,check token不一致。为什么会出现不一致呢?
原因在于3个controller节点的nova-consoleauth的cache是独立的,对同一个实例存放了3个节点有3个不同的token,因此导致每3次连接有2次连接报错(Invalid Token)

3. 问题解决方法

参考:high-availability-guide中memcached章节
使用memcache,把consoleauth的cache存放在memcache中,这样3个controller节点中对同一个instance的token就一致了。
在3个controller节点的在nova.conf中添加:

  1. # Memcached servers or None for in process cache. (list value)
  2. memcached_servers = controller3:11211,controller2:11211,controller1:11211

重启openstack-nova-consoleauth服务后noVNC就可以正常访问了。


openstack控制台出错Failed to connect to server (code: 1006)

错误描述 :打开openstack控制台后,控制台出错,显示Failed to connect to server (code: 1006),如下图: 错误分析:点击只显示控制台可看到地址是cont...

Openstack 出现"Failed to connect to server (code: 1006)“总结

在安装了正确的Openstack后出现了

dashboard控制台vnc修改为spice(openstack-icehouse)

1、环境: centos 6.5 min版: openstack ice版: 192.168.1.210 controller 192.168.1.211 network 192.16...

openstack novnc的配置

控制节点:cloud-controller ip 192.168.1.103

解决openstack novnc一段时间后自动挂断登录不上问题,novncproxy dead but pid file exists

/etc/init.d/openstack-nova-novncproxy status openstack-nova-novncproxy dead but pid file exis...

noVNC在Windows下的应用

一、实现功能 目标:通过浏览器远程访问Windows桌面。 原理:浏览器不支持VNC,所以不能直接连接VNC,但是可以使用代理,使用noVNC通过WebSocket建立连接,而VNC Serv...

OpenStackVNC FAQ

OpenStack VNC  FAQ 背景:         在essex版本的vnc安装过程中,问题其实很多,从OpenStack中国社区综合群的交流反馈可以知道这个一个共性的问题,这主要是文档...

openstack vnc分析

VNC (Virtual Network Computer)是虚拟网络计算机的缩写。VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX...

novnc安装与使用

novnc使用方法 一,安装vncserver 第一种vncserver $sudo apt-get install tightvncserver  //tightvncserver是可以访问命...

用VNC 客户端如何查看openstack 创建的虚拟机

在云计算的环境中,实际上更多的时候是使用VNC 工具去查看云系统中的VM。以下记录如何查看的方法:  控制节点查看虚拟机的ID(libvird 的,非instanc_id) 找到需要连接的...
  • jackny9
  • jackny9
  • 2016年03月19日 13:43
  • 2083
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenStack之noVNC问题(Failed to connect to server (code: 1006))处理
举报原因:
原因补充:

(最多只允许输入30个字)