虚拟桌面及其关键技术分析1前言虚拟桌面是典型的云计算应用,它能够在“云”中为用户提供远程的计算机桌面服务。服务提供者在数据中心服务器上运行用户所需的操作系统和应用软件,然后用桌面显示协议将操作系统桌面视图以图像的方式传送到用户端设备上。同时,服务器对用户端的输入进行处理,并随时更新桌面视图的内容。虚拟桌面的应用具有很多优势。例如它能够提供随时随地访问的能力,支持多样化的接入设备选择,降低软硬件的管理和维护成本,强化用户的数据安全等,这使得虚拟桌面具有广阔的应用前景。2主流虚拟桌面解决方案用户对于类似虚拟桌面的体验并不陌生,其前身可以追溯到Microsoft在其操作系统产品中提供的终端服务和远程桌面,但是它们在实际应用中存在着不足。例如之前的终端服务只能够对应用进行操作,而远程桌面则不支持桌面的共享。虚拟化技术的发展使虚拟桌面获得了长足的发展,当前虚拟桌面解决方案主要分为VDI(VirtualDesktopInfrastructure)和SBC(Server-BasedComputing)两大类。基于VDI的虚拟桌面解决方案的原理是在服务器侧为每个用户准备其专用的虚拟机并在其中部署用户所需的操作系统和各种应用,然后通过桌面显示协议将完整的虚拟机桌面交付给远程的用户,因此,这类解决方案的基础是服务器虚拟化。服务器虚拟化主要有完全虚拟化和部分虚拟化两种方法:完全虚拟化能够为虚拟机中的操作系统提供一个与物理硬件完全相同的虚拟硬件环境;部分虚拟化则需要在修改操作系统后再将其部署进虚拟机中。两种方法相比,部分虚拟化通常具有更好的性能,但是它对虚拟机中操作系统的修改增加了开发难度并影响操作系统兼容性,特别是Windows系列操作系统是当前用户使用最为普遍的桌面操作系统,而其闭源特性导致它很难部署在基于部分虚拟化技术的虚拟机中。因此,基于VDI的虚拟桌面解决方案通常采用完全虚拟化技术构建用户专属的虚拟机,并在其上部署桌面版Windows用于提供服务,但也有部分方案对Linux桌面提供支持。基于SBC的虚拟桌面解决方案原理是将应用软件统一安装在远程服务器上,用户通过和服务器建立的会话对服务器桌面及相关应用进行访问和操作,而不同用户之间的会话是彼此隔离的。这类解决方案是在操作系统事件(例如键盘敲击、鼠标点击、视频显示更新等)层和应用软件层之间插入虚拟化层,从而削弱两个层次之间的紧耦合关系,使得应用的运行不再局限于本地操作系统事件的驱使。其实,这种方式在早先的服务器版Windows中已有支持,但是在之前的应用中,用户环境被固定在特定服务器上,导致服务器不能够根据负载情况调整资源配给。另外,之前的应用场景主要是会话型业务,具有局限性,例如不支持双向语音、对视频传输支持较差等,而且服务器和用户端之间的通信具有不安全性。因此,新型的基于SBC的虚拟桌面解决方案主要是在服务器版Windows提供的终端服务能力的基础上对虚拟桌面的功能、性能、用户体验等方面进行改进。基于VDI和基于SBC的虚拟桌面解决方案的比较见表1。从表1的比较可以看出,采用基于VDI的解决方案,用户能够获得一个完整的桌面操作系统环境,与传统的本地计算机的使用体验十分接近。在这类解决方案中,用户虚拟桌面能够实现性能和安全的隔离,并拥有服务器虚拟化技术带来的其他优势,服务质量可以得到保障,但是这类解决方案需要在服务器侧部署服务器虚拟化及其管理软件,对计算和存储资源要求较高,成本较高,因此,基于VDI的虚拟桌面比较适用于对桌面功能需求完善的用户。采用基于SBC的解决方案,应用软件可以像传统方式一样安装和部署到服务器上,然后同时提供给多个用户使用,具有较低的资源需求,但是在性能隔离和安全隔离方面只能够依赖于底层的Windows操作系统。另外,因为这类解决方案在服务器上安装的是服务器版Windows,其界面与用户惯用的桌面版操作系统有所差异,所以为了减少用户在使用时的困扰,当前的解决方案往往只为用户提供应用软件的操作界面而并非完整的操作系统桌面。因此,基于SBC的虚拟桌面更适合对软件需求单一的内部用户使用。3虚拟桌面关键技术分析3.1虚拟化技术基于VDI的虚拟桌面解决方案需要为用户提供专属的虚拟机,并主要提供闭源Windows操作系统的桌面。因此,当前支撑VDI虚拟桌面的虚拟机普遍基于完全虚拟化技术,例如VMware的ESX虚拟机、Microsoft的Hyper-V虚拟机、RedHat集成在Linux内核之中的KVM虚拟机以及Citrix采用完全虚拟化的Xen虚拟机等。总体而言,不同厂商的服务器虚拟化产品在技术本质上逐渐趋于一致,因此单台虚拟机的性能差异并不明显,但是不同的服务器虚拟化管理软件在功能、性能、易用性等方面尚有差距。对于虚拟桌面而言,主要体现在虚拟机的供给和部署方式以及由此产生的相关差异上,这将成为服务器虚拟化技术选择的关键。基于SBC的虚拟桌面解决方案直接利用服务器版Windows的多用户环境,使各用户能够同时在同一服务器上获得属于自己的应用。因为服务器版Windows已经能够较好地提供相关服务,所以这类解决方案的门槛较低。当前,主流厂商中的Citrix和Microsoft发布有相关产品,其核心是对用于传输视图内容的桌面显示协议进行优化,以获得比其他产品更好的用户体验。3.2桌面显示协议桌面显示协议是影响虚拟桌面用户体验的关键,当前主流的显示协议包括PCoIP、RDP、SPICE、ICA等,并被不同的厂商所支持。它们的比较见表2。传输带宽要求的高低直接影响了远程服务访问的流畅性。ICA采用具有极高处理性能和数据压缩比的压缩算法,极大地降低了对网络带宽的需求。图像展示体验反映了虚拟桌面视图的图像数据的组织形式和传输顺序。其中PCoIP采用分层渐进的方式在用户侧显示桌面图像,即首先传送给用户一个完整但是比较模糊的图像,在此基础上逐步精化,相比其他厂商采用的分行扫描等方式,具有更好的视觉体验。双向音频支持需要协议能够同时传输上下行的用户音频数据(例如语音聊天),而当前的PCoIP对于用户侧语音上传的支持尚存缺陷。视频播放是检测传输协议的重要指标之一,因为虚拟桌面视图内容以图片方式进行传输,所以视频播放时的每一帧画面在解码后都将转为图片从而导致数据量的剧增。为了避免网络拥塞,ICA采用压缩协议缩减数据规模但会造成画面质量损失,而SPICE则能够感知用户侧设备的处理能力,自适应地将视频解码工作放在用户侧进行。用户外设支持能够考查显示协议是否具备有效支持服务器侧与各类用户侧外设实现交互的能力,RDP和ICA对外设的支持比较齐备(例如支持串口、并口等设备),而PCoIP和SPICE当前只实现了对USB设备的支持。传输安全性是各个协议都很关注的问题,早期的RDP不支持传输加密,但在新的版本中有了改进。桌面显示协议是各厂商产品竞争的焦点,其中,RDP和ICA拥有较长的研发历史,PCoIP和SPICE相对较新但也日渐成熟,特别是SPICE作为一个开源协议,在社区的推动下发展尤其迅速。3.3用户个性化配置个性化配置是虚拟桌面用户的必然需求。当前的主流厂商产品普遍采用了Microsoft的AD域控机制进行用户的管理和认证,并将用户身份与包含其个人桌面设置需求的描述文件相关联。当用户访问虚拟桌面时,在对其身份进行认证后,即可为其交付具有不同安全级别、不同应用权限的个性化虚拟桌面。在基于SBC的虚拟桌面解决方案中,因为服务器版Windows已经能够做到以应用的粒度设置用户权限,所以其用户描述文件比较简单。在基于VDI的虚拟桌面解决方案中,因为每个用户在虚拟机配置、操作系统映像、用户应用部署等多个层次上具有不同的需求,所以用户描述文件非常复杂而且相关的文件规模也比较庞大(例如用户专属的操作系统映像文件)。当前,各个厂商正在针对如何减少用户数据量进行产品改进,例如VMware的LinkedClone技术能够基于一个主镜像定制出多个虚拟桌面从而减少存储空间。4结束语虚拟桌面技术已经比较成熟,不同厂商的产品各具特色:VMware具有先进的底层服务器虚拟化架构;Microsoft拥有在操作系统领域的主导地位;RedHat的开源策略使得其产品具有较低的成本;Citrix则不断地追求用户体验的提升。当前尚没有哪家厂商的产品能够适用于所有应用场景,因此在应用和部署虚拟桌面解决方案时,必须结合实际需求选择合适的技术和产品,特别是对于一些特殊的用户外设,通常需要定制解决方案。虚拟桌面未来的发展将主要从改善用户体验入手,其最终目标是提供接近甚至超出使用传统本地计算机桌面所能获得的用户体验。对此,除了虚拟桌面解决方案厂商需要对虚拟桌面关键技术进行优化和改良外,运营商也能够发挥更大的作用,主要体现在:运营商的数据中心拥有海量的云基础设施,能够高效地提供虚拟桌面部署所需的软硬件资源,按需满足虚拟桌面用户的动态需求;运营商拥有分布广泛的有线和无线宽带网络,能够提供充足的带宽和优良的网络质量,有助于改善用户体验;运营商能够主导终端设备(例如手机、平板电脑、瘦客户机等)的研发,使之针对虚拟桌面进行专门的优化,实现用户的随时随地无缝接入虚拟桌面服务;运营商拥有强大的产品设计和市场营销能力以及丰富的运营管理经验,能够为用户提供精细化、多样化的虚拟桌面业务并提供良好的服务质量和合理的计费手段。因此,虚拟桌面的实施与推广必将成为运营商开展云计算实践的重要契机。