使用 Microsoft SoftGrid 虚拟化应用程序

    技术2022-05-11  9

         

    自 20 世纪 60 年代起,各种形式的软件 虚拟化 概念相继出现。但在 IT 行业中,却花费了数十年的时间才意识到应用程序

    虚拟化的潜能。现在人们已经理解了这一重要性,并对此作出了重大改进。

    Microsoft 于 2006 年 7 月收购了 Softricity,此举促进了其应用程序虚拟化。本次并购催生了 Microsoft® SoftGrid — 一个应用程序虚拟化解决方案。使用 SoftGrid 时,应用程序是从数据中心或其他网络位置提供的,并在虚拟环境下的远程客户端上本地运行。虚拟化应用程序在真空区中运行,并且其操作独立于操作系统和本地桌面上的其他应用程序。

    使用 SoftGrid 实现应用程序虚拟化的好处有很多,在此无法一一介绍。不过,下面我们将介绍一些最显而易见的好处:

    简化回归测试和兼容性测试 由于可在同一台计算机上并行运行同一应用程序的多个版本而不发生冲突,从而显著降低了测试和部署新应用程序的复杂性、时间和费用(请参见图 1)。

    图 1  使用 SoftGrid 简化应用程序部署 (单击该图像获得较小视图) 图 1  使用 SoftGrid 简化应用程序部署 (单击该图像获得较大视图)

    更轻松的系统管理 IT 对于这些应用程序的运行环境具有很高的控制权,使得维护理想的桌面环境更加轻松。

    更少的服务台呼叫 由于桌面环境的管理更好、冲突更少(归功于虚拟化应用程序在受控的真空区中运行),用户呼叫服务台的次数也减少了。

    增强的桌面安全性 由于应用程序不会安装在操作系统上,从而改善了操作系统的总体安全性。应用程序仅对授权用户提供,从而防止了未授权的访问。大多数应用程序都呈现在标准的安全上下文中。

    自由坐席体验 用户首选项(配置文件和其他设置)都存储在网络中,因此允许用户从任意一台 PC 访问其应用程序、首选项和控件。

    改进的容错和灾难恢复 应用程序将转换为像其他任何企业数据一样可以存储和复制的数据文件。通过使用第三方工具,可在实时站点和 Bulk Copy Program (BCP) 站点之间自动同步应用程序及其更新,从而可在发生灾难时迅速访问应用程序。

    最终,这些特性减轻了系统管理的负担、降低了成本,还可以使您的组织能够更快、更可靠地采用新技术。现在,我们来进一步了解 SoftGrid 的工作方式。

    虚拟化应用程序的工作方式

    SoftGrid 体系结构是由大量相互协作的组件组成的。它包含众多 SoftGrid 组件,如数据存储、虚拟应用程序服务器、排序器、管理控制台、管理 Web 服务和客户端应用程序等,这些组件与标准的基础结构组件协作,如 Active Directory®(请参见图 2)。我们将为您提供 SoftGrid 体系结构概述,并介绍各种组件如何协同工作。

    图 2  SoftGrid 总体体系结构 (单击该图像获得较小视图) 图 2  SoftGrid 总体体系结构 (单击该图像获得较大视图)

    SoftGrid 数据存储充当整个虚拟化环境的中央存储库。数据存储安装在 SQL Server™(版本 2000 或 2005)或者 Microsoft SQL Server Desktop Engine (MSDE) 上,用于保留记录、应用程序、配置、许可数据、报告信息和日志记录信息。

    虚拟化应用程序服务于用户的计算机,呈现在客户端中。SoftGrid 具有两种类型:用于通用桌面的 Microsoft SoftGrid 应用程序虚拟化和用于终端服务器的 Microsoft SoftGrid 应用程序虚拟化。这些方法各有千秋,但也有一定的性能折衷,这将在“设置客户端”部分中进行说明。

    SoftGrid 环境中最重要的组件之一是 SoftGrid Virtual Application Server (SVAS)。该组件用于处理用户的应用程序请求,并根据需要将应用程序数据流式传送给用户。

    SVAS 以 Windows® 服务(称为 Microsoft System Center Virtual Application Server)的形式运行,对硬件的要求不高。默认情况下,所有应用程序数据自身(稍后会详细讨论)都位于 /Program Files/Softricity/SoftGrid Server/content 目录下。

    用户登录到工作站后,会获得典型的 SoftGrid 体验。SoftGrid Client 捕获用户的安全令牌和域组成员身份,并通过安全通道将此信息传送给 SVAS。如果用户的安全标识符 (SID) 存在于应用程序的组成员身份目录中,并且每个应用程序的快捷方式都位于桌面上(或位于可以由管理员定义的其他位置,如开始菜单、快速启动工具栏等),则 SVAS 会为用户分配对应用程序的访问权限。

    当用户单击快捷方式图标时,通常即会开始实际传递应用程序,该图标与 Open Software Description (.osd) 文件关联。该文件是基于 XML 的文件,包含有关应用程序包的信息。客户端从 .osd 文件检索虚拟应用程序服务器名称,并启动连接。此时,SVAS 将对客户端进行身份验证,并访问数据存储以确定是否获得许可。用户经过身份验证后,SVAS 会将应用程序数据以数据块的形式传送到客户端。默认情况下,每个数据块为 32KB,但可在排序时进行配置。

    请注意,不会将整个应用程序传送到客户端。SoftGrid 只会传送在客户端启动应用程序所急需的应用程序部分。通常是所有代码的 20% 到 40%,具体会根据应用程序而不同。例如,Microsoft Word 2003 仅要求向客户端传送 15MB 的数据即可启动,而软件包的总大小是 800MB。如果用户访问了尚未位于客户端缓存的应用程序的一部分,则会将必要的代码传送到客户端。星期一上午会由于同时存在过多的请求而阻塞网络,为了避免此影响,组织可以选择在用户桌面上预缓存常用的应用程序。

    Active Directory

    SoftGrid 依靠 Active Directory(或 Windows NT® 4.0)域用户和组为授权用户提供应用程序。在多域环境中,可使用适当的组成员身份(SoftGrid 支持本地、全局和通用组成员身份)和信任关系为用户提供安装了 SVAS 的域。

    安装 SVAS 时,会提示您提供不同的服务帐户和组,这些帐户和组有助于与 Active Directory 集成,随后会用于管理。因此,在进行安装前,您需要创建以下三个组和帐户:一个 SoftGrid 浏览器帐户、一个 SoftGrid 管理员组和一个 SoftGrid 用户组。

    SoftGrid 浏览器帐户用于浏览 Active Directory,因此需要对多域环境中的所有 Active Directory 域具有只读权限。SoftGrid 管理员组用于授予对 SoftGrid 管理控制台和 SoftGrid 管理 Web 服务的管理访问权限。SoftGrid 用户组用于指派默认的提供商策略,这一策略用于向域中的所有用户授予对通过管理控制台发布的应用程序的访问权限。

    虚拟环境

    SystemGuard 位于 SoftGrid Client(在本地桌面上运行)的核心。SystemGuard 用于提供功能完备的虚拟环境以便孤立地运行应用程序。此仓储型环境包含应用程序正常运行所需的虚拟化操作系统组件 — 注册表、文件、字体、INI、COM、嵌入的服务以及环境变量(请参见图 3)。

    图 3  用于孤立地运行应用程序的虚拟化环境

    SystemGuard 为其运行的每个应用程序创建了虚拟化注册表项。这些注册表项不允许本地操作系统上运行的其他应用程序访问,对注册表编辑工具(如 regedit)也是不可见的。注册表读写会根据需要重定向到虚拟项。但是,请注意,由于信息并未保存在虚拟注册表项中,允许虚拟化应用程序经过注册表。

    类似地,SystemGuard 创建了虚拟化文件系统,并将应用程序的大部分读写重定向到此文件系统。此虚拟化文件系统是隔离的,当您希望在单一客户端上运行同一应用程序的多个版本时,此系统会为您提供所需的环境。

    但是,应该指出,当应用程序与本地操作系统隔离时,用户仍然具有对所有本地服务(如打印、剪切和粘贴以及网络驱动器)的访问权限。

    打包应用程序

    现在,您可能希望了解如何创建功能完备的独立环境,以便在其中运行虚拟化应用程序。要完成此任务,需要用到 SoftGrid 排序器。使用此基于向导的工具,您可以在虚拟环境中打包应用程序,此操作可在客户端交付和执行。

    排序过程包括以下三个步骤:安装,配置和测试,还有执行。在第一个步骤“安装”中,SoftGrid 排序器使用活动的查看进程监视应用程序的安装并评估应用程序依赖关系。此步骤完成后,“配置和测试”阶段将对默认配置进行必要的更改,以确保获得所需的首次运行体验。最后,在“执行”阶段,SoftGrid 排序器将编译启动应用程序所需的代码块并对其进行排序。Feature Block 1 (FB1) 是启动应用程序所需的基本代码,通过此代码,用户不必下载整个软件包即可运行应用程序。

    在应用程序完成排序后,会创建四个文件:一个启用虚拟化的应用程序文件 (.sft)、一个开放软件描述文件 (.osd)、一个图标文件 (.ico) 和一个项目文件 (.sprj)。这些文件稍后会被复制到 SVAS 的内容目录下。管理员也可以使用 HTTP 服务器将 .ico 和 .osd 文件发布到客户端。

    虽然 SoftGrid 通常会将应用程设置为在隔离环境中相互独立地运行,但 SystemGuard 仍然允许部分应用程序交互。您应仔细检查应用程序彼此之间可能存在的依赖关系,并将依赖于彼此间交互的应用程序排在一起。此过程通常称为配套。请注意,并非所有需要彼此交互的应用程序都能够排在一起。配套是一个非常复杂的过程,只能在仔细检查了依赖关系后才可执行,因为有时对两个或多个应用程序排序会与虚拟化目的相悖。

    简化管理

    SoftGrid 管理控制台提供了一种可以执行所有管理任务的单一工具。默认情况下,管理控制台安装在 SVAS 上,它也可以安装在任何其他服务器或工作站上。管理控制台是一个 MMC 3.0 管理单元,它使用 SoftGrid 管理 Web 服务连接到 SoftGrid 数据存储(请参见图 4),从而为获得授权的管理员提供了对数据库中存储的数据的完全访问权限,以方便其管理。管理控制台与 SoftGrid 管理 Web 服务之间是使用 Microsoft .NET Framework 远程连接的,从而可以在相同或不同服务器上安装管理控制台和 Web 服务。图 2 说明了这些不同的产品如何融合在一起并提供对整个 SoftGrid 实施的访问权限。请注意,较大规模的组织应运行 SoftGrid 管理 Web 服务的多个实例。

    图 4  SoftGrid 管理 Web 服务提供了与数据存储的连接 (单击该图像获得较小视图) 图 4  SoftGrid 管理 Web 服务提供了与数据存储的连接 (单击该图像获得较大视图)

    SoftGrid 管理 Web 服务在带有 IIS 5.0 或更高版本的 Windows 2000 或更高版本上运行。数据存储连接需要 .NET Framework 2.0 或更高版本,以及 Microsoft Data Access Components (MDAC) 2.7 或更高版本。

    管理控制台提供了单一的管理工具,用于对应用程序执行发布、终止等操作。各种任务已组织到九种主要类别或容器中,如图 5 中的菜单所示。

    图 5  从单一管理控制台中管理 SoftGrid (单击该图像获得较小视图) 图 5  从单一管理控制台中管理 SoftGrid (单击该图像获得较大视图)

    此处为在每个容器中找到的管理任务的类型简介。“应用程序”容器用于供管理员执行一些操作(如导入 .sprj 文件)以发布更新的应用程序、指定 .osd 位置、删除应用程序等。默认情况下,此容器包含已发布的软件包,您可以使用此软件包测试客户端与应用程序服务器之间的连接性。

    对应用程序排序时会创建文件类型关联。导入软件包后,文件类型关联在管理控制台中即变为可用。“文件类型关联”容器为管理员提供了用于修改所有文件类型关联的单一位置。

    “软件包”容器控制活动升级的软件包版本;用户不必断开与服务器的连接,也不必关闭服务器,即可执行这些应用程序升级。管理员还可以使用此容器从管理控制台删除软件包。请注意,从“软件包”容器中删除软件包会从管理控制台和数据存储中删除 .sft 文件,但不会将其从应用程序服务器上的内容目录中删除。

    正如前文所述,当用户启动一个应用程序时,SoftGrid Client 会检查许可证可用性,仅当许可证在数据存储中可用时才启动该应用程序。“应用程序许可证”容器供管理员用于关联证书与应用程序,支持无限许可证、并发许可证和命名许可证。

    “服务器组”包含应用程序虚拟化服务器和日志记录信息的逻辑分组。管理员可以添加新服务器组,也可以修改现有组的属性(如用于通信或分配内存和进程的端口)。

    在“提供商策略”容器中,管理员可以创建一组名为策略的规则。自定义提供商策略用于根据不同条件集授予用户对大量应用程序的访问权限。您可以使用“帐户颁发机构”容器指定当 SoftGrid 需要访问权限以读取域的目录信息时使用的域和凭据。“SoftGrid 管理员”包含负责管理 SoftGrid 环境的用户组。在此容器中,管理员可以添加或删除组以控制访问权限。

    最后一个是“报告”容器,顾名思义,管理员可以使用该容器生成报告,以检查 SoftGrid 环境的总体运行状况。以下报告可用:应用程序利用率、软件审核、系统利用率、用户/组活动和系统错误。

    建立客户端

    SoftGrid Client 安装在用户将用于访问虚拟化应用程序的计算机的操作系统上。正如前文所述,支持以下两种客户端类型:面向桌面的 Microsoft SoftGrid 和面向终端服务器的 Microsoft SoftGrid。这些方法各有千秋,但在网络延迟、服务器场合并和易于管理等方面也有一定的性能折衷。

    在桌面实施中,应用程序在本地可用,很少依赖网络可用性和吞吐量。例如,对具有 IT 基础结构受限制的分支机构的组织,建议使用此方法。对于已扩展到终端服务器的组织,终端服务是一个很好的选择。此方案可以有效利用硬件和软件,显著降低所需服务器的数量。当然,这会实现真正的自由座席环境。通常,大型组织会采用同时包含桌面和终端服务器的基础结构。设置 SoftGrid 部署时,这两种方法在安装和配置各种组件方面是相似的。

    客户端可通过任何标准的方法进行部署,如手动安装或使用工具(如 Systems Management Server 2003)自动部署。图 6 列出了安装这些客户端所需的最低硬件和软件要求。

    虽然安装客户端很简单,但在安装时有一些属性是必须提供的,如安装位置、缓存大小、虚拟驱动器所用的驱动器号和应用程序数据文件的位置等。安装好客户端后,可以使用客户端管理控制台指定或更改一些其他设置。

    要启动客户端管理控制台,请转到控制面板,从管理工具启动 SoftGrid Client 管理。您可以选择要连接到本地计算机还是连接到远程计算机。

    图 7 显示了客户端管理控制台包含一个根容器和三个子容器的情况。您可以从本机根选项卡上的 SoftGrid 指定大多数的功能参数,包括日志记录目录、应用程序数据目录、客户端运行和显示设置、错误和信息性消息弹出频率、最大缓存大小、虚拟化驱动器、断开与 SoftGrid 服务器的连接时的网络和连接选项,以及权限。

    图 7  客户端管理控制台

    您可以在“应用程序”容器中查看和更改应用程序。“应用程序”容器提供了本地应用程序的状态信息,如应用程序是否正在运行、应用程序是否锁定在缓存中以及应用程序传送到本地缓存的百分比(.sft 文件)。

    通过“文件类型关联”容器,您可以查看、更改和删除文件类型关联。有关详细信息,请参阅上文中介绍的“文件类型关联”。

    通过“桌面设置”容器,您可以指定、更改和手动刷新在安装过程中指定的应用程序服务器设置。在此容器中,您还可以选择在用户登录时是否应刷新客户端(这是默认设置),以及自动刷新间隔的时间长度。

    总结

    使用 Microsoft SoftGrid 进行应用程序虚拟化可以显著改进系统可用性并简化管理。当大量的部件协同工作时,该体系结构实际上可以与 IT 基础结构进行无缝协作。


    最新回复(0)