今天我遇到一个问题是基于openstack平台VM无法打开novnc控制台,并且使用nova get-vnc-console $VM_UUID novnc获取URL,把URL粘贴到浏览器地址依然无法访问。

  一开始我以为是Win7系统中的Firefox异常,然后重新安装了火狐。因为openstack 平台里面有bootstrap技术,火狐浏览器对openstack的平台支持比较好。

  可是后来使用nova get-vnc-console $VM_UUID novnc发现依然无法访问。我觉得不是我浏览器的问题。

  于是从openstack的系统中查起来。我想到:查看vnc proxy服务的状况,看openstack-nova-novncproxy服务运行情况。

  使用命令:/etc/init.d/openstack-nova-novncproxy status。

  发现:openstack-nova-novncproxy进程已经dead,但是PID 文件仍然存在。

  看到报错,我更加确认是openstack-nova-novncproxy的服务问题,于是重启服务:

  /etc/init.d/openstack-nova-novncproxy restart,重启服务依然报错。

  这是由于系统还有novnc 进程在运行,导致重启openstack-nova-novncproxy服务失败。

  我终于要发大招了:ps -ef|grep novnc。然后逐一kill掉正在运行的novnc进程。然后再重启openstack-nova-novncproxy进程:

  /etc/init.d/openstack-nova-novncproxy restart. 

  终于能启动成功了,接着继续进行验证:

  nova get-vnc-console $VM_UUID novnc 使用获取的URL访问,发现可以正常查看到VM的NOVNC控制台。

  我终于解决了问题,我好高兴啊,嘻嘻!