1、CN 431258TPISSN 1007130X计算机工程与科学Computer Engineering 8Science第35卷第12期2013年12月V0135No12,Dec201 3文章编号:1007130X(2013)12-002006基于SPICE协议的桌面虚拟化技术研究与改进方案徐 浩,兰雨晴(北京航空航天大学计算机学院,北京1001 91)摘 要:随着云计算的不断发展,虚拟桌面解决方案VDl日益成熟,桌面虚拟化成为典型的云计算应用。虚拟桌面技术能够有效地解决传统个人计算机使用过程中存在的诸多问题,降低企业的运维成本,受到业界的广泛关注。SPICE协议作为开源的虚拟桌面传输协议具
2、有其独特的技术架构和应用特性,通过SPICE协议能够在服务器和远程用户终端上部署虚拟桌面,并提供性能比较好的用户体验QoE。但是,SPICE协议本身目前还存在许多不足之处,不能适用于带宽较低的网络环境。在讨论了虚拟桌面传输协议的原理以及影响虚拟桌面性能的因素的基础上,详细分析了SPICE协议的架构以及核心技术,指出目前SPICE协议的不足,并提出了保证QoE情况下的改进方案,对于当前桌面虚拟化技术的发展将起到一定的指导作用。关键词:VDI;桌面虚拟化;SPICE;QoE;改进方案中图分类号:TP3115 文献标志码:Adoi:103969jissn1007130X201312004Resear
3、ch on desktop virtualization technology based onSPICE protocol and its improvement solutionsXU Hao,LAN Yuqing(School of Computer Science,Beihang University,Beijing 100191,China)Abstract:With the continuous development of cloud computing,the virtual desktop solution becomes increasingly mature and th
4、e desktop virtualization becomes a typical cloud computing applicationVirtual desktop technology can effectively solve those problems when using traditional personal computers and also reduce maintenance costs,which draws industriesattentionsAs an open source desktop delivery protocol,SPICE has its
5、own unique architecture and characteristicsUsing SPICE protocol,virtual desktops can be deployed between servers and remote terminal clients with good quality of user experiencesHowever,SPICE protocol has its own drawbacks,and it is not suitable for lowbandwidth networksVirtual desktop technology is
6、 introduced and the theories of virtual desktop delivery protocols aswell as factors that affect virtual desktop performances are analyzedBased on the analysis,the architecture of SPICE virtual desktop solution and its core technology are further analyzedFinally the drawbacks of SPICE protocol are p
7、ointed out and some improvements methods without affecting QoE are proposed,which will play 3 guide role for the development of virtual desktop technologyKey words:VDI;desktop virtualization;SPICE;QoE;improvement solution* 收稿日期:2013-0811;修回日期:201310-20基金项目:国家自然科学基金重点项目(61 232009)通讯地址:loOl 9l北京市海淀区学院
8、路37号北京航空航天大学计算机学院AddressSchool of Computer ScienceBeihang University,37 Xueyuan RdHaidian Dist rictBeijing 1001 91PRChina万方数据徐浩等:基于SPICE协议的桌面虚拟化技术研究与改进方案 2ll 引言随着计算机技术的不断发展,企业中计算机系统的应用面临着多方面的困难,比如,计算机系统更新换代快,需要维护大量复杂的桌面设备。传统的PC桌面管理模式目前面临着数据安全、管理成本、设备功耗等诸多方面的挑战。桌面虚拟化基础架构VDI(Virtual Desktop 1nfrastruc
9、ture)通过虚拟化技术将用户桌面保存在数据中心,终端用户通过虚拟桌面传输协议访问桌面系统。VDI架构是当前桌面云解决方案中主流的架构与部署方式。桌面虚拟化是一种基于中心服务器的计算模型,建立在服务器虚拟化的基础之上,所有的桌面虚拟机在数据中心进行托管并统一管理,同时用户能够获得完整的PC使用体验,可以根据自己的需要使用虚拟桌面服务。系统管理员只需要维护部署在中心服务器上的系统即可,不需要更新升级客户机上的系统。桌面虚拟化与传统的远程桌面的关键不同之处在于,远程桌面技术是接入到一个真正安装在物理机上的操作系统,如果要大面积作为企业应用技术,不仅需要一个个PC运行操作系统,还需要投入相应的很多终
10、端,所以远程桌面仅作为远程控制和远程访问的一种方式。采用桌面虚拟化极大地降低了整体IT的采购成本和运维成本,提高了系统的安全性和硬件系统的利用率。虚拟桌面传输协议是VDI解决方案的核心。其最终目的是为用户提供接近传统PC操作系统的桌面使用体验。当前主流的虚拟桌面技术厂商已经确定了各自主打的桌面传输协议,主要包括Microsoft的RDP、Citrix的1CAHDX、Red Hat的SPICE、VMware的PCoIP等。不同的协议在应用效果、用户体验方面各有特色。桌面传输协议的性能是影响VDI实施的重要因素。2桌面传输协议分析21桌面传输协议原理桌面传输协议是一组用来在桌面服务器和用户终端之间
11、进行通信的协议。主要完成服务器到用户终端的图形、图像、音频的传输以及用户终端到服务器输入信息的传输,包括鼠标、键盘、外设等输入信息,如图1所示。桌面传输协议负责把虚拟桌面显示的内容从服务端通过网络传递到远程用户终端。数据的传桌面传输协议Figure 1 Theory of virtual desktop delivery protocol图1 桌面传输协议原理输过程需要用到TCPIP网络中的传输层协议,可以使用TCP协议或UDP协议进行传输。目前的桌面传输协议大多使用TCP协议,也有协议使用UDP协议来传输视频流数据,如PCoIP协议。使用TCP协议可以保证数据的完整性,不会有数据丢失,但是T
12、CP协议会产生大量的ACK确认报文,而且如果每一个用户事件都封装在一个TCPIP报文中,会导致大量的分组开销。例如一个键盘事件只需要8 bytes即可TCP头部需要32 bytes,IP头部需要20 bytes,分组开销高达87。UDP协议适合用来传输对丢失不敏感的数据。因此,适当地结合TCP和UDP协议能够提高虚拟桌面的性能。由于服务端和用户终端之间有大量的数据要通过网络传输因此桌面传输协议要能够高效地进行数据压缩。数据压缩包括虚拟桌面显示的图形、图像、视频、音频数据,以及从终端接收的用户输入数据。良好的压缩算法能有效地减少数据传输量,降低对带宽的要求。目前的桌面传输协议一般都会采用多种压缩
13、算法,针对不同的数据类型采用不同的压缩算法,在降低数据传输量的同时最大限度地保证数据完整性。各传输协议都提供了对虚拟多通道技术的支持,通过在一个物理链路上虚拟出多条逻辑通路,从而提供对不同设备的支持。虚拟通道技术具有良好的扩展性如果添加新的外围设备,只需要添加一条新的虚拟通道就可以完成对新设备的支持。每一条虚拟通道可以定义不同的优先级,根据不同的优先级来保证QoE。22影响传输协议性能的因素221 图形数据处理方式在桌面虚拟化解决方案中,图形数据的处理和传输是决定用户体验的关键因素。桌面服务器需要传输大量的数据到用户终端,因此需要较大的带万方数据22 Computer Engineering&
14、Science计算机工程与科学2013,35(12)宽,尤其是在播放视频时,屏幕刷新的频率很高。目前的桌面传输协议都采用了各种压缩技术,但是所能减少的数据量很有限。另一方面,图形处理本身也将消耗大量的计算资源。如果多个桌面同时在服务器端进行图形渲染操作,服务器将会承载非常大的负担。传输协议对图形数据的处理主要有两种方式:基于位图数据的传输和基于矢量数据的传输。RDP协议和PColP协议采用了基于位图的处理方式,在服务器端对图形数据进行渲染,将生成的位图数据进行压缩编码,最终传输到客户端的是可以直接显示的位图数据。ICA协议采用的是基于矢量数据的处理方式,将图形数据分为多种格式,包括位图数据、文
15、字、图形命令等,传输到用户终端后再进行渲染显示。SPICE协议同时采用了以上两种图形处理方式,并能够根据终端的处理能力自动选择一种方式。图像的显示更新机制包括更新时机(Timingof Display Updates)及刷新模式o。更新时机有客户端拉动(Clientpull)和服务器推动(Serverpush)两种;每种技术又可采用两种刷新模式,即懒惰更新(Lazy Update)和急切更新(Eager Update)。客户端拉动是一种由客户端驱动的显示更新技术,由客户端决定屏幕更新的时机。服务器并不是将每次更新都发送给客户端,只有收到来自客户端的请求时,才将最近的显示更新发送出去。服务器推动
16、是由服务器驱动的显示更新技术,由服务器决定屏幕更新的时机,它需要根据刷新模式来确定何时发送屏幕更新给客户端。急切模式是当服务器上的应用程序产生绘图命令时,用户终端立即将命令转换为基本的显示编码原语并把显示刷新数据发送到客户端,它使服务器能跟上应用程序的翻译命令。懒惰刷新模式是将若干翻译命令首先缓冲,然后在需要时懒惰地发送合并的显示刷新到客户端。对于实时视频显示,懒惰显示刷新模式导致许多视频帧在服务器端被合并和覆盖,使发送刷新的频率降低。它虽然能减少数据量的传输,但影响了系统的视频性能。222传输层协议完整的桌面虚拟化解决方案需要通过网络传输大量的数据,包括通信控制命令、用户操作数据、图形图像数
17、据、音频视频数据以及各种外围设备数据。目前的虚拟桌面传输协议采用的主要是TCP协议和UDP协议。TCP协议采用滑动窗口和超时重传技术确保数据的安全性和完整性,而UDP协议头部较短不需要确认机制,比TCP协议的传输效率高。TCP协议主要用来传输对安全性要求较高的数据,比如打印机数据、用户操作数据等,对于另外一些对完全性要求不高的数据可以采用UDP协议,如对于丢失的视频数据可以进行跳帧处理,不需要重传已经跳过的视频帧。PColP协议底层采用TCP协议和UDP协议,TCP协议主要是用于会话的建立和控制,而UDP则用于优化传输多媒体内容,能够降低对带宽的要求,优化交互体验2|。223 压缩和缓存技术在
18、当前的网络环境下,压缩编码技术的好坏直接影响了虚拟桌面的使用体验。图像的压缩方式直接决定了从服务器传输到用户终端的数据量以及编码解码的效率。ICA协议和PColP协议都将压缩技术作为协议的核心技术,并形成了自己独有的方案。ICA协议采用分层的方式,对数据进行层层压缩。首先,在协议层分析数据内容提取相同的数据作为模板进行压缩;其次,在传输层对二进制数据进行模板匹配压缩;最后,在TCP层根据TCP协议滑动窗口机制并结合自身协议特点进行优化压缩j。PColP协议采用的则是分类处理方法,根据图像的特征进行分类,针对不同的类型采用不同的压缩算法,以获得最优的压缩效果。用户终端缓存保存经常使用的显示元素,
19、如字体和位图等,如果当前需要显示的元素在缓存中就可以直接从缓存中获得,而不必重复向服务器端发送请求。在高带宽环境下,网络不是瓶颈,此时缓存会造成一些附加的计算,影响平台性能;但是,在低带宽环境下,性能与数据传输量有直接关系,缓存和良好的压缩算法有利于提高虚拟桌面的性能。23桌面传输协议比较当前主流的桌面传输协议包括PColP、RDP、SPICE、ICA等协议,表1对各主流传输协议的特性作了分析比较j。Table 1 Comparison of virtual desktop transfer protocols表1 主流虚拟桌面传输协议比较万方数据徐 浩等:基于SPICE协议的桌面虚拟化技术研
20、究与改进方案 23传输带宽要求的高低直接影响了虚拟桌面访问的流畅性。PColP协议采用分层渐进的方式在用户端显示桌面内容,首先传输一个完整但模糊的图像,然后在此基础上逐步精化,最终显示清晰的桌面。ICA协议采用处理性能和压缩比都很高的压缩算法,降低了对网络带宽的需求。针对视频播放,ICA通过压缩协议缩减数据规模,但是这样会造成画面质量的降低而SPICE则能够自适应地感知用户端设备的处理能力,进而将图像渲染操作放在用户端进行。3 SPICE协议研究分析31 SPICE协议特性SPICE协议是专门为桌面虚拟化解决方案设计的传输协议,采用了独特的三层设计架构:(1)QXI。驱动:部署在服务器侧、提供
21、虚拟桌面服务的虚拟机中,用于接收操作系统和应用程序的图形命令,并将其转换为KVM的QXI。图形设备命令。(2)SPICE客户端:部署在用户终端上的软件,负责显示虚拟桌面同时接收终端外设的输入。(3)QXL设备:部署在KVM服务器虚拟化的Hypervisor中,用于处理各虚拟机发来的图形图像操作。SPICE协议最大的特点是其架构中增加的位于Hypervisor中的QxI。设备,本质上是KVM虚拟化平台中通过软件实现的PCI显示设备,利用循环队列等数据结构供虚拟化平台上的多个虚拟机共享实现了设备的虚拟化。但是,这种架构使得SPICE协议紧密地依赖于服务器虚拟化软硬件基础设施,SPICE必须与KVM
22、虚拟化环境绑定。传统的远程桌面传输协议工作在虚拟机Guest OS中,而SPICE协议本身运行在虚拟机服务器中,可以直接使用服务器的硬件资源。SPICE协议定义了一组协议消息,用于同用户终端进行通信,这些消息不依赖于任何专用的传输层协议,能够灵活选择加密算法。SPICE连接会话包括多个虚拟通道,可以在运行时动态添加和删除通道。每个通道对应一个远程设备。SPICE协议能够自动判断和调整图像处理的位置,如果用户终端能够处理复杂的图像操作,就尽可能地传输图像处理命令而不是渲染后的图像内容,这样可以减少网络上传输的数据量。32 SPICE协议架构分析SPICE架构包括客户端、SPICE服务端和相应的Q
23、XL设备、QXI。驱动等,如图2所示。客户端运行在用户终端设备上,为用户提供桌面环境。SPICE服务端以动态连接库的形式与KVM虚拟机整合,通过SPICE协议与客户端进行通信。QEMUGUeSl0SVdagent QXL driver Standard guest driversVmPQ删XL懈ey。boa。rdl J揣|(rIir,lVirtionserial SPICE serwrmajn D。i。s,p。l。a,y inruts l,R。e,c。o。r。d。I l(channel,SPlCE clientFigure 2 Architecture of SPICE protocol图2
24、SPICE协议架构应用SPICE协议时,需要在KVM虚拟化环境的QEMU中安装libspice库,这样KVM才能成为虚拟桌面服务器。提供虚拟桌面服务的虚拟机(即图中的Quest OS)上的应用程序向操作系统的图形引擎(GDIX Engine)发出图形处理操作,图形引擎把绘图命令发送给QXL驱动,QXL驱动将操作系统的绘图命令转换为QXI。命令后推送到QXL设备的图形命令循环队列中,libspice库从中获取绘图命令,添加到图形命令树上。图形命令树主要负责对QXL命令进行组织和优化,同时负责对视频流进行侦测。经过图形命令树优化的QXL命令推送到发送队列中,由libspice库维护,并发送到SPI
25、CE客户端更新显示内容。SPICE协议支持多通道设置,利用不同的通道传输不同的内容。每个通道中的内容都可以通过相应的图形命令数据流或代理命令数据流进行传输。同时能够独立进行加密,支持不同级别的QoE。33 SPICE协议核心技术331 自适应图形处理在虚拟桌面解决方案中,图形的渲染和处理都将消耗大量的计算资源,因此图形处理是虚拟桌面解决方案实现的关键部分。SPICE架构同时提供了软件处理方法和硬件处理方法。SPICE客户端采用基于Cairo图形库的软件处理方式,使用CPU计算资源,提供2D图形数据的渲染处理能力。同时也提供了基于GPU的硬件处理方法,在I。inux万方数据24 Computer
26、 EngineeringScience计算机工程与科学201335(12)平台使用OpenGI。库,在Windows平台使用GDI接口。采用基于GPU的处理方式可以提供高性能的图形渲染处理,尤其是在很消耗资源的多媒体应用中;同时也可以降低用户终端的CPU利用率,使得用户终端有能力来处理更多的应用。为了提供对低性能终端设备的支持,SPICE框架实现了自适应的图形处理模块。如果用户终端处理能力比较差,图形处理操作则尽可能转移到服务端执行;如果用户终端有足够的处理能力,图形命令直接发送到客户端,由客户端进行处理,降低服务器的负载。同时也降低带宽需求。332 分类压缩技术SPICE提供了三种无损图像压
27、缩算法,分别是Quic、LZ和Glz压缩算法,其中Quic和G1z是SPICE专有的图像压缩算法三种算法可以在Server启动时设定也可以在运行过程中动态切换。Quic和LZ算法都是本地压缩算法分别独立地编码每一张图像。Quie算法基于SFALIC算法,是一种预测编码算法,首先对像素数据进行统计分析,然后根据不同的权值进行压缩编码。Glz在I。Z算法的基础上使用一个全局的历史字典机制。利用图像之间的重复模式减少传输的数据量,同时针对像素数据做了优化处理,使用一个宽窗体来合并图像数据流,将图像数据中相同的部分进行压缩和编码。SPICE能够根据图像的特性,启发式地在LZGlz和Quic之间选择合适
28、的压缩算法。针对视频流,SPICE采用了有损的压缩方式,SPICE服务端通过图形区域的刷新频率来侦测视频区域,采用MJPEG压缩算法。在识别出视频流后自动切换到视频压缩算法,在很大程度上提高了SPICE在广域网中的性能。4 SPICE协议改进41 SPICE协议的不足SPICE协议目前还存在着很多不足。因此使用SPICE协议的虚拟桌面解决方案并不能提供最优的桌面使用体验。SPICE协议的不足主要有以下几点:(1)在WAN环境下性能较差。虚拟桌面解决方案的目的是可以在任何时间、任何地点进行桌面操作,但SPICE协议在WAN环境下的用户体验较差,尤其是在播放视频时。SPICE协议播放720 P的视
29、频,每秒需要传输7 Mb左右的数据量。在WAN网络环境中,很难满足这么高的带宽需求7I。(2)服务端读取指令延迟。SPICE服务端会从命令队列中获取相应的图形操作命令,然后进行相应的处理。如果命令队列为空的话,SPICE服务端会调用epollwait,并设置超时为10 ms。如果有大量的图形命令请求,10 ms的超时设置会造成读取命令延迟。(3)视频处理能力不足。SPICE服务端在检测到视频后会使用MJPEG算法进行视频压缩。SPICE设置固定的视频播放帧数fps一30,jpeg压缩率也是固定不变的,没有考虑到网络环境对视频的影响。如果网络环境较差的话,视频播放体验会受到很大的影响。(4)客户
30、端启动缓慢。SPICE的客户端在启动时需要测试网络状况,导致客户端启动缓慢。如果预先知道网络环境的话,可以将当前的网络状况保存在配置文件中,客户端启动时只需读取配置即可,不需要自行检测网络状况,加快启动速度。(5)客户端ACK延迟。SPICE协议使用TCP协议进行数据的传输,SPICE客户端只有在接收到滑动窗口里最后一个消息时才将ACK信息添加到发送队列中,因此只有在虚拟通道接收完消息后ACK确认信息才会发送出去。如果接收队列里有很多小的消息报文,会导致显示通道延迟。42 SPICE协议的改进方案针对SPICE存在的性能问题,本文提出了部分优化方案。(1)压缩算法改进。SPICE桌面传输协议提
31、供了三种图像压缩算法和一种视频压缩算法,可以在运行时动态地切换,如图3所示。卵K明略端压三) SPICE客户端蜩一赫一 一解码li耐I显示|IJFigure 3 ()riginal compression algorithms of SPICE图3 SPICE原始压缩算法SPICE会启发式地检测当前桌面内容的图像类型,针对不同的图像选用不同的压缩算法,目的是最大限度地在用户终端上还原桌面环境。对于真实图像SPICE使用Quic无损压缩算法,对于合万方数据徐 浩等:基于SPICE协议的桌面虚拟化技术研究与改进方案 25成图像采用LZGlz算法会更好。一旦SPICE检测到当前的某个区域正在播放视频
32、,就会对该区域使用视频压缩算法进行压缩。然而频繁地进行压缩算法的切换同样会导致桌面抖动,导致桌面运行不流畅。拟采用JPEG2000压缩算法一“,JPEG2000有很多良好的特性,有较高的压缩比,支持有损压缩和无损压缩,能够实现图像的渐进传输,MJPEG2000能够对视频进行压缩,图像和视频压缩算法之间可以平滑地进行切换。这样,可以减少不同压缩算法切换导致的图像抖动问题。同时,SPICE协议的实现过程中没有考虑网络环境的变化,其视频压缩比是一个固定值,对于低带宽的网络环境不能提供流畅的视频,而在网络环境较好时又不能充分利用带宽资源。因此,视频压缩比应该是一个动态值,自动适应网络状态。因此,可以在
33、SPICE的基础上添加一条通道,用来探测网络状态,主要是收集RTT以及丢包率等信息,然后根据这些反馈的信息动态调整压缩比。由于该条通道只是传输一些探测数据,不会占用过多的网络带宽,因此对SPICE的性能不会产生影响,如图4所示。SPICE一一客户端-t解码lI显示I-I接收方Iigure 4 Improved SPICE protocol图4改进后的SPICE协议(2)优化视频数据传输方式。针对视频流的处理,借鉴流媒体的思想,拟采用直接把视频数据以流媒体的方式发送到终端设备的方法,避免服务端的解码操作,由客户端直接进行解码播放。具体实现上,可在虚拟机系统中添加一个模块,在检测到视频播放时停止本
34、地渲染操作,直接通过一个专用虚拟通道将视频数据传送到用户终端,由终端解码视频数据并进行播放。客户端需要实现一个视频解码模块来处理视频数据。(3)图像渲染性能优化。SPICE协议会处理一些不必要的渲染命令,影响CPU的处理性能和网络带宽。当一个渲染命令执行完成后,就会从当前的命令树移除,并被新的图形更新命令覆盖,但已经渲染的图形命令仍然会发送出去,从而消耗不必要的带宽资源。如果运行一些注重细节的图形应用图形渲染操作将耗费较长时间,同时会产生大量的更新命令,每一个改变都会造成图像的更新。针对此种类型的应用,可以对每一个位图区域进行缓存。如果某个区域发生变化,只更新该区域,剩余的区域直接从缓存中读取
35、,合成后再进行显示。5 结束语本文首先介绍了桌面传输协议以及影响虚拟桌面性能的因素,然后详细分析了SPICE协议的架构及其核心技术,在此基础上指出SPICE协议的不足并提出了一些改进方案。参考文献:徐浩(1988一),男,河北满城人,硕士生,研究方向为云计算。Email:xuhaocsebuaaeducnXU Hao,horn in 1988MS candidatehis research interest includes cloud compu一=1幻胡钉阳胡力明明万方数据基于SPICE协议的桌面虚拟化技术研究与改进方案作者: 徐浩, 兰雨晴, XU Hao, LAN Yu-qing作者单位: 北京航空航天大学计算机学院,北京,100191刊名: 计算机工程与科学英文刊名: Computer Engineering and Science年,卷(期): 2013,35(12)本文链接:http:/