Виртуализация


Доставка приложений
Усложнение программных решений, их многообразие и развитие технологий передачи данных привели к формированию проблемы доставки приложения до конечного пользователя. Популяризация информационных технологий, безусловно, началась с концепции персональных компьютеров. Проблемы доставки приложений, как таковой не существовало, поскольку изначально ПК подразумевал только один способ их размещения - локально.
В настоящее время, любой постоянный пользователь ПК может назвать ряд сервисов и решений, используемых им и не являющимися при этом локальными (почта, ICQ, веб - решения, удаленные хранилища данных и т.п.).
В данной лекции мы рассмотрим вопрос доставки приложений до конечного пользователя и технологии виртуализации, как один из способов.
Способы доставки приложений
Множество программных продуктов и решений доставки приложений до конечного пользователя можно разделить, в зависимости от подхода к решению на:
Решения, основанные на терминальном доступе.
Веб - решения.
Решения виртуализации.
В данной лекции мы рассмотрим особенности каждого из способов, а также наиболее распространенные сценарии их использования.
Терминальный доступ
Данный способ является наиболее "старым". До того, как компьютеры стали персональными, архитектура любого приложения предполагала наличие мэйнфрейма (высокопроизводительный компьютер со значительным объемом оперативной и внешней памяти) и управляемых им устройств -терминалов.
Таким образом, схема терминального доступа выглядит следующим образом: все вычислительные задачи выполняются на мощном удаленном компьютере (терминальном сервере), при этом пользователь взаимодействует с сервером посредством терминала (удаленной консоли).
Преимущества терминального доступа:
Снижение затрат на содержание рабочих станций в сети. Достигается за счет ряда особенностей: во-первых, в качестве терминалов могут быть использованы устаревшие, по текущим меркам, компьютеры, в случае приобретения специализированных терминалов, стоимость сопровождения их также будет меньше стоимости сопровождения ПК. Во - вторых, установка и развертывание терминалов требует меньшего количества времени.
Снижение затрат на содержание серверов. Реализация данного преимущества зависит от используемой компанией аппаратно - программной конфигурации. В общем случае, можно отметить, что поскольку фактически данные хранятся и обрабатываются на сервере, соответственно уменьшаются и объемы передаваемых данных, снижая стоимость каналов связи и дисковых подсистем серверов.
Снижение затрат на программное обеспечение. Достигается за счет упрощенных процесса сопровождения ПО и возможности отслеживать использование лицензионного ПО.
Более высокий уровень безопасности. При терминальном доступе данные не выходят за пределы сервера.
Простота масштабирования информационных решений. Обеспечивается за счет параллельного использования нескольких серверов (балансировка нагрузки при работе с данными и приложениями).
В качестве недостатков решений терминального доступа можно выделить следующее:
Необходимость обеспечения бесперебойной работы терминального сервера.
Высокие требования к аппаратному обеспечению сервера. Чем больше пользователей, тем выше требования и, соответственно, цена сервера.
Пиковые нагрузки сервера будут замедлять работу всех терминалов без исключения.
Веб - приложения
Частично, функционирование веб - приложения напоминает терминальный доступ. Также имеется клиент и сервер. Сервером приложения при этом, очевидно, является удаленный веб - сервер, а клиентом - браузер.
Веб - приложение состоит из клиентской и серверной частей.
На стороне клиента реализован пользовательский интерфейс, формируются и передаются серверу запросы, обрабатывается результат.
На стороне сервера осуществляется хранение и обработка информации, формирование веб - страницы и возврат ее клиенту.
Преимущества веб - приложений:
Приложение не зависит от операционной системы клиента и его программного обеспечения. Обязательно только наличие соответствующего браузера и подключения к глобальной сети. Отсутствует проблема совместимости различных версий программного решения.
Мобильность. Развитие Интернета, мобильной связи, беспроводных технологий, в совокупности с многообразием соответствующих устройств позволяет, фактически, всегда быть не только "на связи", но и обеспечивают возможность работы при отсутствии фиксированного рабочего места.
Требования к ресурсам. Большинство вычислений выполняется на стороне сервера, поэтому необходимый минимум аппаратного и программного обеспечений определяется соответствующими требованиями браузера и операционной системы.
Аппаратная архитектура приложения (иногда и логика) скрыты от пользователя. Кроме того все вопросы администрирования и сопровождения приложения решаются поставщиком.
Недостатки веб - приложений:
Стоимость, доступность и качество связи. Как ни дико это звучит в настоящее время, в определенных местах и регионах стоимость трафика и "ширина" каналов связи оставляют желать лучшего.
Возможности браузеров. Ряд специализированных приложений в настоящий момент не могут быть перенесены на веб - основу. В частности, построение сложных 3D моделей.
Безопасность. В случае, если вы пользуетесь услугами стороннего поставщика веб - приложений, это означает, что ваши персональные данные и т.п. информация хранятся у поставщика, соответственно их сохранность целиком зависит от него.
Виртуализация
В основе технологии виртуализации лежит отделение представления от реализации. Иными словами, пользователь имеет дело с представлением решения, в то время как реальная архитектура:
скрыта от него
может иметь совершенно иную, отличную от представления структуру.
Впервые технология виртуализация была применена компанией IBM в 1960х. При этом виртуализация использовалась для логического разделения ресурсов ЭВМ на несколько виртуальных машин (программная система эмулирующая аппаратное обеспечение). В виртуальной машине ни один процесс не может монопольно использовать ресурс, таким образом все системные ресурсы считаются ресурсами совместного использования.
Более научное определение виртуализации - изоляция вычислительных процессов и ресурсов друг от друга.
Появление x86 технологий приостановило развитие виртуализации, т.к. изначально данная архитектура не была предназначена для нее. Однако, последующий рост производительности персональных компьютеров позволил вернуться к "старым" разработкам.
В частности, одной из причин невозможности использования виртуализации на x86 были, с одной стороны, особенности использования аппаратных устройств, таких, как видеоадаптер, дисковые контроллеры и т.д. (они проектировались для монопольного использования одной ОС). Позднее эта проблема была решена при помощи эмуляции устройств.
Использование виртуализации на x86 платформах началось в конце 1990х с виртуализации рабочих станций. Поскольку росло количество используемых клиентских операционных систем, программных продуктов и т.п. возникла необходимость в поддержке нескольких версий программной архитектуры на одном рабочем месте.
Виртуализация серверной инфраструктуры стала применяться несколько позднее и, в свою очередь, была связана с решением задач консолидации вычислительных ресурсов.
Формирование спроса на решения виртуализации для корпоративных систем пришлось на середину 2000х. Таким образом акцент с решений исполнения виртуальных машин сместился на решения управления виртуальной инфраструктурой.
Подводя итог обозначим основные сценарии использования решений виртуализации:
разработка, отладка и тестирование ПО;
моделирование реальных ИТ - сред в исследовательских и аналитических целях;
консолидация серверов для задач повышения производительности оборудования и поддержки унаследованных приложений;
развертывание прикладного решения в условия реальной ИТ - среды;
использование разнородных ОС на одном ПК.
Подробнее о технологиях, принципах и особенностях виртуализации будет рассказано в последующих лекциях.
Термины
Терминальный сервер - сервер, предоставляющий клиентам вычислительные ресурсы для решения задач.
Клиент - сервер - ИТ - архитектура, предполагающая разделение заданий между поставщиками услуг (серверами) и конечными потребителями (клиентами).
Веб - приложение - клиент - серверное программное решение, предназначенное для выполнения на веб - серверах.
Виртуализация - представление набора вычислительных ресурсов, в виде логического объединения, обладающего рядом преимуществ по сравнению с фактической конфигурацией.
Мэйнфрейм - высокопроизводительный компьютер, предназначенный для организации хранилищ данных и выполнения значительных вычислительных операций. Иногда, под этим термином понимают компьютер архитектуры IBM System серий 360, 370, 390.
Виртуальная машина - программная (-аппаратная) система, эмулирующая аппаратное обеспечение определенной платформы.
Краткие итоги
Вопрос доставки приложений может быть решен различными путями и виртуализация, хотя и является одним из возможных решений, как концепция создавалась для других задач. Как и в случае с иными разработками постепенно повышающаяся компьютерная грамотность общества и расширение областей применения ИТ внесли свои коррективы.
Представленные в данной лекции способы доставки приложений не являются исчерпывающими, более того, уже сейчас формируется тенденция к созданию объединенных решений, особенно на стыке веб - технологии и виртуализации (Cloud Computing). Подробнее об этом будет рассказано в одной из заключительных лекций.
Концепция виртуализации ИТ - инфраструктуры
Интерес к виртуализации возникший в последнее время, объясняется довольно просто - произошла смена парадигмы, один сервер больше не означает "одно приложение". На смену устоявшимся представлениям пришла идея множества приложений на одном физическом сервере, функционирующие в режиме SMP (симметричного мультипроцессинга). Во многом это стало возможным благодаря увеличению вычислительных мощностей при отставании роста нагрузки приложений.
SMP предполагает, что вычислительные ресурсы организуются в пулы. Ресурсы можно добавлять в пулы, выводить из них и делить между несколькими приложениями, консолидируя множество приложений на одном сервере.
Далее, в текущей лекции, будет приведено описание различных типов виртуализации. Отметим, что, как правило, под виртуализацией понимают преобразование аппаратного обеспечения в программное. Т.е. несколько виртуальных машин используют общие аппаратные ресурсы. Общий подход к виртуализации заключается в установке программного слоя либо в операционную систему, либо в аппаратное обеспечение компьютера. Установленный программный слой используется для создания виртуальных машин, распределения аппаратных ресурсов и т.д.
В свою очередь, виртуальная машина является частью более масштабного решения - виртуальной инфраструктуры, представляющей собой динамическое распределение физических ресурсов, в зависимости от потребностей пользователей. Если виртуальная машина использует ресурсы конкретного компьютера, на котором функционирует, то виртуальная инфраструктура использует физические ресурсы всей ИТ-среды.
Преимущества использования виртуальных машин
Какими бы техническими "изюминками" не обладало решение, его эффективность и целесообразность использования определяются обеспечиваемым им функционалом и преимуществами, по сравнению с иными способами решения тех же задач. Рассмотрим основные преимущества виртуализации:
виртуальная машина работает под управлением гостевых операционных систем и содержит все стандартные компоненты компьютера, а значит виртуальная машина полностью совместима со стандартными операционными системами, программным обеспечением и т.д.;
в рамках виртуальной машины можно работать с устаревшими программными решениями и операционными системами;
возможность создать защищенные пользовательские окружения для работы с сетью, в этом случае вирусные атаки могут нанести вред операционной системе, а не виртуальной машине;
несколько виртуальных машин, развернутых на физических ресурсах одного компьютера, изолированы друг от друга, таким образом, сбой одной из виртуальных машин не повлияет на доступность и работоспособность сервисов и приложений других;
поскольку каждая виртуальная машина представляет собой программный контейнер, то она может быть перенесена или скопирована, как и любой иной файл;
виртуальные машины не зависят от аппаратного обеспечения, на котором функционируют в том смысле, что в качестве значений параметров виртуальной машины, таких как оперативная память, процессор и т.п., можно указать значения и типы, отличающиеся от реальной физической конфигурации компьютера;
виртуальные машины идеально подходят для процессов обучения и переподготовки, поскольку позволяют развернуть требуемую платформу вне зависимости от параметров и программного обеспечения хоста (физического компьютера, на котором функционирует виртуальная машина);
возможность сохранения состояния виртуальной машины позволяет быстро вернуться к точке до внесения изменений в систему;
в рамках одной гостевой операционной системы может быть развернуто несколько виртуальных машин, объединенных в сеть и взаимодействующих между собой;
виртуальные машины могут создавать представления устройств, которых физически нет (эмуляция устройств).
Недостатки использования виртуальных машин
Несмотря на то, что большая часть недостатков виртуальных машин разрешима, нельзя не упомянуть о них:
обеспечение единовременной работы нескольких виртуальных машин потребует достаточного количества аппаратных мощностей;
в зависимости от используемого решения, операционная система виртуальной машины может работать медленнее, чем на "чистом" аналогичном аппаратном обеспечении;
различные платформы виртуализации не поддерживают виртуализацию всего аппаратного обеспечения и интерфейсов.
Типы виртуализации.
Рассмотрим основные типы виртуализации различных компонент ИТ - инфраструктуры.
Виртуализация операционной системы.
Является наиболее распространенной в данный момент формой виртуализации. Виртуальная операционная система (виртуальная машина) представляет собой, как правило, совмещение нескольких операционных систем, функционирующих на одной аппаратной основе. Каждая из виртуальных машин управляется отдельно при помощи VMM (Virtual Machine Manager). Лидерами в области поставок решений для виртуализации информационных систем являются Microsoft, AMD, Intel и VMware.
Виртуализация серверов приложений.
Под данным процессом виртуализации понимают процесс интеллектуальной балансировки нагрузки. Балансировщик нагрузки управляет несколькими веб - серверами и приложениями, как единой системой, пользователь, при этом, "видит" только один сервер, который, фактически, предоставляет функционал нескольких серверов.
Виртуализация приложений.
Под виртуализацией приложений следует понимать использование программных решений в рамках изолированной виртуальной среды (более подробно виртуализация приложений будет рассмотрена в последующих лекциях).
Виртуализация сети.
Представляет собой объединение аппаратных и программных ресурсов в единую виртуальную сеть. Выделяют внутреннюю виртуализацию сети - создающую виртуальную сеть между виртуальными машинами одной системы, и внешнюю - объединяющую несколько сетей в одну виртуальную.
Виртуализация аппаратного обеспечения.
В данном случае виртуализация заключается в разбиении компонент аппаратного обеспечения на сегменты, управляемые отдельно друг от друга. В некоторых случаях, виртуализация операционных систем невозможна без виртуализации аппаратного обеспечения.
Виртуализация систем хранения.
В свою очередь делится на два типа: виртуализацию блоков и виртуализацию файлов.
Виртуализация файлов, как правило используется в системах хранения, при этом ведутся записи о том, какие файлы и каталоги находятся на определенных носителях. Виртуализация файлов отделяет статичный указатель нахождения виртуального файла (C:\, к примеру) от его физического местоположения. Т.е. при запросе пользователем файла C:\file.doc решение виртуализации файлов отправит запрос к месту реального размещения файла.
Виртуализация блоков. Используется в сетях распределенного хранения данных. Сервера - хранилища данных используют RAID - технологию. iSCSI интерфейс также использует блочную виртуализацию, позволяя операционной системе распределить виртуальное блочное устройство. Более подробную информацию о виртуализации систем хранения см. в п.№4 списка источников для самостоятельного изучения.
Виртуализация сервисов.
По своей сути, виртуализация сервисов является объединением всех вышеуказанных типов виртуализации. Решение виртуализации сервисов позволяет работать с приложением вне зависимости от физического расположения его частей, объединяя и управляя их взаимодействием.
Приведенная выше типология рассматривает виртуализацию, в зависимости от части ИТ - инфраструктуры, в которой она применяется. Подходы к созданию интерфейсов между виртуальными машинами и системами виртуализации ресурсов также можно разделить на следующие типы:
Полная виртуализация - технология, которая обеспечивает полную симуляцию базового оборудования, гостевая операционная система остается в нетронутом виде.
Аппаратная виртуализация - технология, позволяющая запускать на одном компьютере (хосте) несколько экземпляров операционных систем (гостевых операционных систем). При этом гостевые ОС независимы друг от друга и от аппаратной платформы.
Аппаратная виртуализация представляет собой набор инструкций, облегчающих выполнение операций на аппаратном уровне, которое до этого могли выполняться только программно, при этом затрачиваются дополнительные программные ресурсы.
Паравиртуализация - техника виртуализации, при которой гостевые операционные системы подготавливаются для исполнения в виртуализированной среде, для этих целей в ядро ОС вносят незначительные изменения. Для взаимодействия с гостевой операционной системой используется API - интерфейс.
Виртуализация серверов. Сравнительное описание подходов.
Существует два основных подхода к виртуализации серверов: на одном сервере (на базе хоста), либо виртуализация операционной системы. Особенности подходов приведены ниже.
Виртуализация на базе хоста, или полная виртуализация, обладает следующими особенностями:
возможность консолидации унаследованных серверов.
не поддерживается изоляция аппаратных средств.
при интенсивных вычислительных операциях производительность заметно падает.
Виртуализация на базе хоста, или паравиртуализация, обладает следующими особенностями :ограниченная поддержка ОС.
не поддерживает поддержку унаследованных ОС.
Особенности виртуализации на базе хоста, или аппаратной виртуализации :реализация требует аппаратного обеспечения, поддерживающего Intel VT или AMD-V.
сетевые и дисковые операции ввода\вывода осуществляются, практически, с эффективностью, обеспечиваемой исходным оборудованием.
Виртуализация операционной системы:
применяется на серверах, требующих полной изоляции и высокой степени консолидации.
преимущества различных решений виртуализации для бизнеса.
параллельная работа нескольких ОС на одном сервере не поддерживается.
имеется мало инструментальных средств корпоративного управления, в отличие от решений на базе виртуализации хоста.
Сценарии применения решений виртуализации
Рассмотрим типовые решения использования серверной виртуализации:
Консолидация. Виртуализация позволяет снизить количество физических серверов, а соответственно, и издержки на их техническое обслуживание. Кроме того, это ведет к упрощению ИТ - инфраструктуры, а значит к ее большей управляемости и гибкости.
Тестирование и разработка. Как уже отмечалось ранее, использование решений виртуализации позволяет ИТ - администраторам в короткие сроки разворачивать макет ИТ - инфраструктуры для целей тестирования. При чем это не потребует приобретения дополнительного оборудования, или перестройки уже имеющейся и функционирующей на предприятии ИТ - инфраструктуры.
Центр обработки данных. Виртуализация серверов позволяет обеспечить высокую степень адаптивности ИТ - инфраструктуры к меняющимся требованиям бизнеса. Благодаря возможности переноса виртуальных машин с одного сервера на другой, можно осуществлять динамическую балансировку нагрузки
Обеспечение отказоустойчивости сервисов. В случае сбоя физического сервера, обеспечивающего доступность и работоспособность сервисов посредством виртуальных машин, эти машины могут быть оперативно перенесены на базу другого физического сервера. Таким образом, время простоя сервисов из - за неисправностей, и по иным причинам, минимально.
Виртуализация рабочих станций
Виртуализация рабочих станций подразумевает выделение различных вычислительных уровней и хранение их в центрах обработки данных, таким образом, пользователи могут получить доступ к приложениям и данным по сети при минимальных рисках потери.
Сценариев использования виртуализации рабочих станций множество, все зависит исключительно от потребностей бизнеса. Если обобщить возможные варианты использования виртуализации рабочих станций, то можно выделить следующие цели:
Обеспечение мобильности сотрудников. Виртуализация может обеспечить работу с приложениями без их установки, предоставляя доступ к данным как интерактивном, так и в автономном режимах.
Обеспечение доступности приложений. Сотрудники фирмы могут использовать необходимые сервисы и приложения при наличии одного только подключения к Интернету. Отсутствует необходимость в привязке сотрудника к одному конкретному рабочему месту, для обеспечения выполняемых им функций.
Защита интеллектуальной собственности. В случае, когда необходимо предоставить сотрудникам, партнерам или заказчикам конфиденциальную информацию, то для обеспечения ее сохранности, и управляемого доступа к ней, может быть использована инфраструктура виртуальных рабочих столов.
Преимущества решений виртуализации для бизнеса
Учитывая все вышесказанное можно выделить ряд положительных, с точки зрения бизнеса, моментов, обеспечиваемых использованием решений виртуализации:
обеспечение SMP - совместного использования пула ресурсов несколькими приложениями одновременно.
живая миграция - приложение может быть перенесено с одной группы ресурсов на другую без приостановления его функционирования.
оперативное развертывание дополнительных рабочих станций и серверов для тестирования, отладки и обновления имеющихся решений.
возможность добавлять и изымать ИТ - ресурсы из пула без необходимости остановки работ.
повышение устойчивости приложений.
балансировка используемых ресурсов.
сокращение энергопотребления за счет оптимизации, используемых ресурсов
Термины
SMP - симметричное мультипроцессирование - архитектура многопроцессорных компьютеров, в которой несколько одинаковых процессоров подключаются к общей памяти. SMP позволяет процессору работать с данными вне зависимости от места их расположения, при наличии соответствующего программного обеспечения задачи могут перемещаться между процессорами для обеспечения оптимального распределения нагрузки.
Консолидация приложений - процесс размещения нескольких приложений на одном физическом сервере (хосте).
Гостевая операционная система - операционная система виртуальной машины. На одном физическом хосте может быть одна хостовая операционная система и несколько гостевых.
VMM (Virtual Machine Manager) - тип приложений, разработанный для управления виртуальными машинами.
Полная виртуализация - технология полного симулирования базового оборудования.
Паравиртуализация - техника виртуализации, при которой гостевые операционные системы подготавливаются для работы в виртуальной среде путем внесения модификаций в их ядро.
Аппаратная виртуализация - технология, позволяющая запускать на одном компьютере (хосте) несколько виртуальных машин.
Балансировка нагрузки - распределение выполнения вычислительных задач между несколькими серверами с целью оптимизации использования ресурсов и сокращения времени исполнения.
Тонкий клиент - программное обеспечение в сетях с клиент - серверной архитектурой, используется для взаимодействия с сервером, как правило, не несет никакой вычислительной нагрузки.
Краткие итоги
Технология виртуализации является естественным ответом на всевозрастающее многообразие программных решений, их усложнение и, как следствие, постоянно меняющихся требований к аппаратной части и ИТ - инфраструктуре в целом.
В настоящее время, под виртуализацией, как правило, понимают процесс использования нескольких виртуальных машин, в зависимости от круга решаемых задач и потребностей бизнеса. Но это лишь малая часть потенциала технологий виртуализации. Уже кажется вполне реальным подход к формированию виртуальной ИТ - инфраструктуры.
Сложно усмотреть существенные недостатки в подобном подходе, который помимо гибкости, масштабируемости и надежности также обещает простоту в управлении и сокращение издержек. Пожалуй, единственным сдерживающим фактором может быть недостаток квалифицированного персонала для формирования и сопровождения подобной инфраструктуры.
Отметим, что без развития технологий виртуализации не был бы возможен и переход к "облакам", что будет описано позже, в рамках данного курса.
Мы рассмотрели в рамках текущей лекции концепцию виртуализации, ее типы, преимущества и недостатки различных подходов, а также многообразие сценариев использования решений виртуализации. Важным представляется следующий вывод: виртуализация сегодня, это уже не просто интересная тема и альтернативная возможность организации работы; виртуализация - уже совершенный "шаг", переход от классической инфраструктуры к виртуализированной уже осуществлен с концептуальной и технологической точек зрения и большего преимущества смогут добиться те, кто раньше остальных осуществит переход фактический.
Виртуализация серверов
В рамках данной лекции будут рассмотрены следующие вопросы: Особенности виртуализации серверов. Виртуальные машины. Гипервизоры. Определения. Типы. Список материалов для самостоятельного изучения.

Содержание
Особенности виртуализации серверовВиртуальные машиныГипервизорыТерминыКраткие итогиРанее, в данном курсе, рассматривалась виртуализация серверов и преимущества данного подхода. В текущей лекции мы остановимся подробнее на этом вопросе.
Примечание. Материал лекции основан на разделе "Server Virtualization" книги "Understanding Microsoft Virtualizations Solutions" M. Tulloch (Chapter 2).
В настоящее время серверы выполняют широкий круг задач, а аппаратные мощности обеспечивают возможность развертывания нескольких сложных приложений в рамках одного сервера. При этом ряд приложений, функционирующих на сервере, могут быть несовместимы с другими решениями. Таким образом, с точки зрения отказоустойчивости, безопасности и управления, организационный подход "одно приложение - один сервер" является наиболее предпочтительным, что, тем не менее, влечет за собой проблему неоптимального использования вычислительных ресурсов - часть мощностей будет простаивать, не говоря уже о том, что даже средней организации придется содержать парк из нескольких серверов.
Таким образом, подход при котором на каждое приложение выделяется отдельный сервер является предпочтительным по критериям надежности и качества работы приложений, но и очень затратным.
Решением, в подобной ситуации, может стать виртуализация серверов, при этом организационный подход сводится к "одно приложение - один виртуальный сервер". На одном сервере могут быть развернуты несколько виртуальных машин, действующих как отдельные компьютеры со своей операционной системой.
Особенности виртуализации серверов
Основываясь на вступительной части лекции, можно сказать, что целью виртуализации серверов, с точки зрения бизнеса, является организация оптимальной серверной инфраструктуры по соотношению затрат на ее организацию и обеспечиваемых ею возможностей.
Иными словами, виртуализация серверов позволяет:
минимизировать затраты на покупку серверного оборудования;
снизить издержки на сопровождение серверной инфраструктуры;
упростить процесс резервирования (создание резервных виртуальных машин на разных физических серверах);
организовать изолированную виртуальную среду для тестирования и отладки работы приложений;
продлить срок использования программных решений более старых версий;
осуществить процесс миграции серверного окружения из одного места в другое.
Отметим следующее, несмотря на несомненные преимущества виртуализации серверов, следует тщательно планировать данный процесс. Во - первых, не следует создавать большое число виртуальных машин на одном сервере, поскольку виртуализация фактически делит вычислительные мощности между виртуальными серверами. Во - вторых, миграцию виртуальной машины можно осуществить лишь в том случае, если в обоих физических серверах используются процессоры одного производителя.
Виртуальные машины
Хотя мы уже давали определение виртуальной машины ранее, для полноты восприятия материала последующих лекций необходимо подробнее рассмотреть некоторые аспекты использования множества операционных систем на одном физическом компьютере.
Виртуальная машина - программная вычислительная среда, использующая аппаратные ресурсы физического компьютера и обеспечивающая возможность запуска нескольких операционных систем на одном компьютере.
Каждая операционная система функционирует в рамках отдельной виртуальной машины и использует логический экземпляры процессора, жесткого диска, сетевого адаптера и прочего аппаратного обеспечения. Виртуальные машины независимы друг от друга, каждая из операционных систем, функционирующих в их рамках, "считает", что монопольно контролирует оборудование физического компьютера.
С учетом особенностей виртуальных машин, серверная виртуализация должна отвечать следующим требованиям:
Наличие интерфейса управления. Виртуализация серверов требует наличия управляющих интерфейсов для создания, настройки и мониторинга виртуальных машин (в т.ч. осуществлять все эти действия удаленно), функционирующих на компьютере.
Управление памятью. Виртуализация серверов требует наличия решения, которое гарантирует, что каждая виртуальная машина получит необходимое количество ресурсов памяти и то, что данные ресурсы изолированы от других виртуальных машин.
Наличие планировщика ресурсов. Необходимо наличие решения управления доступом виртуальных машин к аппаратным ресурсам. Администратор должен иметь возможность задавать приоритет доступа к ресурсам для каждой виртуальной машины.
Контроль состояния виртуальной машины. Виртуализация серверов требует наличия решения для отслеживания информации о текущем состоянии всех виртуальных машин на компьютере и управления переходами от одного состояния к другому.
Системы хранения и сетевого доступа. Серверная виртуализация требует наличия функционала, обеспечивающего представление аппаратных ресурсов таким образом, чтобы каждая виртуальная машина имела дело только со "своими" жесткими дисками и сетевым адаптером. Кроме того должна обеспечиваться возможность мультиплексного доступа к физическому оборудованию таким образом, чтобы ресурсы виртуальных машин были изолированы друг от друга.
Виртуальные устройства. Серверная виртуализация требует наличия виртуальных устройств, которые могут быть использованы операционной системой виртуальной машины, как логическое представление устройств определенно типа. К примеру, если виртуальная операционная система пытается получить доступ к физическому устройству, то она получает его через связанное виртуальное устройство, функционирующее аналогично физическому.
Драйверы виртуальных устройств. Серверная виртуализация требует наличия соответствующих драйверов виртуальных устройств в рамках операционной системы виртуальной машины, использующей эти устройства. Эти драйверы обеспечивают взаимодействие приложений с виртуальным представлением аппаратного обеспечения.
Таким образом, при выборе решения для виртуализации необходимо учитывать его соответствие указанным требованиям.
Гипервизоры
Понимание виртуализации серверов и виртуальных машин будет неполным без представления о гипервизоре.
Гипервизор - программное обеспечение или аппаратная схема, обеспечивающая единовременное параллельное функционирование нескольких операционных систем на одном компьютере.
Основное назначение гипервизора - обеспечение изолированных сред выполнения для каждой виртуальной машины и управление доступом виртуальной машины и гостевой операционной системы к физическим аппаратным ресурсам компьютера.
Выделяют несколько типов гипервизоров.
Гипервизор первого типа выполняется как контрольная программа непосредственно на стороне аппаратной части компьютера. Операционные системы виртуальных машин выполняются уровнем выше.

Рис. 5.1.  Гипервизор 1го типа
Поскольку данный гипервизор работает независимо от операционной системы он обеспечивает большую производительность, надежность и безопасность.
Гипервизоры первого типа используются в следующих решениях:
Microsoft Hyper - V.
VMware ESX Server.
Citrix XenServer.
Гипервизор второго типа выполняется в рамках хостовой операционной системы. Гостевые операционные системы виртуальных машин располагаются уровнем выше.

Рис. 5.2.  Гипервизор 2го типа
Данный тип гипервизоров обеспечивает худшую производительность, по сравнению с первым типом.
Гипервизоры второго типа используются в следующих решениях:
Microsoft Virtual Server.
VMware Server.
Microsoft Virtual PC.
Следующим типом гипервизора является монолитный. В состав монолитного гипервизора включены драйверы аппаратных устройств.

Рис. 5.3.  Монолитный гипервизор
Использование монолитного гипервизора имеет как ряд преимуществ, так и некоторые недостатки. В качестве преимущества можно отметить сравнительно высокую производительность, поскольку гостевые операционные системы взаимодействуют напрямую с аппаратным обеспечением хостового компьютера.
При этом, учитывая многообразие аппаратных устройств таких как материнские платы, контроллеры HDD, сетевые адаптеры и т.д., разработчики решений виртуализации вынуждены тесно сотрудничать с производителями аппаратного обеспечения. Таким образом, поддерживается только оборудование, драйверы которого содержатся в гипервизоре. Также стоит отметить более низкую безопасность, поскольку все происходит в наиболее привилегированной части системы.
Монолитный гипервизор используется в решении VMware ESX.
Заключительный тип гипервизора, который мы рассмотрим - микроядерный. В данном случае драйверы устройств находятся внутри хостовой операционной системы. При этом хостовая операционная система, как гостевые, запускается в виртуальном окружении и называется "родительской". Только родительская операционная система имеет доступ к аппаратному обеспечению, дочерние, в свою очередь, могут взаимодействовать с аппаратной частью только через "родителя".
Рис. 5.4.  Микроядерный гипервизор
Данный тип гипервизоров обладает рядом преимуществ по сравнению с монолитными:
совместимость с любым оборудованием, драйверы которого располагаются в рамках родительской ОС.
более высокий уровень безопасности.
более высокая производительность гипервизора, поскольку он не должен взаимодействовать с драйверами устройств.
Примером использования данного типа гипервизора является Microsoft Hyper - V.
Термины
Виртуальная машина - программная вычислительная среда, использующая аппаратные ресурсы физического компьютера и обеспечивающая возможность запуска нескольких операционных систем на одном компьютере.
Виртуализация сервера - процесс размещения нескольких виртуальных серверов в рамках одного физического.
Гипервизор - программное, или аппаратное решение, позволяющее одновременное и параллельное функционирование нескольких операционных систем на одном компьютере.
Краткие итоги
Целью данной лекции было сформировать начальное представление о виртуализации серверов, необходимых требованиях для данного вида решений, структуре гипервизоров и виртуальных машинах. Все это является необходимым минимумом для дальнейшего рассмотрения решения виртуализации серверов Microsoft Hyper - V в последующих лекциях.
Приведенное разнообразие гипервизоров должно лишний раз сказать о том, что внедрению решений виртуализации в бизнесе должны предшествовать этапы анализа и планирования.

App-V.
Платформа Microsoft Application Virtualization (App-V) , как и MED-V является частью Microsoft Desktop Optimization Pack и используется для преобразования приложений в виртуальные службы с централизованным управлением. Иными словами, приложение при этом функционирует в изолированной виртуальной среде.
Подобный подход, в числе прочего, позволяет:
использовать приложения без непосредственной их установки;
решить проблему совместимости приложений, как с операционной системой, так и с другими приложениями (одно приложение - одна изолированная среда);
использовать параллельно несколько версий одного приложения;
централизовать управление приложениями;
ускорить процесс развертывания нового рабочего места;
упростить процессы обновления и исправления приложений;
контролировать использование лицензий.
Виртуализировать, естественно, можно не все приложения. Приложения запускающиеся до загрузки операционной системы, устанавливающие драйверы, антивирусы и т.п. не поддерживаются технологией App-V.
Принципы работы
Виртуальное приложение является приложением, которое может работать в рамках автономной виртуальной среды, которую иногда называют "песочницей", располагающейся на хосте.
Виртуальная среда содержит все необходимое для запуска приложения и запускается в рамках клиентского программного обеспечения App-V.
После виртуализации самих приложений и установки клиентского программного обеспечения App-V, становятся возможными различные способы доставки приложений на клиентский компьютер.
Рассмотрим более подробно механизмы работы App-V.
Виртуальная среда App-VПо сути, виртуальная среда представляет собой контейнер, определяющий ресурсы для выполнения виртуальных приложений.
К ресурсам виртуальной среды относят:
Виртуальный COM - подсистема управления COM - объектами, созданными виртуальным приложением. Предотвращает конфликты с такими же объектами, созданными за пределами виртуальной среды.
Виртуальный каталог. Содержит только файлы и подкаталоги, определенные приложением, или созданными в процессе его работы. Виртуальное приложение не "видит" любые файлы, расположенные в локальных каталогах с идентичными названиями.
Виртуальный файл - имя файла в виртуальной среде. Виртуальный файл появляется, наряду с другими файлами, в каталоге вне зависимости от того является ли сам каталог виртуальным, или локальным.
Виртуальная файловая система - подсистема, перехватывающая и перенаправляющая запросы виртуальных приложений к файловой системе. Запросы обрабатываются на основе виртуальных файлов и каталогов.
Виртуальный реестр - подсистема, перехватывающая и перенаправляющая запросы виртуальных приложений для ключей и значений реестра, созданных, или измененных в процессе взаимодействия с виртуальным приложением.
Виртуальные службы - подсистема управления службами.
Виртуальная среда создается APP-V и позволяет конечному пользователю взаимодействовать с виртуальными приложениями, как с локальными.Sequencing (секвенирование, виртуализация приложения)
Для того, чтобы доставить приложение конечному пользователю, необходимо его "упаковать". Sequencing - процесс упаковки приложения для обеспечения возможности запуска его в рамках виртуальной среды клиентского компьютера. После этого приложение виртуализировано и полостью изолировано, что исключает возможность возникновения конфликтов между ним и другими приложениями.
Пакет виртуального приложения содержит четыре типа файлов, являющихся частью виртуального приложения, и обеспечивающих его функционирование:
.ico - файл. Файл иконки рабочего стола, используется для запуска виртулизированного приложения клиентом.
.osd - файл. Open Software Descriptor - файл на базе XML, указывающий клиенту, как извлечь виртуальное приложение из App-V сервера и как запустить его в рамках виртуализированной среды.
.stf - файл. Содержит упакованное одно (или более) виртуализированное приложение. Хранится на сервере, который передает упакованное приложение клиенту.
.sprj - файл. Sequencer project - файл на основе XML, использующийся для создания приложения или обновления пакета.
Кроме вышеуказанного, в состав пакета виртуального приложения также может быть включен Windows Installer файл (.msi), для автономного запуска приложения.
Публикация приложения
После того, как приложение упаковано и подготовлено, существует три способа доставки приложения до конечного пользователя:
При помощи управляющего сервера App-V.
При помощи ESD - системы (к примеру, System Center Configuration Manager 2007).
Standalone доставка.
Компоненты App-VРешение App-V включает в себя следующие компоненты:
Управляющий сервер App-V (App-V Management Server) - сервер, отвечающий за управление инфраструктурой App-V, хранение виртуальных приложений и их доставку и т.п.
Управляющий веб - сервер App-V (App-v Management Web Server) - компонент, отвечающий за read\write запросы к хранилищу данных App-V. Функционально располагается между хранилищем данных и консолью управления.
Хранилище данных App-V (App-V Data Store) - компонент, отвечающий за хранение всей информации, связанной с App-V инфраструктурой (данные о конфигурации сервера, отчеты, лицензии приложений, данные авторизации и т.п.)
App-V Streaming Sever - компонент дублирующий функционал управляющего сервера, кроме непосредственно функций управления. Т.е. обеспечивает обработку запросов, хранение данных и доставку приложений.
Консоль управления App-V (App-V Management Console) - консоль управления, является инструментом администратора App-V.
App-V Sequencer - программное обеспечение, виртуализирующее приложение.
Клиент App-V (App-V Client) - программное обеспечение, устанавливаемое на стороне клиента и реализующее виртуальную среду для запуска приложений. В свою очередь представлен в виде desktop и terminal client версий.
Инфраструктурная модель и принцип работы App-V
Рис. 19.1.  Инфраструктурная модель App-V (http://blog.augustoalvarez.com.ar/2009/07/12/implementing-app-v-part-ii-choosing-and-preparing-the-environment/)
На рис. 19.1 представлена полная инфраструктурная схема App-V и его компонент. В общем виде инфраструктурное решение виртуализации на основе App-V работает следующим образом:
Создается виртуализированное приложение при помощи App-V Sequencer.
Созданное приложение передается на хранение управляющему серверу App-V.
Осуществляется назначение прав доступа к приложению (App-V Management Console), при участии Active Directory, в случае ее наличия.
Пользователи, имеющие право на запуск и работу с приложением, получают к нему доступ (иконка на рабочем столе, пункт в меню "Пуск" и т.п.).
Доставка приложения. При первом запуске виртуального приложения пользователем клиентское программное обеспечение App-V (App-V Client) загружает приложение с сервера и запускает его в изолированной виртуальной среде. (также могут быть использованы другие способы доставки, указанные в разделе "Публикация приложения" данной лекции).
Отметим, что при последующих запусках приложения, клиентское программное обеспечение уже не будет загружать его с сервера.
Термины
Sequencer - программное обеспечение, входящее в состав App-V, непосредственно виртуализирующее приложение. Sequencer "следит" за локальной установкой приложения, изменениями в системе и т.п. На основе собранных данных затем создается виртуальное приложение.
ESD - система - система электронного распространения программного обеспечения, для развертывания виртуальных приложений.
Краткие итоги
Как и MED-V, App-V является технологическим решением, расширяющим возможности "обычной" виртуализации, заключающейся в возможности запуска нескольких операционных систем на одном хосте, до полноценного корпоративного решения виртуализации инфраструктуры.
В отличие от MED-V, использующегося для управления образами виртуальных машин, их созданием, хранением и доставкой, App-V обеспечивает аналогичный функционал управления виртуализированными приложениями.
Может показаться, что при наличии App-V отпадает необходимость в использовании решений виртуализации, обеспечивающих запуск нескольких ОС на одном хосте. Однако, отметим следующее, App-V призван устранить проблемы совместимости приложений с другими приложениями и операционной системой. Но если существует необходимость создания изолированной среды, включающей в себя ОС и ряд других решений и компонент (к примеру для целей тестирования), лучшим выбором окажется иное решение виртуализации рабочих станций (MED-V, Virtual PC и т.д.)

Приложенные файлы

  • docx 8852663
    Размер файла: 115 kB Загрузок: 0

Добавить комментарий