Использование SoftGrid для поддержки использования конфликтующих приложений в среде службы терминалов — часть 2

Опубликовано: 24 Апреля, 2023

В первой части этой серии статей я объяснил, что Microsoft SoftGrid можно использовать для одновременного запуска несовместимых приложений на общем сервере. В этой статье я продолжу обсуждение, объяснив, как SoftGrid работает в среде службы терминалов.

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

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

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

Благодаря тому, как работает SystemGuard, каждое виртуализированное приложение имеет собственную копию виртуализированных компонентов операционной системы. Это означает, что каждое приложение может свободно вносить изменения в свою виртуальную операционную среду по мере необходимости, не беспокоясь о влиянии на другие приложения или операционную систему Windows.

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

Файловая система

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

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

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

Чтобы выполнить эту частичную изоляцию, виртуализируются только те части операционной системы Windows, которые непосредственно связаны с запуском приложения. В частности, это означает, что виртуальная файловая система содержит реестр Windows, INI-файлы, DLL-файлы, профили пользователей и т. д.

Когда виртуализированному приложению требуется доступ к жесткому диску, SystemGuard направляет запрос в виртуальную файловую систему. Если в виртуальной файловой системе нет необходимой информации, SystemGuard перенаправляет запрос в реальную файловую систему сервера.

Реестр

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

Дело в том, что было бы очень плохой идеей виртуализировать весь реестр Windows. Во-первых, реестр большой, и виртуализация всего этого потребует много системных ресурсов. Что еще более важно, изменение реестра, сделанное на уровне операционной системы, не будет распознано виртуальным реестром и потенциально может привести к серьезным несоответствиям. Предположим, вы решили переименовать сервер, новое имя будет применено к реестру сервера, но изменение не будет применено к виртуальным реестрам, потому что Windows даже не знает об их существовании. Поэтому приложения по-прежнему будут видеть старое имя сервера.

Чтобы избежать подобных проблем, виртуализируется только часть реестра. Когда виртуализированному приложению необходимо прочитать что-то из реестра, оно сначала пробует виртуальную копию. Если запрошенный раздел реестра существует в виртуализированной копии реестра, то этот раздел считывается. В противном случае SystemGuard перенаправляет запрос в реальный реестр сервера.

Переносимость приложений

Возможно, самое интересное в том, как работает SoftGrid, заключается в том, что он позволяет приложениям быть по-настоящему переносимыми. Уже много лет приложения тесно интегрированы в операционную систему Windows. Помимо записи исполняемых файлов на жесткий диск, приложения устанавливают такие элементы, как записи реестра, файлы DLL и записи файлов INI. Фактически, некоторые приложения (например, некоторые продукты Symantec) настолько тесно связаны с операционной системой, что удалить их вручную практически невозможно.

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

Отличительной особенностью SoftGrid является то, что он возвращает этот тип простоты (хотя и немного по-другому). Приложения упаковываются вместе с виртуальными копиями всех компонентов операционной системы, от которых они зависят. Это означает, что можно переместить приложение с одного сервера на другой, не выполняя сложную процедуру удаления/переустановки.

Другая причина, по которой SoftGrid позволяет приложениям быть переносимыми, заключается в том, что SoftGrid интегрирован в Active Directory. Когда администратору необходимо установить приложение на сервер, ему не нужно устанавливать приложение, он назначает его. SoftGrid оснащен веб-интерфейсом, который позволяет публиковать приложения на ваших терминальных серверах, управлять лицензиями и т. д. Если позднее вы решите, что вам нужно удалить приложение с вашего терминального сервера, вы можете просто использовать консоль управления. чтобы отключить приложение. Нет необходимости удалять его, потому что на самом деле он никогда не был «установлен».

Вывод

В этой серии статей я объяснил, что серверы терминалов часто используются недостаточно, поскольку несовместимость приложений иногда делает невозможным запуск всех необходимых приложений на одном сервере терминалов. Однако новый продукт Microsoft под названием SoftGrid использует виртуализацию приложений, чтобы сделать возможным запуск конфликтующих приложений на одном терминальном сервере. Если вы хотите узнать больше о SoftGrid, вы можете посетить веб-сайт Microsoft SoftGrid по адресу: http://www.softricity.com/index.asp.

Использование SoftGrid для поддержки использования конфликтующих приложений в среде службы терминалов — часть 1.