基于桌面虚拟化技术的新型IT办公环境
2012-09-17尹勤
尹 勤
0 引言
随着中国改革开放不断深入发展,无论是在外企还是国企,计算机作为现代办公系统中的主要设备得到更为普遍和广泛的应用,并与企业的日常运营紧密地联系在一起了。据统计,在日常工作中桌面系统的支持和维护占据了整个 IT部门70%的工作量,如何切实减少这一部分的工作量将有效缓解IT部门的压力,并可以将更多的时间、财力、人力用于为企业整体发展提供更有效的支持。
现今计算机硬件制造技术飞速发展,以中央处理器,存储器为代表的计算机核心部件在性能和容量上都得到了极大的提升,这使得人们可以用相对低廉的价格购买到性能相对强大的计算机,与此同时,软件业也得到了高速发展,各类软件厂商不断开发出各种功能强大的应用软件。软硬件技术的不断更替发展,相互促进并不断满足了人们对于各类信息的收集和处理需求,与此同时,频繁的更新和升级也增加了企业内部IT的工作负担和风险。
减少 IT部门日常工作中桌面及应用系统的维护工作量,减少因日常维护或故障处理给日常工作带来的影响,提高公司内部业务的连续性,这一直是各类企业及IT厂商,信息咨询公司所希望实现的。21世纪初,虚拟化技术的再次兴起给我们提供一个很好的解决方法。
1 虚拟化技术的分类及特点
虚拟化技术(virtualization)并不是一个新的名词,早在上世纪60年代IBM就在其大型机及System360/370等设备上运用了虚拟化技术,实现了多个用户同时使用同一台计算机设备进行数据处理。而现在普遍使用虚拟内存技术,则是对某一个特定部件利用虚拟化技术以实现功能和规模的扩展。近些年来兴起的虚拟化技术,则不仅是对某一个部件实现虚拟化,而是对整个计算机硬件系统进行模拟,通过软硬件技术,真正实现了由一台计算机到多台计算机的转变。
1.1 虚拟化技术定义
一般意义上讲,计算机虚拟化技术,是指对计算机系统中的各组件利用软件方法和硬件技术进行模拟,以实现多个虚拟的硬件系统平台,这些系统平台彼此相互独立,互不干扰,可以在其之上安装任何的操作系统。计算机科学认为,可以通过添加一个中间层去解决任何计算机系统的问题。因此,为了实现虚拟化,一种控制程序被设计并插入到硬件层和操作系统层之间,这个控制程序,一般称之为超级管理程序(hypervisor)或者虚拟机管理程序(VMM),其作用是将硬件层抽象出来,实现物理虚拟化,使操作系统不需要知道自己运行在何种硬件之上。Hypervisor一般分为二种,一种是直接运行在裸机(bare-metal)之上的,它不需要操作系统的支持,由其直接对硬件实现控制并管理虚拟机,而虚拟机则运行在它的上面一层。典型的产品有 VMware的 ESX /ESXi,Windows的Hyper-V和Citrix的XenServer这3种。另一种是运行在主机(hosted)之内的,管理程序作为一个独立的模块,而其他的虚拟机则运行在它的上面,其典型的应用程序是Xen3.0。这两种模式的基本架构,如图1所示:
图1 Hypervisor裸机模式和主机模式架构图
1.2 虚拟化技术的分类及特点
目前,虚拟化技术主要流行的应用大致可以分平台虚拟化、桌面虚拟化、应用虚拟化。
1.2.1 平台虚拟化(Platform Virtualization)
平台虚拟化(Platform virtualization)又称硬件虚拟化(hardware virtualization),主要包括CPU,内存,磁盘和I/O等部件的虚拟化。它是在硬件和传统的操作系统之间插入一个超级管理程序。这时操作系统不再直接运行在计算机硬件之上而是Hypervisor之上,操作系统称为客户机,Hypervisor系统称为主机。客户机可以完全实现用户在传统物理机上的各种应用需求,实现对各种资源的访问和操作,而对于某些特殊的资源及特权指令则仍需陷入(trap)到Hypervisor中由其同一调度执行。其主要实现技术有完全虚拟化(full virtualization),部分虚拟化(partial virtualization)和准虚拟化(para-virtualization)。除了以上分类方法,还可以分为硬件辅助虚拟化(hardware-assisted virtualization), 操作系统级虚拟化(operation system-level virtualization)等。
(1)完全虚拟化(full virtualization)
完全虚拟化,是对底层的硬件实现完全模拟的技术。用户操作系统无需做任何的改动,就能实现在该虚拟平台上的安装和运行。完全虚拟化使用 binary translation和 direct execute方法,实现了对X86计算机系统的完全虚拟化。这种方法无需更改任何操作系统的内核代码,也不需要特殊的硬件辅助支持就可以实现,并且可以支持各种不同的操作系统,提供最大程度上通用性、可靠性和安全性。其典型产品有VMware ESX/ESXi。
(2)准虚拟化(para-virtualization)
准虚拟化(Para-virtualization virtualization),是通过在硬件层上安装一个含有虚拟化模块的操作系统来实现的,并且需要通过修改虚拟机的操作系统的内核代码以实现虚拟化。在这个方法中,客户机用Hypercall指令替换掉那些不能被虚拟化的指令,从而实现虚拟机有效地访问底层的硬件资源。准虚拟化的方法有效地提高了系统的处理效率,减少系统的开销,然而,由于其需要修改虚拟机操作系统的内核,因此,对于有专利保护的系统就不能很好地提供支持了,准虚拟化的典型产品有Xen 3.0。
(3)硬件辅助虚拟化(hardware-assisted virtualization),
硬件辅助虚拟化技术(hardware-assisted virtualization),是利用全新的硬件技术简化了虚拟化实现的复杂性。在2005-2006年间,Intel和AMD先后推出了具有虚拟化功能的新一代CPU,新CPU分别包含了Intel-X和AMD-V这两种新的指令集功能,实现了对虚拟化技术的硬件支持。在这种虚拟化环境中,指令优先级被分为root和non-root两种模式。VMM被放在了Root中,而虚拟机和用户应用程序被放置在non-root中,这样那些需要运行特权指令的程序调用将自动陷入到VMM所在的root中。通过这种方法就不需要Binary translation和direct execute或是修改系统内核来实现硬件虚拟化了。该项技术有效地减少了虚拟化的复杂性,但是其提供的性能表现目前还不具备与现在流行的虚拟化技术相抗衡的能力。这三种不同虚拟化技术在指令执行结构层次上的区别,如图2所示:
图2 完全虚拟化,准虚拟化和硬件辅助虚拟化执行指令层次结构
1.2.2 桌面虚拟化(desktop virtualization)
桌面虚拟化(desktop virtualization)是相对传统的计算机桌面而言的,它一般有两种模式,用户通过网络访问一台可集中控制的服务器,也可以由服务器将所需要的信息推送给用户所在的设备。
桌面虚拟化技术可以分为四种模式主机模式(hosted),集中管理模式(centralized),同步模式(remote synchronization),客户机模式(client-hosted)。
主机模式和集中管理模式较为相似,都需要可靠的网络作为基本支持。这两种模式一般都是由服务器构成桌面虚拟化的数据中心,用户可以通过网络访问虚拟化的服务。而这些服务各自都包括了一个桌面操作系统的配置文件。两者最大的不同在于集中管理模式有两种子模式,一是一对一模式,即一个用户使用一个桌面虚拟化镜像,而一对多模式是有一个共有的主镜像,每当一个用户申请使用虚拟化桌面时,都从该镜像复制一个副本,然后使用自己的数据和配置信息一并保存。这两种模式对网络都有高度依赖性。
在同步模式中,一个镜像文件被复制到本地计算机中,由服务器的管理软件做定期的更新。这种模式可以有效地避免因网络中断而引起的业务中断。在客户机模式中,彻底地使桌面虚拟化摆脱了对网络的依赖。集中式的服务器提供了对于主镜像的存储和管理,而每个客户则保留自己的一个独立桌面虚拟机。这两种模式对于本地的计算机都有较高的要求。
对于这四种模式,在在实际部署中,一般会较多地考虑集中管理模式和客户机模式。在具体的实际应用部属中,我们还需要根据服务器性能,网络带宽以及实际需求等去确定使用哪一种模式或几种模式。目前,较为流行的桌面虚拟化产品有Citrix XenDesktop,VMware View等。
1.2.3 应用虚拟化(application virtualization)
从技术实现角度来说,应用虚拟化(application virtualization)与之前提到的硬件虚拟化有着非常明显的不同之处,它并不是将底层的硬件通过各种虚拟化技术模拟出一台或多台虚拟机,而是将应用程序进行重新封装,在运行时,将所有的文件和注册表操作重定向到一个特定的文件,从而满足应用程序对底层硬件的访问需要,使应用程序认为是直接对硬件进行的操作。其具体的实现方式一般有两种方式,一是应用程序流(application streaming),它是一种基于软件分发形式的实现方法,根据现代应用程序顺序执行的特点将应用程序封装和存储在一台应用程序流服务器上,在执行时由服务器推送到客户端,从而实现程序的各种操作。第二种方式就是之前提到的桌面虚拟化方式,应用程序安装在虚拟机里,通过连接虚拟机来实现应用程序的虚拟化。无论何种技术方式应用虚拟化都实现了更好的兼容性和可移植性。应用程序虚拟化产品有Citrix XenApp, VMware ThinApp等。
虚拟化的这三种技术已经越来越多的被企业引入到实际生产和运作之中,并且在数据中心,桌面管理以及关键业务中产生了巨大的影响和效益。
2 应用案例分析
VMware,Citrix和Microsoft作为目前在技术实力,产品功能及市场占有率上都较有优势的厂家,在服务器虚拟化,桌面虚拟化以及关键业务应用等方面都有各自的优势。凭借与微软紧密的战略合作关系,Citrix在桌面虚拟化及应用虚拟化领域优势则更为明显,Xen作为Citrix在虚拟化领域的代表品牌,其最早是由剑桥大学开发的一个项目,于2007年被Citrix收购了其商业化公司Xensource.Inc,由此进一步加强了Citrix在桌面虚拟化和应用虚拟化领域的优势地位。
作为Citrix最新桌面虚拟化产品Xen Desktop 5包括了Xen Desktop delivery controller, Xen Studio, Xen Director,Web Access以及License Server,这些组件提供了对于虚拟桌面镜像的生成,管理和维护的功能,动态地调整和分配虚拟桌面和实时监控等功能。新一代的产品不仅提供了跨平台多终端的访问功能,更利用HDX技术实现了更为有效的网络传输能力及多媒体体验。FlexCast交付技术作为另一个重要特性,不仅支持传统的本地化虚拟桌面和流式虚拟化桌面,更提供了虚拟桌面之间的空间共享,应用程序虚拟化定制功能以及跨平台特性。虚拟化桌面跨平台的特性,如图3所示:
图3 虚拟化桌面跨平台的连接
3 案例设计和实现
目前,多数的办公及应用软件都是基于微软的Windows桌面操作系统并且用户也习惯使用这套办公环境,所以虚拟化桌面系统一般会考虑使用微软的相关产品去进行实现。现以微软的Windows server 2008 R2作为服务器操作系统构建一个桌面虚拟化的应用环境。首先,对于部署的硬件环境上,,现在一般主流的机架式服务器都可以满足虚拟化部署的硬件配置要求。安装环境一般分为两种:1,在现有系统环境里添加桌面虚拟化应用环境,这个在安装和配置上相对来说比加简单。2,在一个全新的环境里构建桌面虚拟化系统,这时除了需要安装操作系统,域控制器,还需要添加DNS和 DHCP,在这两种环境中,都需要部署微软的虚拟化管理软件 SCVMM,以实现对虚拟机管理和维护,并为Citrix XenDesktop 提供管理工具,这个服务器一般可以通过虚拟机来实现,因此还需要安装Hyper-V使其能够支持服务器虚拟化
在完成 SCVMM 的安装后,先新建两个虚拟机,一个是作为Citrix XenDeskop的服务器,另一个需要作为主镜像虚拟机。在Citrix虚拟化桌面系统里,一般通过主镜像来生成其他虚拟化桌面,并可以通过对主镜像的更新实现对所有虚拟化桌面系统的更新。目前公司中普通使用的桌面系统一般是Windows7和Windows XP,可以根据实际需要选择安装。现以Windows 7为例,在完成Windows 7系统安装后将其升级到SP1版本。此外,在系统中还需要安装下列组件
使用DHCP方式获取IP地址,关闭Aero功能并将其添加到域中并关闭该虚拟机,这样一个主镜像虚拟机就完成了基本配置。由于Desktop Studio在使用主镜像时,不是直接使用该虚拟机的而是会自动生成一个checkpoint,最好通过SCVMM生成一个checkpoint并对其命名以便日后的使用。
在另一台虚拟机上安装Windows 2008 server R2并将其加入到域环境中,然后安装XenDesktop的服务器及其组件安装,如图4所示:
图4 XenDesktop安装组件
一般情况下,需要安装XenDesktop Controller,Desktop Studio,Desktop Director,Web access,License server以及SQL server Express, 如果已经安装了 SQL Server则 SQL Server Express不需要再安装,以下简述了每种组建的作用:
XenDesktop Controller是 Citrix XenDesktop的核心组件,负责用户的授权,虚拟桌面的生成,分配和控制。
Desktop Studio是XenDesktop服务器的控制和管理工具,可以远程系统中安装实现远程控制和管理。
Desktop Director是一款基于网页的远程监控和维护工具。
Web acess使用户可以通过Web界面访问虚拟桌面。
License server是服务器的证书管理器。
在安装完后,通过Desktop Studio可以配置虚拟桌面,包括快速配置和高级配置两种方式,如图5所示:
图5 Desktop Studio配置界面
在完成了服务器端和主镜像各种配置后,用户可以通过使用域账号或被授权的账号使用虚拟桌面,如同在物理机上一样操作各种软件,使用和编辑各种数据。一般用户通过使用Iinternet Explorer浏览器,就可以访问了,在地址栏输入Citrix XenDesktop服务器的地址、用户名、密码和域名,在登录过程中,还会提示安装Citrix Receiver组件,从虚拟桌面打开应用程序的情况,如图6所示:
图6 虚拟桌面中运行的Word
在实际应用中,我们可以看到相对传统的桌面系统安装和配置来说,桌面虚拟化系统有着如下优势:
桌面虚拟化的部署相对于传统的桌面系统安装来说有一定的难度和复杂性,但在整个系统结构部署完后,对于桌面系统的使用、维护和更新等是极其简单,而用户只需通过浏览器就可以访问虚拟桌面了,登录完成后,即使与服务器暂时失去连接,虚拟桌面也能够继续正常使用。
桌面虚拟化有利于减少后期维护的成本和工作量,通过定制不同的镜像,可以为不同的部门和工作组实现不同的软件部署,最大化控制软件的使用成本。如果系统在使用过程中出现了问题,IT人员不再需要跑到用户面前帮其解决,直接可以通过远程访问进行处理,如果问题严重更可以直接重新分配一个新的虚拟桌面并将用户的数据迁移到新系统中,去从而大大提高了工作效率。
桌面虚拟化对于数据安全性更有着极大的优势,由于所有的数据都是保存在数据中心,用户在使用虚拟桌面时,只是将输入和输出通过网路传送到用户端,这样最大程度的防止数据的泄露。数据中心一般都有完整的备份方案,这样虚拟桌面及用户的数据也能最大程度的被保护。存储在同一数据中心的数据由于没有网络延时和设备性能的差异,也有利于被不同的用户共享和使用。
尽管桌面虚拟化有着各种优势,但其同样也有以下一些问题需要考虑:
数据备份,由于是集中存储,数据备份问题就显得十分重要,一旦有失将造成巨大的损失。
服务器的性能,网络的带宽也是影响虚拟桌面使用体验的关键因素。
投资成本问题,桌面虚拟化的前期投资成本较大,公司部署这个系时应考虑是否确实需要这个系统。桌面系统较多且应用相对固定的公司,还有一般跨国企业或有较多分支机构的公司较为适用虚拟化桌面系统。
4 结束语
据统计,一般公司 IT预算的 70%-80%用于对现有 IT设备和系统的维护和管理,而省下的 20%-30%才用于开发能够满足企业发展的新系统。通过桌面虚拟化技术的应用能够有效降低IT管理和运维的成本和时间,减少日常IT维护工作的复杂程度,提高业务连续性和可恢复性,减少因为桌面系统崩溃造成的工作中断,更可以实现对重要数据和敏感数据的集中管理,用户更可以通过各种方式访问获取各种数据和信息,便捷的开展日常工作。
虚拟化技术不仅是一种IT的潮流更是一种发展趋势。虚拟化桌面系统重新审视了终端用户,应用程序和数据三者之间的关系,并推动了企业IT工作环境从以PC为中心的方式向以用户为中心的方式转变,这无疑将会再一次改变我们日常的工作习惯,推进企业的日常管理和业务发展。
[1]Keith Adams,Ole Agesen A Comparison of Software and Hardware Techniques for x86 Virtualization 2006
[2]An Overview of Xen Virtualization (2005)[OL]www.dell.com
[3]Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand,Tim Harris,Alex Ho, Rolf Neugebauer†, Ian Pratt, Andrew Warfield Xen and the Art of Virtualization 2003