Меня всегда поражало число технологий, реализованных в инфраструктуре Microsoft. Приходится постоянно выбирать и решать, какие из них смогут решить конкретные задачи (в частности, в области управления и обеспечения деятельности компании).

Как отмечается во врезке «Преимущества виртуализации приложений», благодаря виртуализации операционной системы и недавним усовершенствованиям в области управления клиентами и серверами, развертывать программные продукты стало проще, но проблемы совместимости и управляемости остаются. Виртуализация приложений позволяет запускать приложения локально и экономить ресурсы сервера, устраняет единые точки отказа и снимает ограничения на работу в сети. Решение для виртуализации приложений SoftGrid обеспечивает аналогичную «песочнице» среду под названием SystemGuard, в которой приложения могут выполняться на компьютерах пользователей без локальной установки операционной системы.

Виртуальная среда SystemGuard

SystemGuard — виртуальная прикладная среда, которая содержит все необходимые приложению элементы, такие как файлы, данные реестра, COM-объекты и информация о среде. Совместимые с SoftGrid программы не требуется устанавливать в основной операционной системе, но они взаимодействуют с операционной системой в соответствии с определенными правилами, чтобы избежать излишнего дублирования данных в виртуализованном пространстве.

Как показано на экране 1, приложение взаимодействует с ресурсами, которые представляются ей обычной операционной системой, с полными правами записи и чтения в среде SystemGuard. SystemGuard строго контролируемо взаимодействует с настоящей операционной системой. Информацию о настроечных параметрах можно прочитать, но не изменить. Данные профиля и документов могут быть изменены в операционной системе, которая позволяет сохранять данные и параметры среды между сеансами.

Экран 1. Взаимодействие приложений в среде SystemGuard

Виртуальная среда состоит из нескольких виртуальных элементов для областей операционной системы, используемых приложениями. Если приложение пытается прочитать что-либо из реестра, а данные реестра в виртуальном реестре отсутствуют, запрос чтения передается операционной системе (экран 2). Запросы записи всегда поступают в виртуальный реестр. Тот же самый процесс применяется для виртуальной файловой системы. Например, виртуальный слой гарантирует, что библиотеки DLL, используемые приложением, всегда считываются сначала из среды SystemGuard. Это позволяет избежать конфликтов с локальными версиями. Если приложению необходима служба, то компонент Virtual Services обеспечивает функционирование службы в SystemGuard незаметно для любого другого приложения, выполняемого в операционной системе. Существуют также виртуальные подсистемы для среды COM, .ini-файлов, ресурсов процесса и шрифтов.

Экран 2. Виртуальный реестр SystemGuard и реестр операционной системы

Дополнительные требования к ресурсам

SystemGuard создает меньшую нагрузку на ресурсы, чем может показаться. Помимо дискового пространства для кэширования приложения, которое обычно меньше, чем для локально установленного приложения, виртуализованное приложение потребляет менее чем на 1% больше ресурсов процессора, нежели невиртуализованное приложение. Причина в том, что основная часть дополнительной нагрузки приходится на инициализацию SystemGuard и открывание приложения, а не на этап его выполнения. Кроме того, потребность в памяти при выполнении виртуализованных приложений, как правило, ниже, чем при выполнении обычных.

Занимаемую приложением память можно разделить на выгружаемый пул и невыгружаемый пул. Большинство приложений работают внутри выгружаемого пула памяти. Содержимое выгружаемого пула можно при необходимости записать на диск, а память, используемая виртуализованным приложением, такая же, как для локально установленных программ. Единственное дополнительное требование к памяти — 20 Мбайт для клиента SoftGrid. Невыгружаемый пул используется для важных данных операционной системы, которые нельзя сохранить на диске.

Настроечные данные (например, данные реестра) обычно загружаются в ядро во время начального запуска компьютера. Когда загружаются программы, реестр растет и занимает больше места, что приводит к увеличению времени загрузки (для областей реестра HKEY_LOCAL_MACHINE и HKEY_CLASSES) или процедур регистрации (HKEY_CURRENT_USER).

Для приложений SoftGrid никакие данные в реестр компьютера не записываются. Данные, необходимые для приложения, загружаются по мере необходимости в процессе выполнения. Представьте, что локально установлено 40 программ, но используются только 10: реестр серьезно разрастается после заполнения невыгружаемого пула. При запуске виртуализованных приложений экономится 75% невыгружаемого пула.

Экономятся и ресурсы сетевого канала связи, так как SoftGrid доставляет клиенту виртуализованные приложения и компоненты по требованию. Сначала имеется лишь пиктограмма приложения на рабочем столе клиента. Когда приложение используется, SoftGrid последовательно извлекает компоненты приложения, значительно ускоряя его запуск. Доставляются только нужные компоненты приложения, что экономит место на диске клиента.

Еще одно интересное преимущество состоит в том, что при использовании SoftGrid с серверами терминалов не требуется «терапевтическая перезагрузка». SoftGrid отличается чрезвычайной компактностью при выполнении и аккуратно удаляет «мусор» после закрытия приложения.

Компоненты SoftGrid

Комплекс SoftGrid состоит из пяти основных компонентов, которые позволяют создавать приложения SystemGuard и размещать их на клиентах.

  1. System Center Virtual Application Server. Обеспечивает потоковую передачу SoftGrid-совместимых приложений клиентам и проверяет наличие у клиента прав запуска приложения.
  2. SoftGrid Data Store. Хранит данные о среде SoftGrid.
  3. SoftGrid Management Web Service. Интерфейс между консолью SoftGrid Management Console и хранилищем SoftGrid Data Store. Использует Microsoft .NET Framework 1.1 и более поздние версии. Необходимы Microsoft IIS 5.0 или более поздняя версия и расширения ASP .NET.
  4. SoftGrid Client. Локально установленная служба, выполняемая на компьютере пользователя; взаимодействует с сервером виртуального приложения, чтобы получить потоковое приложение и кэшировать его для использования, даже если клиент не подключен к сети. Клиент также содержит среду SystemGuard для динамического выполнения виртуализованного приложения.
  5. SoftGrid Sequencer. Инструмент на основе мастера, который используется для создания потокового приложения из исходного варианта программы. Этот процесс знаком пользователям таких программ, как WinINSTALL, которая создает .msi-файл на основе процедуры установки приложения. В сущности, преобразование приложения состоит из трех этапов: конфигурирование пакета; установка приложения, в ходе которого мастер отслеживает изменения, вносимые в операционную систему в ходе установки приложения, в том числе изменения в файловой системе, реестре и регистрации компонентов; собственно запуск приложения — важный этап, поскольку при первом использовании SoftGrid определяет приоритет данных для потоковой передачи клиенту в зависимости от того, какие компоненты используются первыми при запуске приложения (компонент, загружаемый в первую очередь, известен как Feature Block 1 — FB1 — потока). Поэтому нет необходимости ждать завершения пересылки перед запуском приложения.

Существуют дополнительные компоненты, интегрированные с решением System Center Configuration Manager (SCCM), которые позволяют использовать SCCM для дистрибуции, а также отдельный клиент для среды типа сервера терминалов (в том числе Citrix). В данной статье недостаточно места для описания этих компонентов, но о них следует знать, если предполагается использовать SCCM или серверы терминалов.

Установка и настройка конфигурации

Первый шаг в использовании SoftGrid — установить компонент System Center Virtual Application Server с умеренными требованиями к аппаратным средствам и программному обеспечению. Хранилище данных можно разместить на SQL Server 2005 или SQL Server 2000, а также на Microsoft SQL Server Desktop Engine (MSDE) в тестовой среде. Хранилище данных не обязательно находится на том же сервере, что и приложение, хотя должно быть в той же локальной сети.

Для комплекса SoftGrid необходима служба каталогов, такая как Active Directory (AD). Достаточно иметь домен Windows NT 4.0, однако маловероятно, что пользователи такой перспективной технологии, как виртуализация приложений, все еще работают с NT 4.0. В процессе установки необходимо указать учетную запись с доступом для чтения к службе каталогов. Также необходимы две глобальные группы, чтобы идентифицировать администраторов и пользователей, работающих со службами SoftGrid. Если доступ к SoftGrid необходим всем пользователям домена, можно ввести группу Domain Users в эту глобальную группу.

SoftGrid можно установить на Windows Server 2003 или Windows 2000 Server. Консоль SoftGrid Management Console функционирует с Windows 2003 или Windows XP при наличии NET Framework 1.1 и консоли Microsoft Management Console (MMC) 3.0, которая входит в состав Windows 2003 R2, а с Web-узла Microsoft можно загрузить ее версии для других операционных систем.

Для компонента SoftGrid System Center Virtual Application Server необходим процессор Pentium III, работающий с тактовой частотой 1 ГГц, память не менее 512 Мбайт и 200 Мбайт пространства на жестком диске. Чем больше приложений подвергается виртуализации, тем больше требуется места на диске. С помощью функций балансировки нагрузки Windows или аппаратных средств балансировки можно управлять нагрузкой нескольких систем SoftGrid Virtual Application Server.

Не следует использовать MSDE для хранилища данных в производственной среде. Возможности восстановления и репликации MSDE ограничены, как и функции управления. Если от нескольких серверов SoftGrid требуется высокая отказоустойчивость, следует использовать службы кластеризации SQL Server и Windows, чтобы устранить единые точки отказа.

В документации по SoftGrid содержатся детальные инструкции по установке. Обязательно прочитайте и выполните требования, относящиеся к созданию учетной записи AD и групп для SoftGrid (экран 3). Чтобы облегчить работу администратора, можно назначить учетной записи AD бессрочный пароль. Однако при этом могут возникнуть проблемы безопасности. Подготовьте процедуру регулярной смены пароля. После этого не составит труда обновлять пароли с использованием параметров Account Authority в консоли управления SoftGrid (экран 4).

Экран 3. Учетные записи в AD и группы для SoftGrid

Экран 4. Обновление пароля учетной записи в AD

В ходе установки пользователь получает запросы для ввода различной информации, в том числе:

  • об устанавливаемых компонентах (в распределенной среде различные серверные компоненты размещаются на нескольких серверах);
  • о выборе между SQL Server и MSDE (необходимо указать сервер базы данных, если используется SQL Server; по умолчанию устанавливается MSDE);
  • об используемой учетной записи AD, в том числе созданных администратором группах разрешений;
  • о пути к хранилищу содержимого приложения (по умолчанию C:Program FilesSoftricitySoftGrid Servercontent).

После завершения установки консоль управления SoftGrid доступна в программной группе Administrative Tools. При первом запуске консоль управления просит указать компьютер SoftGrid, к которому следует подключиться. SoftGrid работает через порт 80 и нуждается в имени службы SoftGrid Management Web Service. Как уже отмечалось, консоль управления никогда не взаимодействует с хранилищем данных напрямую; любые соединения устанавливаются через службу Management Web Service.

Дальнейшее знакомство

Виртуализация приложений — перспективное направление. С помощью SoftGrid несложно без значительных затрат преобразовать приложения в виртуальные. Кроме того, среда SystemGuard обеспечивает одновременное выполнение приложений, устраняя проблемы совместимости. Процесс экспериментальной виртуализации Microsoft Office XP и Office 2003 был гладким и интуитивно понятным. В следующей статье будет рассказано о применении виртуализованных приложений SoftGrid.

Джон Сэвилл (jsavill@windowsitpro.com ) — директор по технической инфраструктуре компании Geniant, имеет сертификаты CISSP, Security and Messaging MCSE для Windows Server 2003 и звание MVP


Преимущества виртуализации приложений

За последние несколько лет в методах управления клиентскими системами и серверами произошли существенные изменения. В прошлом установочные программы размещались на файл-серверах, а администраторы устанавливали приложения вручную или развертывали с использованием сценариев регистрации. В настоящее время стало проще назначать и публиковать приложения на компьютерах с помощью Active Directory (AD) и групповой политики, а Microsoft Systems Management Server (SMS) обеспечивает еще более удачное решение, с более детальной и продуманной процедурой развертывания программного обеспечения и отчетами о выполнении.

Эти технологии упрощают развертывание программ, но остаются проблемы совместимости и управления приложениями. Например, как обновлять приложение? Не нарушится ли функционирование программы после установки другого приложения? Совместимо ли приложение с Vista? При установке приложения его компоненты регистрируются в компьютере; выполняемые файлы, библиотеки DLL и другие файлы копируются в файловую систему; данные записываются в реестр. При обновлении или удалении программ данные остаются. Со временем компьютеры «засоряются» остаточными файлами, фрагментами данных в реестре и зарегистрированными компонентами, что может привести к проблемам совместимости.

В последнее время методы виртуализации стали более эффективными. Традиционно виртуализация операционной системы была полезна в двух основных ситуациях: консолидации и тестирования. В прошлом каждое крупное приложение функционировало на собственном сервере, что приводило к большим затратам как на покупку оборудования, так и на лицензирование. В настоящее время благодаря виртуализации можно запускать несколько операционных систем в «песочницах» на одном физическом сервере. Проблемы совместимости приложений не возникают, так как каждое из нескольких приложений на одном сервере работает со своей виртуальной операционной системой, с собственным жестким диском, реестром, процессором и ресурсами памяти. При тестировании виртуализация позволяет работать нескольким операционным системам (например, Windows XP, Windows 2000 Server, Windows 95 и Vista) на одном компьютере и одновременно запустить несколько экземпляров тестовой среды.

Запуск приложения в виртуальной операционной системе — решение проблем совместимости для одного приложения, но будет ли оно эффективным для десятка приложений? Необходимо принять во внимание дополнительную нагрузку, требования к памяти и месту на диске. Кроме того, необходимо управлять, обновлять и защищать каждый экземпляр операционной системы. Приложения работают в «песочницах» операционной системы, но вся операционная среда также находится в «песочнице», что затрудняет сохранение документов или данных, созданных в приложении, в локальной файловой системе физического компьютера.

Оптимальное решение — виртуализовать приложения, что позволяет локально выполнять каждое приложение на компьютере. Оно отличается от серверной публикации приложений, при которой приложения выполняются на сервере терминалов с выводом данных на компьютеры пользователей. При таком способе единые точки отказа возникают из-за размещения приложений на сервере терминалов. Кроме того, ресурсы тратятся впустую, так как сервер терминалов несет рабочую нагрузку, пока компьютеры пользователей бездействуют. Кроме того, пользователи не могут работать с программами на сервере терминалов в автономном режиме.

Виртуализация приложений устраняет подобные проблемы. Виртуализованное приложение функционирует на компьютере пользователя как обычное, но в защищенной среде, без установки в операционной системе локального компьютера.