OpenStack VNC FAQ
背景:
在essex版本的vnc安装过程中,问题其实很多,从OpenStack中国社区综合群的交流反馈可以知道这个一个共性的问题,这主要是文档滞后原因造成的。今天(April,17th)来总结一下。主要来自群内讨论总结,和OpenStack的文档的FAQ,现在把链接一并给出,http://nova.openstack.org/runnova/vncconsole.html 。下面还是分条以QA的形式给出。同时给出了本人的处理过程,以期找到解决办法。
Q:Diablo版后发生了什么变化?
A:先前,vnc需要做不同的配置来分别支持libvirt和xen。现在提供统一的多虚拟机的支持。为了支持这个改变,配置选项也增多了和变化了。现在需使用一个新的服务nova-consoleauth。如果您采取从Diablo版本升级到Essex版本,你必须考虑这种变化。
Q:Diablo版本的nova-vncproxy发生了什么变化?
A:nova-vncproxy分支从nova代码分支中移除掉了。Essex版本的nova-novncproxy也是类似的,从外部代码项目提供(这就是为什么在github.com/openstack存在nova和noVNC项目)。
Q:为什么nova-vncproxy不再作为nova的一部分?
A:在Diableo版本中,nova中封装着websocket proxy(nova-vncproxy),但是浏览性能很差。这个nova-vncproxy和外部项目noVNC独立开来,所以项目独立出来两个项目。随着 websocket技术的突飞发展,和websocket proxy 对javascript 和html部件的依赖,因此决定保留这部分代码作为一个单独的项目。
Q:nova-proxy和nova-xvpvncproxy的区别?
A:伴随这个nova封装的nova-xvproxy是一种新的支持java客户端的代理;nova-novncproxy使用noVNC提供通过web浏览器的vnc支持。
Q:我想在horizion中使用VNC功能,需要些什么服务?
A:需要nova-novncproxy,nova-concoleauth,和对compute节点的正确配置。
Q:当我在horizon中使用"nova get-vnc-console"或者点击vnc选项卡,卡住了,怎么回事?
A:确保运行nova-consoleauth(nova-novncproxy附加的)。这些代理依赖于nova-conoleauth验证令牌,和倒计时截至时间回应。
Q:我的VNC 代理在All-In-One test上表现良好,但是在多个主机上不能工作,为什么?
A:默认的flag值是All-In-One的配置,当你构建集群时,必须在compute节点上修改。
例如,两个compute节点。
PROXYSERVER (public_ip=172.24.1.1, management_ip=192.168.1.1)
COMPUTESERVER (management_ip=192.168.1.2)
你的compute节点配置文件必须有下列参数:
# These flags help construct a connection data structure
vncserver_proxyclient_address=192.168.1.2
novncproxy_base_url=http://172.24.1.1:6080/vnc_auto.html
xvpvncproxy_base_url=http://172.24.1.1:6081/console
# This is the address where the underlying vncserver (not the proxy)
# will listen for connections.
vncserver_listen=192.168.1.2
注意:novncproxy_base_url和xvpvncproxy_base_url使用公共IP,这俩IP是要返回到用户端的,一般不提供给私有网络访问。你的PROXYSERVER必须能够访问vncserver_proxyclient_address,因为这个ip地址是为vnc连接提供代理的IP。可以参考“Important nova-compute Options”获得更多信息。
Q:我的noVNC不能支持常用的web浏览器。为什么?
A:确保你安装了支持新版本的WebSocket协议(HyBi-07+)的python-numpy,同时,如果使用diablo的nova-vncproxy,注意这个协议也没有提供。