openstack VDI测试报告.docx
《openstack VDI测试报告.docx》由会员分享,可在线阅读,更多相关《openstack VDI测试报告.docx(13页珍藏版)》请在冰点文库上搜索。
openstackVDI测试报告
openstackVDI
(V1.0)
北京信息技术股份有限公司
二〇一三年六月
文档信息
文档简称
openstackvdi测试报告
文档编号
文档名称
文件状态
■草稿□正式发布□正在修改
编写人
日期
年月日
校对人
日期
年月日
审核人
日期
年月日
批准人
日期
年月日
变更记录
变更序号
变更原因
变更页码
变更前版本号
变更后版本号
更改人
批准人
生效日期
备注
1
加图
2
修改总结
目录
1.什么是vdi4
2.vdi实现方式5
2.1.vdi实现原理5
2.2.实现协议5
3.spice与vnc的区别7
4.开源spice协议支持的功能8
5.OpenStackVDI测试9
5.1.测试目标10
5.2.测试方案10
5.2.1.拓扑结构10
5.3.测试环境安装配置10
5.3.1.配置nova.conf10
5.3.2.安装spicehtml511
5.3.3.使用openstack启动虚拟机11
5.3.4.启动openstack的spiceProxy11
5.4.VDI测试12
5.4.1.访问页面12
5.4.2.使用spiceclient访问虚拟机12
5.5.测试结论14
6.待解决问题14
1.什么是vdi
VDI,英文全称VirtualDesktopInfrastructure,即虚拟桌面基础架构,正迅速成为一个热门词语。
VDI的概念很简单。
它不是给每个用户都配置一台运行WindowsXP或Vista(后文统称为WindowsXP)的桌面PC,而是通过在数据中心的服务器运行WindowsXP,将你的桌面进行虚拟化。
用户通过来自客户端设备(客户机或是家用PC)的客户计算协议与虚拟桌面进行连接,用户访问他们的桌面就像是访问传统的本地安装桌面一样。
2.vdi实现方式
2.1.vdi实现原理
VDI的实现方式,无非在虚拟机之前加了一层VDIRouter的机制,至于底层协议是什么样的,完全取决于Router怎么写。
Router主要是将用户连接桌面的请求进行拦截,根据一定的规则找到闲置的虚拟桌面,再将用户的私有数据进行还原,最后把双方连接起来,这就是VDI的基本原理。
2.2.实现协议
1.RDP协议
远程桌面协议(RDP,RemoteDesktopProtocol)是一个多通道(multi-channel)的协议,让用户(客户端或称“本地电脑”)连上提供微软终端机服务的电脑(服务器端或称“远程电脑”)。
大部分的Windows都有客户端所需软件。
其他操作系统也有这些客户端软件,例如Linux、FreeBSD、MacOSX。
服务端电脑方面,则听取送到TCP3389端口的数据。
RDP也是windows流行的协议,但是随着目前的趋势来看还是使用spice更加有前途.
2.vnc
VNC(VirtualNetworkComputing)是虚拟网络计算机的缩写。
VNC是一款优秀的远程控制工具软件,由著名的AT&T的欧洲研究实验室开发的。
VNC是在基于UNIX和Linux操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和Windows和MAC中的任何远程控制软件媲美。
在Linux中,VNC包括以下四个命令:
vncserver,vncviewer,vncpasswd,和vncconnect。
大多数情况下我只需要其中的两个命令:
vncserver和vncviewer。
3.spice
spice包括3个组件:
SPICEDriver :
SPICE驱动器存在于每个虚拟桌面内的组件;
SPICEDevice:
SPICE设备存在于红帽企业虚拟化Hypervisor内的组件;
SPICEClient:
SPICE客户端存在于终端设备上的组件,可以是瘦客户机或专用的PC,用于接入每个虚拟桌面。
spice实现架构:
3.spice与vnc的区别
SPICE
VNC
BIOS屏幕显示
能
能
全彩支持
能
能
更改分辨率
能
能
多显示器
多显示器支持(高达4画面)
只有一个屏幕
图像传输
图像和图形传输
图像传输
视频播放支持
GPU加速支持
不能
音频传输
双向语音可以控制
不能
鼠标控制
客户端服务器都可以控制
服务器端控制
USB传输
USB可以通过网络传输
不能
加密
通讯可以使用SSL进行加密
不能
4.开源spice协议支持的功能
当前支持功能:
∙图形界面 -processesandtransmits2Dgraphiccommands
∙视频流 -heuristicallyidentifiesvideostreamsandtransmitsM-JPEGvideostreams
∙图片压缩 -offersverioscompressionalgorithmthatwerebuiltspecificallyforSpice,includingQUIC(basedon SFALIC),LZ,GLZ(history-basedglobaldictionary),andauto(heuristiccompressionchoiceperimage)
∙硬件鼠标-processesandtransmitscursor-specificcommands
∙图像,颜色,鼠标缓存 -managesclientcachestoreducebandwidthrequirements
∙在线切换 -supportsclientswhilemigratingSpiceserverstonewhosts,thusavoidinginterruptions
∙Windows驱动 -WindowsdriversforQXLdisplaydeviceandVDI-port
∙多监视器
∙客户端支持linux和windows -canbeeasilyportedtoadditionalplatforms.
∙立体声音频 -supportsaudioplaybackandcaptures;audiodatastreamisoptionallycompressedusing CELT
∙加密 -usingOpenSSL
∙两种鼠标模式-providesclient(moreuser-friendly)andserver(increasedaccuracyandfullysynchronized)modes
∙音频视频同步 -synchronizesvideostreamswithaudioclocks
∙Spice代理 -runningontheguestandperformstasksfortheclient
∙剪切板共享 -allowscopypastebetweenclientsandthevirtualmachine
未来将支持的新功能:
∙网络隧道 (inprogress)-usingvirtualnetworkinterfacetoenablesharingofnetworkresources.Currentlythefocusisonprintersharingbutisnotlimitedtothat.
∙Off-screensurfaces (inprogress)-supportsoff-screensurfacesasinfrastructureforfutureDirectDraw,videoaccelerationand3Dacceleration.GDIandX11willalsobenefitfromthisfeature.Itwillalsolayfoundationformulti-headsupport
∙共享usb (inprogress)-allowsclientstosharetheirUSBdeviceswithSpiceservers
∙DirectDraw
∙客户端GUI -Enablesuser-friendlyconfiguration
∙屏幕管理 -addsupportforenablingselectionofthescreenusedbytheclient
∙配置文件 -enablespersistentuserandadministrativesettings
∙共享光驱 -shareyourCDwithSpiceserver
∙视频加速
∙3D加速
∙支持Aero
∙Linuxfeaturesparity
∙OSXclient
∙Simultaneousclientsconnection
5.OpenStackVDI测试
openstackgrizzly版本开始支持spice协议,但是在2.1章节说的实现原理中的proxy实现上还有不足的地方,就是没有能够实现.
5.1.测试目标
5.2.测试方案
5.2.1.拓扑结构
图1
5.3.测试环境安装配置
5.3.1.配置nova.conf
在nova.conf中加入spice支持,使得生成的虚拟机能够通过openstack提供的proxy访问到
[spice]
#(StrOpt)locationofspicehtml5consoleproxy,intheform"http:
//$nova-html5proxy_host:
6082/spice_auto.html"
html5proxy_base_url=http:
//172.21.2.111:
6082/spice_auto.html
#(BoolOpt)enablespicerelatedfeatures
enabled=false
#(BoolOpt)enablespiceguestagentsupport
agent_enabled=true
#(StrOpt)keymapforspice
keymap=en-us
#(StrOpt)IPaddressonwhichinstancespiceserversshouldlisten
server_listen=172.21.2.11
#(StrOpt)ManagementIPAddressonwhichinstancespiceserverswilllistenonthecomputehost.
server_proxyclient_address=172.21.2.11
5.3.2.安装spicehtml5
安装spice-html5-0.1.2-2.el6.noarch最新版本:
rpm–ivhspice-html5-0.1.2-2.el6.noarch.rpm
5.3.3.使用openstack启动虚拟机
配置好nova.conf后,openstack启动虚拟机后,以前使用vnc的参数将变成
-spiceport=5900,addr=172.21.2.111
这样虚拟机将监听5900端口,以方便spiceclient连接虚拟机使用.
5.3.4.启动openstack的spiceProxy
openstack的spiceproxy只是简单的实现1对1的远程桌面,并没有2.1章中的其他功能.openstack的spiceproxy相当于提供一个基于web界面访问方式的web服务器,将spicehtml5安装好以后,使用该proxy当做服务器来访问指定host上的虚拟机.
[root@grizzlyinit.d]#serviceopenstack-nova-spicehtml5proxystart
Startingopenstack-nova-spicehtml5proxy:
[OK]
5.4.VDI测试
5.4.1.访问页面
访问http:
//172.21.2.111:
6082/spice_auto.html能够看到当前主机上所有的虚拟机进行选择连接
5.4.2.使用spiceclient访问虚拟机
1.windows下的spiceclient
连接桌面:
输入主机ip和端口号,还有密码
172.21.2.111:
5900密码111111
2.连接后:
连接后就可以远程访问虚拟机,进行安装等操作.
5.5.测试结论
现阶段可以通过远程访问openstack控制节点的spiceproxy,当控制节点寻找到可用的虚拟机,然后返回虚拟机桌面.能够实现视频音频等的远程访问,详细列表见第四章.usb需要另外通过软件实现转发.
但是openstack的spice实现的vdi还不具备虚拟桌面池的概念,就是说根据一定的规则找到闲置的虚拟桌面,再将用户的私有数据进行还原.按照目前的研究来看还是一个集中管理虚拟机的功能.需要研发一个真正功能的proxy的vdi代理服务.
6.待解决问题
1.VDI连接协议的问题需要解决。
目前OpenStack可以支持VNC连接到虚拟机或者RDP连接到虚拟机里面.VNC协议本身无法解决USB透传、声音、打印等问题,RDP虽然支持USB、声音透传,但是对某些USB设备,例如U盾、加密设备等支持的不好,如果虚拟机的网络出现问题,会导致连接中断。
目前用的比较多的协议是CitrixICA、PCoIP、RedHatSpice,目前只有Spice是开源的。
RHEL6里面Spice和Libvirt已经做好整合,但是开源版本的USB透传还需加强.
2.针对桌面的一些特性需要开发。
例如ThinProvisioning、资源池部署、1:
1/1:
N分配、AD域整合、单点登录整合、批量补丁和升级、安全杀毒等。
3.vdi的代理目前完整开源功能还没有,需要我们自己进行开发.