EWEBS:挑战应用虚拟化四大难点

2009-04-24 15:33  出处:PConline原创  作者:佚名   责任编辑:chenjiabj 

  虚拟化,正以革命者的姿态,胜利地冲上了信息化变革时代的前沿。在虚拟化大军浩浩荡荡,威猛而来的队伍中,只见一员小将闪身而出,白盔,白甲,白龙驹,一条鼠白烂银枪,在百万军中如同一片白云,来去自由,骁勇无比。别人问他姓名时,他说他叫应用虚拟化,乃虚拟化阵营中,新晋少将军也。

  在IT应用高度发展的当前,应用虚拟化技术,也确实以这样绚烂的姿态和快捷强大的功能,出现在迫切的用户市场需求面前。从技术角度来讲,应用虚拟化可以简单描述为“以IT应用客户端集中部署平台为核心,以对最终用户透明的方式完全使用户的应用和数据在平台上统一计算和运行,并最终让用户远程接入应用获得与本地访问应用同样的应用感受和计算结果。”

  尽管应用虚拟化描述,是让IT技术人无限崇拜的理想架构,尽管应用虚拟化产品的功能,已经让用户惊叹地解决了其应用瓶颈问题,但是,作为一个刚刚出道的年轻“将军”,它毕竟不太成熟,它的机遇和挑战并存。有专家认为,应用虚拟化这项前瞻性技术,要继续深入企业并最终形成成熟的IT新平台架构,性能优化、本地化输入、安全和虚拟打印四大问题将成为决定性因素。

  挑战一:虚拟化服务器端性能负载优化

  由于应用虚拟化技术最初致力于数据中心的服务器虚拟化,每台服务器上可以安全地运行七八种或更多的应用软件,占用服务器总处理能力的80%,这与未经过虚拟化处理的服务器其利用率平均只有5%至15%相比有了显著提高。但是运行所有那些虚拟机给一个硬件的输入/输出处理能力带来了负担;本来就要处理进出网络的流量,更不用说处理从其他应用程序或后端数据库大批装入的数据了。过大的输入/输出流量会让服务器的通道不堪重负,从而导致等待数据过程中,待处理流量积压、CPU资源闲置。

  因此,应用虚拟化技术能否大规模应用,并成为平台级产品的关键,就在于服务器的性能优化。性能优化又包括两个方面,一是应用虚拟化软件对服务器等硬件平台的指挥调度优化(也即负载均衡技术);一方面是应用虚拟化平台对其承载的应用程序的访问调用优化技术。只有实现了以上软硬件的性能优化的应用虚拟化系统,才真正能够在用户实际使用中切实保障使用的质量。目前,在中国国内应用虚拟化领域,技术实力最领先的是极通科技(www.gintel.cn),以下就以极通科技的应用虚拟化拳头产品--极通EWEBS应用虚拟化系统为例,来阐述技术难点和解决方法。

  第一,负载均衡的优化。业内部分应用虚拟化解决方案中都面临一个较大的困难就是如何在多台服务器之间实现访问负载平衡,现有的困难包括:(1)主要采用基于会话数的负载均衡(如终端服务),不能基于应用程序实现负载平衡;(2)服务器负载信息的收集和同步实施比较困难。

EWEBS

图1注:应用虚拟化系统实现负载均衡原理示意图

  EWEBS应用虚拟化系统可以区分应用程序,根据对应服务器上的综合负载信息包括CPU、内存、硬盘及网络等服务器资源的综合使用情况实现负载均衡。在EWEBS应用虚拟化系统服务器集群中,由集群管理控制器来负责负载信息的收集和同步,在用户提出应用程序访问请求时,分配空闲的服务器信息给客户端,客户端从而访问最空闲的服务器上的应用程序。在EWEBS服务器集群中,采用了竞选机制来选择集群控制器,以避免由于集群控制器失败导致的负载均衡无法正常工作现象。

  第二,对应用程序访问本身的性能优化。应用虚拟化技术时刻注意优化性能,不仅在本地输入法和虚拟打印中尽量优化服务器和网络性能,在服务器端运行应用程序时更是采用了资源共享和会话共享技术来优化服务器性能。

  在传统虚拟化模式下,当用户运行某个应用程序时,应用程序相关进程会调用若干程序模块,每个模块的代码段和数据段会被加载到内存中。在用户调用另一个应用程序时,同样会调用相关的模块,加载相关的代码段和数据段,即使相同的模块代码段被调用,也会重复从硬盘读取并加载到内存中,从而产生了内存的大量占用和硬盘读写操作。在远程应用模式中,为了保证用户应用的独立性,通常会为用户开辟独立的内存空间,如果有更多的用户执行相同的应用程序,同样的代码段会被更多次的加载到内存中,导致了服务器内存、硬盘及CPU资源的大量消耗,增加了对服务器硬件的需求。在EWEBS 2008中,专门开启了独立的共享空间,用于加载应用程序模块的代码段,用户执行应用程序时数据段存放在各自独立的内存空间中,这样就减少从服务器硬盘上大量读取代码段的需求,从而减少服务器内存、硬盘及CPU资源的消耗。因此在同样的硬件条件下,服务器同时可以支持更多的用户访问。

  在应用虚拟化系统中,一个用户从同一个客户端访问服务器上的多个应用程序时,只会占用一个会话,所有的应用程序在一个会话空间中运行,减少了服务器因为维护多个会话而产生的资源消耗,同时降低了网络连接的数量。

  挑战二:本地化输入决定中国市场

  中国文字和拉丁语系文字,在IT使用上最大的差别,就在于输入法。在国外,当用户使用英文输入的时候,只需要一种输入法,因此,输入法直接可以安装在服务器上,而在中国用户的应用环境中,当应用程序在服务器端运行时,用户需要输入中文,中文输入法种类繁多,每个用户都有自己熟悉和喜欢的输入法,如果只能使用服务器端安装的输入法,显然会降低应用虚拟化产品用户工作效率和使用感受。

  由于用户有着不同的输入习惯,需要管理员在服务器端安装众多的输入法。输入法字库属于文字型数据库,检索较慢,当多个用户使用服务器端的输入法时,会导致响应慢,同时增加服务器端的压力。在输入法习惯保留方面,由于同一输入法会有多用户使用,用户的输入习惯无法在服务器上得到很好的保留。同时服务器端输入法也不支持手写和语音等高级输入法。

  在极通EWEBS应用虚拟化系统环境中,支持使用客户端输入法进行文字输入。用户在输入文字时,使用本地输入法录入文字,由AIP协议把输入文字的编码传送到服务器端,再在服务器端进行解码显示,有效解决了服务器端输入法响应慢的问题,同时还可以保留客户端的输入法习惯,更无须在服务器端安装众多的输入法。由于文字输入工作完全在本地进行,即使是手写、语音等输入方法都可以继续使用。

  在EWEBS中本地输入法中,由于采用了独特的编码、解码技术,可以实现不同文字类型的自动切换,如繁简字的切换可以方便的实现。

EWEBS

图2注:应用虚拟化本地输入法技术示意图

  挑战三:虚拟化安全体系如何保障

  随着应用虚拟化逐渐进入到企业的底层计算结构,桌面虚拟化和服务器性能优化带来的难题有望得到解决。但随着虚拟化技术不断推广,应用虚拟化的安全性变得越来越重要,因为入侵者可能会找到办法通过应用虚拟化终端,进而潜入到虚拟机管理程序本身,从而闯入应用虚拟化服务器平台,攻击门户大开的敏感数据、信息流量以及整个系统的资源。

  不管是哪个厂商的应用虚拟化产品,信息安全都是重中之重。如何保证数据传输的安全是管理员要面对的问题,安全的关注点主要在以下三个方面。
第一,用户身份验证的安全性。

   用户身份验证的安全主要包括用户身份密码的安全和验证安全两个环节,传统的应用体系中,用户验证通常有用户名/密码验证、USB key验证及智能卡验证等方法。在EWEBS 2008 中,采用用户帐号和Windows帐号关联的方式,在EWEBS 2008中存储用户密码,用户访问应用程序时不直接使用Windows 帐号密码,而是使用EWEBS 2008中为用户单独创建的帐号。用户帐号的身份验证支持用户名/密码、USB Key验证、智能卡、指纹或视网膜等生物学身份验证方法。

EWEBS

图3注:应用虚拟化身份认证安全架构示意图

  第二,服务器的安全性。

  传统的远程接入模式中,因为用户的应用直接在服务器端运行,如何保证服务器的安全性是管理员面临的一个大问题,一般都采用Windows 组策略等手段来保护服务的安全,但是组策略配置的复杂性、效果都不尽如人意。在EWEBS中,直接内嵌了Windows  Active Directory 组策略的配置设置,管理员无需熟悉组策略的具体配置,只需要进行简单的选择,就可以轻松的限制用户对某个具体的硬盘、系统任务栏或IE等服务器端资源的访问。

  第三,数据传输的安全性。

  在传统的应用模式中,客户端和服务器端需要传送应用程序相关的数据记录,如数据库的查询结果集等,这就对数据在网络上的传输安全提出了较高的要求,通常采用VPN加密、SSL加密等技术来保证应用数据的安全。在EWEBS 2008中,由于所有的应用程序都在服务器(集群)上运行,所以客户端和服务器端传送的仅仅是应用程序的输入输出逻辑,在没有特别授权的情况下,数据无法离开服务器(集群),保证了数据的安全。EWEBS 2008中还内嵌了SSL通信技术来保证客户端和服务器端网络通讯的安全,
除了上述的三个方面的安全之外,在EWEBS中,管理员还可以轻松的对客户端进行控制,可以根据用户帐号、访问时间、客户端IP地址、客户端MAC地址、客户端机器特征码(从CPU、主板、硬盘等硬件计算而来)等来限制客户端对应用程序的访问,从而做到即使用户帐号信息泄露,第三方也无法盗用应用程序,有效的保证了用户关键应用和数据的安全。

  挑战四:解决远程虚拟打印问题

  在应用虚拟化的平台上,当应用程序在服务器端运行时,如果用户需要打印文档到本地连接的打印机上时,一般有两种处理方法:原生打印驱动和通用打印驱动。
原生打印驱动是指在服务器端安装客户端使用的打印驱动,当用户提出打印需求时,调用服务器端的Spooler服务,使用服务器端安装的驱动程序生成EMF文档传送到客户端,再由客户端的Spooler服务调用本地安装的驱动程序打印EMF文档,这样操作的优点是打印效果等同于客户端本地打印的效果,但是也有很多的不足。

  首先原生打印要求服务器端安装所有客户端需要使用的打印驱动程序,这将消耗服务器端的大量资源;其次是EMF文档会占用服务器端大量的磁盘空间,在通过网络传送到客户端时,会占用大量的网络带宽;EMF文件和驱动程序对应,只能在特定的打印机上打印,兼容性较差;多用户调用服务器端Spooler服务,易死锁,当一个用户的打印作业没有响应时,所有的打印作业都将停止;最后就是易窜打,因为传统的打印机映射是基于用户的,当多人使用同一用户帐号执行打印时,经常会把文档打印到其他用户的打印机上,这种现象在Power users等特权用户组成员打印时发生的机率更高。

  为了解决这些问题,有些远程接入厂商尝试使用通用打印驱动,在服务器端不再安装客户端使用的打印驱动,而是使用兼容性高的通用打印驱动,如用HP 6L驱动程序来代替原生打印驱动,使用通用打印驱动生成EMF文档传送给客户端,这样操作解决了兼容性和服务器端安装大量驱动的问题,但是对于原生驱动打印的EMF文件占用大量磁盘空间和网络带宽、Spooler服务易死锁及易窜打的现象没有解决,同时还产生了新的缺点:打印质量差,特别容易出现打印错位、字体出错的现象,而且由于通用驱动的缺点,不能使用打印机提供的其他特性,如不能支持有些打印机设备的高dpi设置。

  为了解决上述问题,极通EWEBS <http://www.gintel.cn/>中采用了虚拟打印技术,在服务器端不再安装原生打印驱动或通用驱动,直接使用虚拟打印把用户要打印的文档生成xpdf文件,并把xpdf文件传送到客户端,使用客户端的打印驱动进行打印,一举解决了困扰多年的打印问题,其优点如下: 不要求服务器安装众多驱动程序;xpdf文件可以直接打印,不存在兼容性问题,打印质量好,打印结果等同于客户端本地打印结果;无需产生和传送EMF文件,生成的xpdf文件大小仅为EMF文件的1/5,节约网络带宽;xpdf文档生成在内存中,不再像EMF文件一样占用服务器硬盘空间;由于引入队列管理机制,多用户调用服务器Spooler服务,不易死锁,即使有用户打印作业没有响应,也不会影响其它打印作业;EWEBS 2008中打印机和会话关联,解决了多人使用同一帐户打印易窜打的问题;打印速度快,无需文件传送完成再打印,可以传完一页打印一页,显著的提高了打印速度。