Vmware View以及微软VDI解决方案的初步应用解析
桌面虚拟化是计算机虚拟化技术应用的重要场景之一。虚拟桌面基础架构(VDI,Virtual Desktop Infrastructure)是实现桌面虚拟化的基础。设想一下,通过虚拟化技术,使用户可以通过手机、PAD、移动设备或PC设备访问同样的桌面资源,虚拟化技术才为最终用户带来核心价值。目前的虚拟化技术应用主要集中在两个方面,针对企业的服务器虚拟化以及对于最终用户的桌面虚拟化。
对于服务器虚拟化,目前平台比较成熟,以Windows Hyper-V为代表的操作系统级服务器虚拟化,在SCVMM的管理下,将物理服务器切分成多个虚机进行应用。最近微软的System Center出到了2012,主打私有云的建设。而VMware这边,以vSphere 5为代表的基础设施级虚拟化技术,使物理服务器完全变成了虚机运行的平台。对于服务器虚拟化来说,两个平台各有千秋,而部署起来其实开销都差不多。只是看公司对于IT基础设施的规划情况。
而在桌面虚拟化领域,VMware还是占据着主导地位,虽然微软最近几年死命的在这一领域追赶,但从现有的资料来看,还没有能够达到并超越VMware的技术程度。在当前的实际应用中,如果要让桌面虚拟化真正被用户所接受,2D、3D的显示效果和用户体验度尤为重要。什么时候用户不觉得自己在虚拟机上进行桌面应用,虚拟化技术就达到了应用效果。花了点时间对比了一下VMware View以及Windows RDP 7.1 在显示效果和用户体验度的网络资料,我们可以得到如下认识。
一、实施桌面虚拟化的硬件条件
我们以运行主流的Windows 7操作系统为例,微软给出的Window 7运行最低配置为:
1 GHz 32-bit or 64-bit processor
1 GB of system memory
16 GB of available disk space
Support for DirectX 9 graphics with 128 MB memory (to enable the Aero theme)
DVD-R/W Drive
Internet access (to download the Beta and get updates)
而按照这个配置要求,一台进行桌面虚拟化的虚机硬件一般推荐配置为:拥有2G以上的CPU,至少一个核心;2G内存;128M显存的支撑显卡,20GB或以上的硬盘空间。无论使用VMware硬件虚拟化还是Hyper-V操作系统虚拟化,虚机对于CPU的应用是复用的。一般来说,一个物理核心可以承载4至5台虚机,也就是说同时分配给4至5台虚拟机用。因此即便是主流的Intel i3处理器,也已经可以支持2台以上虚拟机的应用。而内存却消耗比较大,一台物理机运行Windows 7及基本应用,需要2G的内存。虽然Hyper-V采用动态内存分配技术,而VMware还是静态分配内存,两种方式都需要较大的内存空间保证用户体验度。这样即便只运行两台虚机,也需要4G以上内存。因此要求虚机管理系统必须是64位才能达到效果。
更加重要的是展现给用户的2D、3D效果。支持DX9的拥有128M显存的虚拟显卡,对服务器的要求更高。在VMware和微软的解决方案中,VMware对于服务器显卡的要求比较低,而微软相对较高。查阅了相关资料后,我们得知VMware采用的是CPU模拟GPU的方式。如果服务器的显卡资源不足,VMware将使用CPU及内存资源处理本应由GPU和显存完成的显示绘图任务。因此,如果部署VMware View应用,只要有一颗或多颗强大的CPU,配以足够多的内存就可以实现。而对于微软的Hyper-V来说,要实现同样的应用,如启用Win 7 Aero主题,则需要显卡的支持,因为微软是将服务器显卡的GPU和显存用来实现虚机的显示绘图任务。我以为,在桌面展现上,VMware采用的是“CPU集成显卡,共享内存”的工作方式。而微软采用的是“独立显卡,独立显存”的处理模式。理论上微软的显示效果应该比VMware的好,当然服务器开销也比VMware要高的多。
与之对应的是VMware View中的“3D加速”技术以及Hyper-V中的“RemoteFX”技术。
二、实现虚拟化部署的软件条件
VMware作为虚拟化技术的领军厂商,已经拥有了整个一套虚拟机管理和部署的软件,统称为VMware vSphere。vSphere真的很强大,实现了虚机在物理设备之上的多样化应用,但是部署真的很烦。要实现VMware View应用,你还得装Virtual Center,View Agent,View Client一堆的应用程序辅助你管理和配置虚机并实现应用。而VMware的应用许可证的确是个令人头疼的问题。无论你安装什么样的应用,都要安装许可证。而一些许可证的使用需要收费。这是部署VMware VDI应用比较令人头疼的一点,而且也导致初期的软件部署成本提高,比较适合部署后较大规模的应用与较大的投资形成正比,这说明VMware比较着眼于大规模的应用。
而微软这一边相对就比较简单了,只需要Window Server 2008 r2 sp1以及SCVMM在服务器端完成虚机的创建和管理,而在客户端有Windows 7 sp1或其他支持RDP 7.1协议的客户端就可以完成桌面应用了。初期投资的成本较少,适合与实验性小规模的桌面虚拟化应用。在人才培养上,如果要培养一个VMware vSphere管理员的确花费的时间和成本要比培养一个熟悉微软虚拟化的管理员要高。
三、关键技术解析
VMware和微软在虚拟化上不是两块坚冰,也不是井水不犯河水式的竞争模式。而是相互支持整合。在微软的虚拟化技术中,加入了对VMware ESX虚拟服务器的整合和应用。VMware ESX 服务器是在通用环境下分区和整合系统的虚拟主机软件。它是具有高级资源管理功能高效,灵活的虚拟主机平台。这样使管理者可以方便的将原本在VMware上运行的虚机迁移到微软的平台中来。而VMware支持的系统中,同样可以通过软件安装实现在Windows Server 2003、Windows Server 2008上管理VMware vSphere虚机。因此给用户更加多样化的选择余地。
而对于桌面虚拟化,VMware目前的确比微软更有优势。目前VMware View客户端已经可以支持到iPad,而在网上也已经有相关展示:(http://www.tudou.com/programs/view/MgvAqH0ttEI/),微软还没做到。而在3D显示方面,Vmware支持WIndows XP以及Vista的系统中展现虚机3D显示效果,而微软需要让这两个系统支持RDP 7.1。VMware可以通过支持PCoIP协议的无状态客户机实现桌面大型3D应用,微软还没有相关客户端的设备。从这些事例说明,VMware的确是VDI以及桌面虚拟化的老大。
而究其工作模式,VMware采用的是瘦客户机模式,网络传输协议是PCoIP协议。VMware在2008年召开的VMworld 2008大会主体演讲过程中宣布将将与Teradici共同开发支持VMware View的PCoIP协议,飞跃性地提高VDI的功能。有关VMware PCoIP协议的介绍,可以参见ZDnet的文章(http://server.zdnet.com.cn/server/2009/1218/1565379.shtml),这里截取两张图,说明PCoIP的基本结构和应用效果。VMware View的PCoIP软件是通过这样的软件栈来实现的
在WAN中,PcoIP的传输速度的确比RDP高很多
而实现桌面虚拟化,VMware是将处理完的结果在客户机使用客户机的CPU以及显卡资源进行展现,如同在看在线电影一样。因此其实VMware 3D加速对于客户机的要求并不低。要达到Window 7 Aero 效果,客户机CPU 要达到2.0以上,显卡要N卡额8800GT或者A卡的HD2600,其实这样的客户机也可以装一个Win7操作系统了。而有些大型3D的应用这样的客户机配置依然无法满足需求,从而催生了PCoIP瘦客户机设备的制造。PCoIP瘦客户机3D效果实际应用演示(http://v.ku6.com/show/Y4Y9eDv5CIz6qiRV.html)
VMware 瘦客户机
反观微软,只要有一台可以装Win7 SP1操作系统的PC机就可以实现桌面应用了,能够装VMware View Client并实现Aero应用的计算机都可以满足要求。微软的网络通信协议主要依赖于RDP协议,而在Win7 及Server2008 r2的sp1补丁中,加入了RemoteFX的支持,使微软的远程桌面连接可以支持富客户端应用。RemoteFX是微软在Windows 7/2008 R2 SP1中增加的一项桌面虚拟化技术,使得用户在使用远程桌面或虚拟桌面进行游戏应用或者图形创作时,可以获得和本地桌面一致的效果。具体安装测试可以参照51CTO的博客(http://xyls1986.blog.51cto.com/601867/389846)。由于微软采取的是虚机“独显”显示模式,将虚机显示要求分配给GPU和CPU共同完成,虚拟硬件驱动通过服务器的DirectX 提交GPU进行绘图处理,就像在服务器上跑一个物理客户机一样。RDP 7.1重新把RemoteFX功能追加到RDP 7.0,不过在客户机方面,将以前的RDP 7.0和RemoteFX处理过程相分离。最后输出的是RDP 7.0和RemoteFX共同作用后的图像。
VDI+RemoteFX应用组件
这样对于服务器显卡的硬件要求也很高,N卡的Quadro 4000,5000,6000以上显卡,ATI的FirePro V5800,V7800,V9800以上专业级显卡才支持RemoteFX应用。普通消费级显卡虽然也能测试Remote应用,但是其应用效果与VMware View Client对比来说,还是有一定的差距的。
综上所述,如果要实现桌面虚拟化,无论是使用VMware还是微软的解决方案,前提投入都比较大。因此在实施时需要慎重考虑投资和后期回报等各种因素。我倒是觉得,如果是家庭或者小型企业应用,使用微软的RemoteFX解决方案倒也不错;如果需要在大型企业实施网络办公或富桌面应用,VMware View解决方案还是十分有优势的。最后提一句,虚拟化还有一家类似于VMware的提供商,叫Citrix,也是世界领先的应用服务软件方案提供商,旗下的XenDesktop同样可以实现VDI应用,其使用ICA协议,已经成为VMware在虚拟化领域重要的竞争对手之一,VMware将自家的vSphere 4.5与其做比较,当然结果要说自家的好。(http://v.ku6.com/show/SQTqCVMz4Jc2KDcF.html)。而在某些公司的测试中,Citrix的ICA协议可能传输效果比PCoIP协议的效果更好,而微软据说在将来也会改用其他的网络图像传输协议替代RDP(http://v.youku.com/v_show/id_XMjk2MjgwOTEy.html)。相信随着技术的发展,桌面虚拟化的应用成本会逐步降低,而用户体验度也会逐渐提高,最终可以让我们都享受桌面虚拟化带来的便利。