首页 > 代码库 > OpenStack云桌面系列【2】—Openstack和Spice
OpenStack云桌面系列【2】—Openstack和Spice
OpenStack和VNC
Openstack默认安装的访问控制台基于VNC的,我们从Horizon进入主机实例的控制台,就是noVNC,我在之前的一篇文章里专门对noVNC也做过测试(http://blog.csdn.net/chao_beyond/article/details/24922397)。这里不讨论noVNC的原理,主要罗列下我在使用OpenStack过程当中,关于VNC的几点记录:
1, 通过nova get-vnc-console <server id> novnc命令,可以获取相应云主机实例的url,然后复制到浏览器直接打开。
2, 除了noVNC的访问类型,默认还有xvpVNC访问类型,可以通过普通客户端来访问控制台。在github上有用java写的xvpvncviewer,代码还是比较好读,运行起来也简单,后期也计划对xvpvncviewer做更进一步的二次开发。获取xvpVNC访问的url同上面的命令,只需要将novnc改成xvpvnc。个人更喜欢xvpvnc。
3, Openstack的云主机实例,默认是从5900端口开始的,对于少量测试的主机实例来说,可以推测出vnc地址和端口,这样一来,任何VNC Client都可以用来连接。
4,OpenStack有获取访问控制台url 的api,可以在代码当中调用,地址。
Spice和VNC
刚开始是在VNC上折腾,后面将windows镜像放在Openstack,发现VNC很多问题,比如出现两个鼠标光标、屏幕无法自适应等,桌面系统的用户体验很糟糕。考虑在VNC上进行修改意义不大,并且参考了网上关于Spice和VNC的比较,最后放弃VNC选择了Spice。下面主要讲OpenStack和Spice的融合。
OpenStack和Spice-HTML5
Openstack是支持Spice,用devstack安装Openstack,只需要在localrc文件里面注释掉vnc的配置项,加入以下内容即可:
enable_service n-spice
disable_servicen-novnc
disable_service n-xvnc
但是,需要注意以下几点:
1, 目前只在Centos和Fedora上测试成功,Ubuntu不行。Ubuntu系统目前还没有Spice的安装包,手动安装也没有成功,听说未来Ubuntu会支持Spice。
2, 通过以上配置,在Openstack节点安装了Spice-Server,Spice-Protocol和Spice-HTML5,只能通过网页访问实例主机控制台(Spice-HTML5和noVNC类似)。
3, 如果Spice-HTMl5未自动安装,需要手动安装,RPM包地址,还需要将Spice-HTMl5的目录文件拷到/opt/stack下面。
OpenStack和Spice-http
关于Spice-http的设想源于xvpVNC,因为通过网页访问控制台(系统桌面)还是有很大的局限性,当初希望Openstack也有Vmware Horizon Client类似客户端。后来初步的设想是仿照VNC在OpenStack访问原理,在Openstack当中加入类似xvpVNC的支持模块,支持Spice Client。
(未完待续,扩展或参考内容文中超链接)
OpenStack云桌面系列【2】—Openstack和Spice