虚拟桌面是典型的云计算应用,它能够在云中为用户提供远程的计算机桌面服务。服务提供者在数据中心服务器上运行用户所需的操作系统和应用软件,然后采用桌面显示协议将操作系统桌面视图以图像的方式传送到用户端设备上。同时,服务器将对用户端的输入进行处理,并随时更新桌面视图的内容。
后端,虚拟化桌面通常通过以下两种方式之一来实现:
·运行若干 Windows XP 虚拟机的 Microsoft Virtual Server 的 VmwareServer,每个用户以一对一的方式连接到他们的 VM(虚拟机)。
·安装 Windows XP 刀片的刀片式服务器,每个用户以一对一的方式连接到刀片服务器。(这种方法有时被称作"bladed PC(刀片 PC)”)
无论何种方式,都是让终端用户使用他们想使用的任何设备。他们可以从任何地方连接到他们的桌面,IT 人员可以更易于管理桌面,因为它位于数据中心之内。
可从任何地方访问真实桌面。SBC和虚拟桌面的优点之一在于,用户可以从任何地方访问他们的应用(或虚拟桌面的情况下指桌面)。任何连接、任何客户端设备、世界的任何角落都可以访问。你何不把它也应用到桌面架构呢?
易于管理。如果你要管理 1000 个桌面,你会愿意管理哪种:1000 个四处分散的物理桌面?还是一个数据中心的 1000 个虚拟机和VMware磁盘镜像?如果客户“工作站”都集中到数据中心,这将对管理、打补丁、资源分配等工作很有利。
更易于备份。备份“工作站”你需要做的就是备份或快照磁盘镜像文件到服务器。如果用户丢失某些东西,他们可以轻松地将电脑恢复到任何时刻的状态。你甚至可以选择自动快照服务,它将会每小时自动快照一次。
数据存储。使用虚拟桌面,你可以保证重要的文件和数据不用通过网络存储到客户机设备上。
桌面运行于服务器级硬件上。由于桌面电脑分散于公司的各个角落,各台电脑与服务器级硬件的冗余情况也会不一样。一个停电事故、驱动或内存错误也可能导致桌面电脑崩溃。当然,服务器也一样。不过,由于公司的服务器比桌面数量少,从财政和风险角度看,在电力、RAID和其它技术方面花钱以确保服务器硬件不出问题,这样做也是值得的。
用户对于类似虚拟桌面的体验并不陌生,其前身可以追溯到 Microsoft 在其操作系统产 品中提供的终端服务(Terminal Service)和远程桌面。但是,它们在实际应用中存在着不足, 例如之前的终端服务只能够对应用进行操作,而远程桌面则不支持桌面的共享。
虚拟化技术的发展使虚拟桌面获得了长足的发展, 当前虚拟桌面解决方案主要分为两大 类:VDI(Virtual Desktop Infrastructure)和 SBC(Server-Based Computing) 。
基于 VDI 的虚拟桌面解决方案, 其原理是在服务器侧为每个用户准备其专用的虚拟机并 在其中部署用户所需的操作系统和各种应用, 然后通过桌面显示协议将完整的虚拟机桌面交 付给远程的用户使用。因此,这类解决方案的基础是服务器虚拟化。服务器虚拟化主要有基 于硬件辅助的虚拟化和基于操作系统辅助的虚拟化两种, 其中, 前者是一种完全虚拟化的方 法, 能够为虚拟机中的操作系统提供一个与物理硬件完全相同的虚拟硬件环境; 而后者则是 一种部分虚拟化的方法, 需要通过修改操作系统系统才能够将其部署进虚拟机中。 两种方法 相比较,部分虚拟化通常具有更好的性能,但是因为它需要修改虚拟机中的操作系统,导致 开发难度的增加并影响了操作系统的兼容性。特别是 Windows 系列操作系统是当前用户使 用最为普遍的桌面操作系统, 而其闭源特性导致它很难被部署在基于部分虚拟化技术的虚拟 机中。 因此, 基于 VDI 的虚拟桌面解决方案通常采用完全虚拟化技术构建用户专属的虚拟机, 并在其上部署桌面版 Windows 用于提供服务。
基于 SBC 的虚拟桌面解决方案, 其原理是将应用软件统一安装在远程服务器上, 用户通 过和服务器建立的会话对服务器桌面及相关应用进行访问和操作, 而不同用户之间的会话是 彼此隔离的。这类解决方案是在操作系统事件(例如键盘敲击、鼠标点击、视频显示更新等 等)层和应用软件层之间插入虚拟化层,从而削弱了两个层次之间的紧密耦合关系,使得应 用的运行不再局限于本地操作系统事件的驱使。 其实, 这种方式在早先的服务器版 Windows 中已有支持,但是在之前的应用中,用户环境被固定在特定服务器上,导致服务器不能够根 据负载情况调整资源配给。另外,之前的应用场景主要是会话型业务,其应用具有局限性, 例如不支持双向语音、 对视频传输支持较差等等, 而且服务器和用户端之间的通信具有不安 全性。因此,新型的基于 SBC 的虚拟桌面解决方案主要是在服务器版 Windows 提供的终端 服务能力的基础上对虚拟桌面的功能、性能、用户体验等方面进行改进。