【IT168 专稿】虚拟化并不仅仅是数据中心的问题。从最复杂的工作站应用程序到最简单的动态链接库(DLL),虚拟化正在客户端计算上留下不可磨灭的印记。
这方面很好的一个例子就是应用程序的虚拟化,可以将正在运行的程序与底层的桌面隔离开。应用程序虚拟化产品就是要对特定程序与所支持的操作系统资源的交互实现虚拟化,如文件系统和Windows的系统注册表数据库等。所有的应用程序虚拟化产品都是要将应用程序从操作系统镜像中分离开,但其方法却有很大的不同。
应用程序问题
我们先说第一种产品。Altiris的软件虚拟化解决方案(SVS)之类的工具可以采用被称之为"强力"的方法:在Windows的文件系统的代码堆栈中安装一种简单的过滤器驱动程序,截获并重定向SVS所管理的应用程序的I/O请求。在其分别的"层"中被启用时,SVS所管理的应用程序就如同与操作系统无缝集成一样。事实上,应用程序与操作系统交互的每个方面,从一个DLL的加载到访问一个注册表项,都动态地重定向到由SVS所管理的本地缓存文件中。
这种方法的好处在于,它完全将操作系统与应用程序隔离开:应用程序所做的任何更改,无论是对注册表的还是对于其自身文件的,还是对于Windows的更改,事实上仅发生在SVS所管理的缓存中。由于没有真正的变化发生,所以底层的操作系统镜像仍保持其"纯洁性",而应用程序可以通过简单地单击一个按钮来禁用它,或者通过一个管理控制台来禁用它。这种方法的缺点是它在管理同样的应用程序的多个版本时存在困难。例如,在并行的层中安装有多个微软的office版本时,由于激发了错误的组件版本,office有可能会造成SVS故障。
还有另外一种解决方案,如Softricity的SoftGrid(被微软收购)。SoftGrid提供了一种完整的虚拟化环境:应用程序被简化到客户端中,然后在一个定制的设备中执行,此设备将代码与操作系统实现完全的隔离。这种方法的好处是它可以避免困扰SVS的许多多版本问题。然而,其代价是一种更复杂的部署过程,它要求管理员构建一个定制的安装镜像,用以优化代码库。
当然,如果没有闯入者来搅局,那么任何市场都是不完整的。Thinstall就是这样一个闯入者,它将SVS的简易性与SoftGrid完整性结合起来。通过将这两种虚拟化环境和应用程序镜像嵌入到单独的可执行文件中,Thinstall就不再需要支持基础架构,只要将文件复制或传送到客户端并执行就可以了。不需要代理,而且镜像也可以用虚拟化的方式使用任何传统的管理套件来部署,包括活动目录和微软的系统管理服务器。其缺点是需要使用Thinstall的虚拟化套件工具集来定制应用程序。