浅谈桌面虚拟化(二)(1)
(接上篇)
桌面虚拟化的关键技术元素
说到“桌面“,很多人脑海中第一印象就是PC(或台式电脑),这多半来源于对台式机、笔记本电脑、上网本、掌上电脑等不同形态硬件的划分。但在这里,桌面是指”软“的东西,即OS层及其上承载的应用。对于终端计算而言,硬件形态可以各异,但OS却大体相同——都是Windows。所以桌面虚拟化即指从OS开始往上的”虚拟化“。如果借用硬件对终端种类的划分,则这种针对前台的桌面虚拟化更应该被称为”客户端虚拟化“。
服务器虚拟化主要在于“计算”的优化,而桌面虚拟化则是”计算“和”通信“优化的结合,它更体现了”大集中“计算模式的精髓,通俗而言:前台虚拟化、后台大集中即将前台终端操作系统和应用的物理计算放到后台数据中心,实现实际计算及相关数据在后台的大集中;前台只作为显示和用户操作接口,所有数据、应用等都以虚拟的形态呈现在终端用户眼前。因为有了这种”前“、”后“台的关系,所以必须要有”前“、”后“台间的通信技术来支撑,从而形成完整的技术体系。
由于虚拟化技术的多样性,所以与之相应的各虚拟件的核心技术也不尽相同。对于服务器虚拟化而言,核心虚拟件叫Hypervisor(管理程序);对于应用虚拟化,核心虚拟件是通信协议(例如:ICA、RDP等);而对于桌面虚拟化,核心虚拟件既有Hypervisor,又有通信协议,二者缺一不可。
图4是目前流行的托管模式下的虚拟桌面系统原理图,从中可以看到桌面虚拟化必备的几个技术元素:
Hypervisor与虚机:技术相对成熟
其实就是服务器虚拟化技术,只是在传统的服务器虚拟化系统中,虚拟机里装载的是各类服务器操作系统。而桌面虚拟化系统中,基于Hypervisor (管理程序)之上的虚拟机里装载的是桌面操作系统,如Window 7, Windows XP, Linux等。这部分技术相对成熟,在桌面虚拟化方案考虑中所占权重不高。
桌面中介和会话管理单元:桌面虚拟化的“大脑”
在桌面虚拟化的方案部署中,桌面使用者首先进行身份认证,进入不同安全级别、不同应用权限的个性化虚拟桌面。这些任务的执行,由中介和会话管理软件支持,即桌面虚拟化的核心软件系统,它负责定义和管理前后台间的通信链路,并负责整个系统的管理、资源配置、调度、用户认证等,是整个桌面虚拟化系统的“大脑”。
如图4所示,当终端用户登入系统,中介和会话管理单元按用户身份查找已有配置桌面,如果有则直接将桌面发布出去。不过,绝大多数系统的配置是动态的,因此中介单元把指令进一步发给虚拟机及虚拟桌面代理机构,目的是动态地进行所需桌面的组装,从而更具扩展、伸缩等便利性。在这里,整个系统开始启动应用虚拟化的过程,即该单元向更后台的资源中心发出指令,资源中心则向虚拟机里动态交付所需桌面OS、指定应用程序集、终端用户配置/描述文件、终端用户文档等,完成所需桌面的组装。桌面组装完毕后,系统并不急于直接将它发布给使用者,而是向中介单元报告。中介单元接着进行软件使用许可查验,并进行策略检验。当这些检查通过后,中介单元才允许终端用户和刚才组装完毕的虚拟桌面平台通信,虚拟桌面开始正常工作。
桌面虚拟化的整个过程实际上嵌套了应用虚拟化技术,可以说应用虚拟化是桌面虚拟化的“鼻祖”。今天,桌面虚拟化中很多工作流程、前后台通信协议等都是直接来自于应用虚拟化技术。
前后台通信协议:对用户体验至关重要
既然桌面虚拟化是把前台计算放到后台,然后再在前台显示出结果,那必然牵涉前后台的通信协议问题。也有人称该协议为“显示协议”,不过归根结底它是为不同设备间协同工作而建立的通信机制,并且基于TCP/IP,所以严格来说以“通信”归类更为妥当。
几个代表性协议分别是:ICA、RDP/RDS、PCoIP、RGS等。通信协议(或显示协议)的选择对于虚拟桌面的终端用户体验至关重要。
挑战——终端用户体验
桌面虚拟化的概念非常完美,但早两年在桌面虚拟化初期使用中,人们也发现了它所面临的一个巨大挑战——终端用户体验。与服务器虚拟化不同,桌面虚拟化涉及对多媒体应用的支持、各类终端设备的支持、三维应用展现的支持、VoIP的支持等。人们早已习惯在前台终端上运行多媒体程序、打IP电话、插拔各类USB设备,如果桌面虚拟化的实施需要猛然终止这样的应用体验,那无异于将用户打回到了计算机应用的“原始社会”。这绝不是桌面虚拟化的初衷。
因此,与服务器虚拟化完全着重于“计算”不同,桌面虚拟化必须是“计算+体验”的完美结合。从技术角度讲,获得完美的终端体验,需要前后台的密切配合,各厂商都是通过上述前后台通信协议加以完善。如Citrix HDX技术对ICA协议的扩展,着重解决了Flash视频播放、VoIP实现、WebCam支持、多种类USB外设兼容、终端多显示器支持等问题;再如微软 RemoteFX技术对RDP协议的扩展,在视频、动画、3D等应用在虚拟桌面的展现效果上有所增强。同时,Citrix HDX也可以对微软的RemoteFX进行支持,提供完整的解决方案。
除了托管虚拟桌面(Hosted Virtual Desktop)模式外,桌面虚拟化还有托管虚拟应用(Hosted Virtual Application)、本地虚拟桌面(Local Virtual Desktop)、本地虚拟应用(Local Virtual Application)等模式。其中“本地虚拟桌面“是一种很新、但很有发展前景的使用模式,它是在终端电脑上进行硬件虚拟化配置,将一台笔记本/台式机等通过Hypervisor、虚机等逻辑地分成两个系统,二者从操作系统层就分开,数据、应用、配置等完全隔离,相互之间的访问也是虚拟化地进行。如果其中一个系统遭受安全侵袭或崩溃,另一个系统完全不受干扰,依然工作正常。这将给国内很多行业需要的”内外网隔离“、“单机双系统”等解决方案带来全新思路。