VNC控制台无法访问虚拟机问题指导手册

Posted whd-672701

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VNC控制台无法访问虚拟机问题指导手册相关的知识,希望对你有一定的参考价值。

本文介绍VNC控制台访问虚拟机故障处理指导。

 

1:基础服务检查

ssh到控制节点(严格来说是配置VNC服务代理节点,TECS目前默认在控制节点上)

systemctl status openstack-nova-novncproxy

技术图片 

这个服务要是active / running的

 

2:基础配置检查

ssh到控制节点采集信息:

openstack-config --get /etc/nova/nova.conf DEFAULT novncproxy_host

openstack-config --get /etc/nova/nova.conf DEFAULT novncproxy_port

技术图片 

novncproxy_host 0.0.0.0

这个配置选项设置控制节点对外暴露的vnc服务地址,默认是全零地址,这样就可从控制节点的任意网口访问虚拟机的VNC界面了

novncproxy_port 6080

这个选项设置对外暴露的端口号,默认都是6080,最好不要改动。

 

ssh到计算节点采集信息:

openstack-config --get /etc/nova/nova.conf DEFAULT novncproxy_base_url

openstack-config --get /etc/nova/nova.conf DEFAULT vnc_enabled

openstack-config --get /etc/nova/nova.conf DEFAULT vncserver_listen

openstack-config --get /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address

技术图片 

novncproxy_base_url http://FQDN:6080/vnc_auto.html

这个选项定义通过哪个VNC proxy server访问本计算节点上的虚拟机,当计算节点数量非常多的时候,可以多设置一些代理,分工一下。比如有1000个计算节点时,可以设置10个代理节点,每个代理节点上都运行openstack-nova-novncproxy服务,每个代理节点服务100个计算节点,至于是哪100个,就是通过http链接中的“FQDN”来确定的了,比如要求用户通过ip地址为192.168.1.123那个代理来访问本计算节点上的虚拟机,这里的FQDN就得填写为192.168.1.123。

如果你的环境很简单,只有两个节点,一个控制节点,一个计算节点,那么所谓的代理就只能跑在控制节点上,这里的FQDN就是控制节点的ip,而且是外部用户能访问到的ip,一般就是常说的大网ip了,通常为访问provider的ip地址。

 

vnc_enabled true

在计算节点上启用vnc功能,配置为true

 

vncserver_listen 0.0.0.0

vncserver实际监听的地址,这个地址用全零地址,因为要写到libvirt.xml里面,得支持迁移

 

vncserver_proxyclient_address 192.168.0.2

这个地址是给proxy用的,用于proxy连接到本计算节点,用proxy和计算节点之间的内网地址或者计算节点本机的主机名,daisy安装的情况下默认本机主机名。

 

如果配置不正确可以使用如下命令修正配置:

控制节点使用:

openstack-config --set /etc/nova/nova.conf DEFAULT novncproxy_host 0.0.0.0

openstack-config --set /etc/nova/nova.conf DEFAULT novncproxy_port 6080

如果控制节点修改过配置,配置完毕重启如下服务:

systemctl restart openstack-nova-novncproxy

systemctl restart openstack-nova-scheduler

systemctl restart openstack-nova-conductor

 

计算节点使用:

openstack-config --set /etc/nova/nova.conf DEFAULT novncproxy_base_url http://FQDN:6080/vnc_auto.html

openstack-config --set /etc/nova/nova.conf DEFAULT vnc_enabled true

openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_listen 0.0.0.0

openstack-config --set /etc/nova/nova.conf DEFAULT vncserver_proxyclient_address 192.168.0.2

如果计算节点修改过配置,配置完毕重启如下服务:

systemctl restart openstack-nova-compute

 

配置修正后观察虚拟机控制台是否正常。

 

3:浏览器

不能使用IE浏览器,请使用Chrome或者Firefox浏览器,其他浏览器不清楚。

 

使用正确的浏览器观察虚拟机控制台是否正常。

 

4:iptables服务

大部分情况,VNC控制台无法访问虚拟机都是因为iptables服务导致的,可以尝试禁用iptables服务。

需要在所有物理节点输入如下命令:

systemctl disable iptables

systemctl stop iptables

iptables  -F

 

关闭iptables后观察虚拟机控制台是否正常。

 

5:provider故障导致控制台不正常

尝试重启provider

ssh到控制节点,找到provider运行的控制节点

docker-manage ps

如下显示provider的容器

技术图片 

docker-manage restart 容器名

本例为:docker-manage restart provider

 

provider容器重启后,等待3分钟,再次观察虚拟机控制台是否正常。

 

6:浏览器缓存

清空浏览器缓存后再尝试一下:

Chrome浏览器:设置--显示高级设置--清除浏览器数据

技术图片 

清除全部浏览器数据

技术图片 

 

 

Firefox浏览器:工具--选项--隐私--历史记录--清空近期历史记录--全部--立即清除

技术图片 

 

清空浏览器缓存后再次观察虚拟机控制台是否正常。

 

 

7:更换PC

如果以上方法都无效,更换一台PC客户端再次尝试使用Chrome浏览器或者Firefox浏览器打开控制台。

 

8:联系开发查找原因。

 

 

备注:最新版本provider,登陆虚拟机需要输入密码,这个密码就是TECS上看到的虚拟机的名称,例如下面就是lzg_test(部分版本做过安全加固,密码是ossdbg1,后续版本还是会统一为虚拟机名称的)

3.17.15版本也是一个特例,这个地方的密码更换成了虚拟机UUID前8位

技术图片 

 

以上是关于VNC控制台无法访问虚拟机问题指导手册的主要内容,如果未能解决你的问题,请参考以下文章

虚拟机主机互相 能ping但是主机无法访问虚拟机网站

vnc远程连接虚拟机的问题

Xen搭建虚拟机实现VNC访问

如何使用vnc-view查看kvm的虚拟机

虚拟机上的Tomcat无法访问

虚拟机无法访问物理机里的网站!