.
В этой статье, которая будет состоять из нескольких частей, я расскажу о том, что такое VDI, где ее лучше всего применять, какие технологии используются в VDI и как продукт XenDesktop компании Citrix дополняет подход Microsoft к VDI. В первой части мы остановимся на технологиях, которые на первый взгляд не имеют отношения к VDI. Эти решения для виртуализации настольных систем не входят в состав VDI, но являются важнейшими компонентами в процессе развертывания VDI.
Рабочая среда настольной системы
Наиболее важная сторона использования компьютера — приложения, которые выполняют определенные функции и обрабатывают данные, как локальные, так и хранящиеся на серверах. Операционная система — основной инструмент для исполнения приложений и управления данными. Пользователи часто настраивают свою рабочую среду с помощью специальных фоновых рисунков, экранных заставок, ярлыков и ссылок на избранные веб-страницы. Хотя эти настройки администратору могут показаться не стоящими внимания, пользователи могут часами искать утерянные приложения или данные либо повторно создавать свои ярлыки. Таким образом, поддержка рабочей среды пользователей очень важна.
Три главные части, образующие настройку рабочей среды: пользовательские данные и настройки, приложения и операционная система. Оборудование, на котором установлена операционная система, также имеет огромное значение.
В большинстве рабочих сред эти компоненты тесно переплетены друг с другом. Операционная система устанавливается локально на настольном компьютере пользователя; приложения устанавливаются непосредственно в операционную систему, при этом вносятся изменения в файловую систему, реестр и другие системные компоненты; пользовательские данные и настройки хранятся в локальной файловой системе. Эти уровни часто выглядят так, как показано на рисунке 1; поскольку мы обычно устанавливаем приложения в системе, пользователь настраивает операционную систему и приложения, и у пользователя есть данные, хотя на самом деле как приложения, так и пользовательские данные и настройки привязаны к уровню операционной системы.
Рисунок 1. Типовые уровни настольной системы |
Такая тесная связка создает ряд проблем.
- Из-за хранения данных исключительно на клиентском компьютере возникает риск их потери в связи с выходом из строя или сбоем оборудования, повреждением диска или непреднамеренным удалением. Кроме того, локальные данные будут недоступны с другого компьютера. Эти же проблемы относятся и к пользовательским настройкам и системе.
- Сбой в работе операционной системы или оборудования компьютера требует сложных процедур для восстановления информации и настроек. Необходимо иметь в наличии списки установленных приложений до того, как будет заменено оборудование или переустановлена система, после чего все приложения также должны быть переустановлены.
- Сбой в работе приложения приводит к сложным процессам поиска неисправностей и их устранения, так как необходимо внести изменения в различных частях системы.
- Развертывание приложений и их обновлений может быть очень сложным и требующим длительного времени.
Решение всех перечисленных проблем заключается в виртуализации каждого из уровней, что делает их независимыми друг от друга. Это решение формирует гибкую среду, которую легко разворачивать, поддерживать и можно сделать доступной с любого компьютера.
Желание разделить элементы системы для повышения ее гибкости достаточно общее: во многих продуктах используется модульный принцип построения. Мы покупаем комбинированные системы TV/DVD/видео только для того, чтобы проклинать их, когда ломается видео и мы остаемся без TV и DVD, пока устройство находится в ремонте. Но с отдельными компонентами TV, DVD и видео очень легко заменить один компонент без потери функциональности остальных. Того же самого мы хотим для пользовательских систем — чтобы операционная система, приложения и пользовательские настройки были отдельными блоками, которые собираются в единое целое в зависимости от среды зарегистрировавшегося в системе пользователя. Этой средой может быть локальный рабочий стол, операционная система в среде VDI, сессия в службе терминалов или службе удаленных рабочих столов. Поскольку эти компоненты являются отдельными блоками, отсутствует задержка, связанная с ожиданием их установки или настройки. Компоненты расположены слоями друг над другом для создания полнофункциональной среды настольной системы.
В данной статье мы рассмотрим технологии, которые позволяют разделять эти обычно сильно переплетающиеся уровни для сборки «на лету» конструкции, создающей завершенную рабочую среду настольной системы независимо от того, где зарегистрировался пользователь. На рисунке 2 показан пример такой среды, использующей различные решения.
Рисунок 2. Компоненты виртуализации настольных систем |
Пользовательские данные и настройки
Цель состоит в извлечении настроек и данных пользователя из рабочей среды, так чтобы эти настройки и данные были защищены и доступны независимо от точки подключения пользователя к сети — например, его настольный компьютер, настольный компьютер другого сотрудника, удаленная сессия в системе виртуализации представлений, такой как службы терминалов (службы удаленного рабочего стола), система XenDesktop от Citrix или клиентская операционная система в инфраструктуре VDI. В системе Windows уже давно существуют технологии для абстрагирования пользовательских настроек и данных, но в Windows 7 эти технологии развиты до такого уровня, что они не оказывают негативного влияния на среду пользователя и даже повышают доступность настроек и данных.
Вначале рассмотрим настройки пользователя. У каждого пользователя имеется на компьютере профиль, обычно хранящийся в системе Windows Vista и более поздних версиях в папке C:\Users. Этот профиль состоит из файлов и папок, в том числе файла ntuser.dat, который содержит специфичную для пользователя информацию реестра. Хотя этот файл небольшой, он хранит массу настроек, сделанных пользователем. Профиль также содержит ссылки «Избранное» браузера Интернета, документы, результаты поисковых запросов и другие виды информации. Обсудим их чуть ниже.
Для формирования единообразной среды профиль пользователя должен быть доступен независимо от места подключения пользователя к сети. Таким образом, профиль должен храниться в сети. Эта возможность, называемая «перемещаемый профиль», уже давно доступна в Windows.
В прошлом компании неохотно применяли перемещаемые профили из-за неудобства применения. При завершении сеанса работы с системой профиль пользователя просто выгружался на сетевой ресурс, что приводило к длительным задержкам в процессе завершения. В Windows 7 реализована фоновая синхронизация перемещаемых профилей. Эта возможность по умолчанию отключена, но ее можно включить с помощью групповых политик. Процесс фоновой синхронизации сохраняет профиль пользователя в определенные моменты времени или через определенный интервал. Периодическая синхронизация данных означает, что потребуется меньше времени для завершения сеанса.
Другая причина того, что перемещаемые профили могут вызывать проблемы, состоит в том, что до Windows 7 пользовательские данные являлись частью профиля, а это приводило к образованию очень больших профилей. В действительности перемещаемые профили не разрабатывались с целью репликации данных пользователей. Даже с усовершенствованием Windows 7 пользовательские данные должны быть отделены от профилей — это приводит к вопросу перенаправления папок.
У пользователей имеется несколько мест для хранения данных, например папки «Документы» и «Картинки», которые по умолчанию являются подпапками пользовательского профиля. Если используются перемещаемые профили, эти папки и содержащиеся в них данные реплицируются как часть общего процесса репликации профиля, который, как мы установили, не является оптимальным. Перенаправление папок — это альтернативная технология, которая позволяет настроить размещение стандартных папок в сети. Например, когда пользователь открывает папку «Документы», он в действительности открывает сетевой ресурс, хотя пользователь этого даже не замечает. Перенаправление папок настраивается с помощью групповых политик.
Одним их самых больших изменений в Vista по сравнению с Windows XP стала реструктуризация пользовательского профиля для разделения различных типов данных. При этом число папок, для которых можно настроить перенаправление, возросло с 5 в XP до 13 в Vista, что позволило разделить папки «Документы», «Картинки», «Видео» и «Музыка». В XP «Картинки», «Музыка» и «Видео» являются подпапками папки «Документы», поэтому они следуют за данной папкой при перенаправлении. В Vista, если потребуется, вы можете не настраивать перенаправление папок «Музыка» и «Видео». Перенаправление папок теперь позволяет перенаправить все необходимые пользовательские данные, что делает профиль пользователя очень маленьким и позволяет облегчить синхронизацию оставшихся данных (то есть файла ntuser.dat и некоторых других файлов данных).
Функция «Автономные файлы» (также известная как кэширование на стороне клиента) позволяет хранить локальную копию сетевых данных пользователя на специально настроенных компьютерах, для которых требуется доступ к данным даже при отключении от сети (например, ноутбуки). Автономные файлы синхронизируют изменения в данных на уровне изменений в файлах при восстановлении работы сети. Такая дельта-репликация означает, что реплицируются только измененные части файлов, а не файлы целиком.
Приложения
Когда мы настраиваем компьютер, первое действие, которое мы выполняем после установки операционной системы и обновлений к ней, — это установка приложений, таких как Microsoft Office, бизнес-приложения, модули безопасности и другие виды программ. Установка программ обычно занимает достаточно много времени, так как развертывание и настройка требуют обновлений в файловой системе, добавления параметров реестра и регистрации ресурсов. Как правило, только приложения масштаба организации устанавливаются вместе с развертыванием операционной системы. Приложения, специфичные для подразделений и отдельных пользователей, могут быть установлены при первой регистрации в системе, что вносит дополнительные задержки.
В дополнение к временным задержкам в процессе установки могут возникнуть следующие проблемы.
- Совместимость приложений между собой. Изменения, вносимые в операционную систему приложениями, могут оказаться несовместимыми с другими приложениями и даже с различными версиями тех же самых приложений. Перед развертыванием в производственной среде нового или обновленного приложения необходимо проведение регрессионного тестирования, при этом некоторые комбинации приложений могут оказаться невозможными.
- «Разбухание» операционной системы. При установке каждого нового приложения добавляются новые службы, которые расходуют ресурсы, но не всегда реализуют полезные функции. Вдобавок увеличивается размер реестра, который использует память и приводит к замедлению работы системы. Даже если впоследствии приложения удаляются, их остатки засоряют систему.
- Обновление приложений. Процессы обновления приложений могут сильно отличаться, и это требует значительных усилий при планировании и создании инфраструктуры для развертывания.
Все эти проблемы относятся только к случаю, когда приложения устанавливаются в операционной системе. Представим, что пользователи регистрируются в системе на разных компьютерах, в удаленных сессиях, в среде VDI — и им всем нужны различные приложения. Установка всех приложений, которые когда-либо могут потребоваться пользователям, на всех развернутых операционных системах просто непрактична и может привести к непомерно разбухшим операционным системам, поддержка которых может доставить немало хлопот, так как обновление любого приложения должно быть применено к каждому экземпляру установленной операционной системы. Использование традиционных методов установки программ при регистрации пользователей в разные среды практически невозможно по причине временных задержек, не говоря уже о дополнительных проблемах удаления приложений при завершении работы пользователя.
Одно из решений — это традиционная виртуализация представлений, в которой приложения устанавливаются на терминальных серверах, а затем исполняются на этих серверах, в то время как окно приложения отображается на локальном рабочем столе пользователя. Это решение требует солидной серверной инфраструктуры для размещения исполняемых приложений и не допускает автономного запуска приложений. Кроме того, по-прежнему остается необходимость установки всех приложений на нескольких терминальных серверах. Тем не менее это решение может подойти для некоторых приложений, например таких, которым нужен доступ к большим объемам данных, размещенных в центре обработки данных. Когда такое приложение работает в центре обработки данных в среде виртуализации представления, сетевой трафик при доступе к данным ограничен сетью центра обработки данных, обычно очень быстрой. Запуск того же приложения локально на компьютере пользователя требует передачи всех данных по сети, которая использует значительную часть полосы пропускания и замедляет работу приложения.
Еще одно эффективное решение для приложений — это виртуализация. Существенное различие между виртуализацией приложений и виртуализацией представлений заключается в том, что в первом случае приложения в действительности выполняются в локальном экземпляре операционной системы. И, что более важно, без необходимости установки в локальной операционной системе, благодаря тому что среда виртуализации позволяет приложениям работать без внесения изменений в локальную операционную систему.
Вспомним, что при установке приложений вносятся изменения в файловую систему (то есть в папку C:\Program Files помещаются исполняемые файлы приложения и библиотеки DLL, вносятся изменения в реестр, устанавливаются службы). Виртуализация приложений осуществляется путем перехвата всех этих изменений в системе с помощью особого процесса виртуализации, сериализации, (sequencing, термин из Microsoft App-V), осуществляющего преобразование процедуры установки приложения в двоичный поток, который используется при виртуализации приложения. Эти изменения сохраняются на различных виртуальных уровнях, таких как уровень файловой системы, уровень реестра, уровень служб, шрифтов, компонентов OLE и конфигурации, которые затем могут быть загружены в единую виртуальную среду при запуске приложения. Для самого приложения все эти файлы, реестр и службы выглядят как часть локально установленной операционной системы, но в действительности приложение имеет дело с виртуальными уровнями, которые ему предоставляет среда виртуализации приложений. Никаких изменений в локально установленную систему не вносится.
На рисунке 3 показаны уровни виртуализации приложения. Заметим, что, хотя приложения не могут записывать в операционную систему ничего, кроме пользовательских настроек и данных, они могут считывать информацию из локальной системы.
Рисунок 3. Уровни виртуализации приложений |
App-V — это решение Microsoft по виртуализации приложений. По умолчанию App-V работает как потоковая технология. При первом запуске виртуализованного приложения клиент App-V подключается к потоковому серверу App-V, который посылает клиенту часть двоичного потока приложения, необходимую для начального запуска. Эта часть двоичного потока называется основным функциональным блоком (Feature Block 1) и обычно составляет от 10 до 20% общего двоичного потока. Данная часть доставляется клиенту очень быстро — для Office 2010 интервал между щелчком пользователя по значку приложения и запуском окна приложения составляет около трех секунд.
Процесс виртуализации приложения в App-V определяет, что необходимо поместить в основной функциональный блок, с помощью действительного запуска приложения при его виртуализации на этапе сериализации (sequencing) и мониторинга необходимых частей потока. Все требуемые элементы помещаются в основной функциональный блок, а оставшаяся часть — в дополнительный функциональный блок (Feature Block 2). После запуска приложения дополнительный функциональный блок передается клиенту в фоновом режиме. Двоичный поток кэшируется в локальной клиентской операционной системе, таким образом, если приложение запускается вновь, поток повторно по сети не передается.
Хотя я упомянул, что виртуализация приложения не вносит изменений в локальную операционную систему, очевидно, что она кэширует в системе поток данных. Однако поток кэшируется в одном файле в профиле All Users, и этот единственный кэш-файл разделяется между всеми пользователями и приложениями. Приложения больше ничего не записывают в файловую систему и не вносят никаких изменений в настройки системы или в реестр. Этот кэш также делает виртуализованное приложение доступным, даже если компьютер не в сети. В среде VDI мы можем разместить данный кэш на сетевом ресурсе, чтобы он был общим для всех клиентских виртуальных машин среды VDI. Такой подход избавляет от необходимости иметь для каждого клиента собственный кэш App-V, что позволяет экономить место на диске и ускоряет начальный запуск приложения.
Поток — это способ доставки приложений в технологии App-V (по умолчанию). Однако App-V поддерживает также создание файла MSI, который содержит полный поток для других технологий развертывания, таких как групповые политики и Microsoft System Center Configuration Manager (SCCM) 2007 R2. Для доставки потока App-V можно даже использовать традиционные сетевые общие папки и службы Microsoft IIS. Для различных организационных и инфраструктурных задач доступно множество вариантов.
Заметим, что такие базовые операции, как вырезание и вставка, связывание и внедрение объектов (OLE), по-прежнему работают между виртуализованными приложениями, но для более глубокой интеграции можно создать зависимости между ними. Так называемое формирование динамических пакетов Dynamic Suite Composition позволяет отдельным виртуализованным приложениям взаимодействовать друг с другом.
Виртуализация приложений позволяет решить несколько проблем развертывания, примеры приведены ниже.
- Приложения могут быть быстро развернуты для каждого пользователя и в реальном времени, что позволяет администраторам распространять приложения на настольные системы так, как требуется.
- Проблемы совместимости между приложениями решены, так как отдельные виртуализованные приложения «не видят» друг друга. Приложения имеют собственные виртуальные файловые системы, реестры и т. д. Такая изоляция также избавляет от необходимости регрессионного тестирования при запуске новых или обновленных приложений.
- Установка обновлений становится очень простой. Виртуализованное приложение обновляется только один раз. App-V передает изменения в поток для всех клиентов, без каких-либо действий со стороны пользователей.
- Операционная система не разбухает, так как приложения не устанавливаются в локальной операционной системе.
Операционная система
Организации, осуществляющие переход на Windows 7, могут столкнуться с проблемой совместимости приложений. Если нет новой версии приложения, совместимой с Windows 7, или аналогичного продукта, то в качестве варианта можно использовать виртуализацию операционной системы. На этот случай существует несколько подходов.
В Windows 7 реализована технология Windows XP Mode, которая позволяет исполнять приложения, не совместимые с Windows 7, в локальной виртуальной машине с системой XP. Окно приложения отображается на рабочем столе пользователя в Windows 7, незаметно для пользователя. В этом случае в среде Windows 7 исполняется отдельный экземпляр предыдущей версии операционной системы, которым необходимо управлять. Технология виртуализации корпоративных настольных систем Microsoft Enterprise Desktop Virtualization (MED-V) от Microsoft, являющаяся частью пакета оптимизации настольных систем Microsoft Desktop Optimization Pack (MDOP), упрощает этот процесс за счет как распределения и обновления виртуальных машин XP, так и управления ярлыками на рабочих столах и ссылками URL для обозревателя Internet Explorer (IE) 6.0. Такой подход обеспечивает и решение проблемы совместимости обозревателя IE в Windows 7.
Еще один подход к виртуализации клиента — виртуализация всей настольной операционной системы пользователя в центре обработки данных и предоставление локальному клиенту удаленного подключения к клиентским операционным системам, размещенным в центре обработки данных. Этот локальный клиент может быть «тонким» устройством, устаревшим компьютером с Windows Fundamentals (операционной системой на основе Windows, разработанной для тех, кто использует старые компьютеры и операционные системы), а также любым другим устройством или операционной системой, поддерживающей протокол RDP (в случае однородного решения на платформе Microsoft). Достоинство этого подхода заключается в том, что, поскольку рабочая среда пользователя полностью размещена в центре обработки данных, конфиденциальные данные в действительности никогда не покидают пределы центра обработки данных. Кроме того, рабочий стол доступен пользователю независимо от того, откуда он подключается к сети, в том числе при подключении с домашнего компьютера. Эти решения также очень эффективны при планировании восстановления после сбоев.
Собираем все вместе
Когда пользователь впервые регистрируется в новой операционной системе, либо в локальной настольной системе, либо в сессии служб терминалов, либо в клиентской операционной системе, размещенной в среде VDI, выполняются следующие действия.
- Пользователь регистрируется в системе с учетной записью службы каталогов Active Directory (AD).
- После успешной проверки подлинности создаются те части профиля, которые не абстрагированы с помощью перенаправления папок; этот минимальный объем информации загружается очень быстро. Затем в дополнение к перенаправлению папок производятся настройки пользователя в локальной сессии. Таким образом, пользователю становятся доступны все его данные, избранные ссылки и т. д.
- Клиент App-V подключается к серверу управления App-V для определения набора приложений, которые применяются к зарегистрировавшемуся в системе пользователю, и создает все ярлыки на рабочем столе и в главном меню, а также настраивает привязку системы к соответствующим типам файлов.
- Теперь у пользователя имеется полнофункциональная рабочая среда и он может немедленно запускать приложения и использовать данные.
Виртуализация настольных систем и инфраструктура VDI — не одно и то же. VDI усиливает технологии виртуализации настольных систем для возможности размещения клиентских операционных систем в центре обработки данных. Хотя VDI может оказаться наилучшим решением для некоторых компаний, любая настольная среда может получить выигрыш от той или иной формы виртуализации настольных систем — от виртуализации приложений, виртуализации пользовательских настроек или виртуализации операционной системы. При планировании архитектуры настольных систем, особенно на базе Windows 7, обязательно рассмотрите виртуализацию настольной системы как часть этой архитектуры. Дополнительная предварительная работа позволяет получить преимущества в долгосрочной перспективе. Виртуализация настольных систем не только обеспечивает динамичную и гибкую среду, но и сокращает расходы на инфраструктуру и управление.
Джон Сэвилл (jsavill@windowsitpro.com) — директор по технической инфраструктуре компании Geniant, имеет сертификаты CISSP, Security and Messaging MCSE для Windows Server 2003 и звание MVP