首页 > 代码库 > 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