Сколько платят молодым ит-специалистам

Вид материалаДокументы

Содержание


Решение от AMD: Pacifica
Войны стандартов не будет?
Виртуализационное программное обеспечение
Рис. 3. Архитектура VMware Workstation
Паравиртуализация: Xen.
Рис. 4. Архитектура Xen 2
Высокоуровневая виртуализация — Virtuozzo.
Рис. 5. Реализация технологии виртуального сервера VE
Другие продукты
Различные подходы к виртуализации для разных задач
Александр Тормасов
Андрей Николаев
Подобный материал:
1   ...   11   12   13   14   15   16   17   18   ...   23


Собственно поддержка набора команд включения и выключения VMX, команд VMX-переходов, установки критериев и правил выхода из ВМ и поддержки соответствующих структур данных является первой частью Intel VT. Согласно информации, распространяемой Intel, поддержка этой технологии появится во всех современных семействах компании в ближайшем будущем.

В дальнейших обнародованных планах Intel большое внимание уделяется развитию VT и связанных с ней технологий. Например, анонсирована технология VT-d, которая облегчает виртуализацию устройств ввода-вывода и повышает безопасность их работы. Используя VT-d, МВМ сможет “прикреплять” драйверы физических устройств к ВМ, что позволит гостевой ОС взаимодействовать с прикрепленным устройством посредством механизма DMA (прямого доступа устройств к памяти, минуя процессор), без передачи управления МВМ. Более подробно с VT-d можно ознакомиться в документе Intel Virtualization Technology for Directed I/O Architecture Specification (ссылка скрыта).

Третье поколение VT будет включать в себя поддержку виртуализации памяти гостевых систем (технологию EPT — extended page tables). Она за счет появления нового уровня “косвенности” в адресации физической памяти облегчит проверку принадлежности адресов, выделенных гостевым машинам.

Одним из ярких примеров технологии, базирующейся на VT, может служить Intel LaGrande Technology (LT), определяющая набор необходимых модификаций платформы для поддержки создания хорошо защищенных платформ, которым можно доверять (“trusted platforms”). Везде, где используется слово “доверие”, надо четко определить, кто доверяет и чему. Целью LT является создание уникально идентифицируемой контролируемой среды, устойчивой к попыткам изменения, чтобы в решениях по вопросам доверия можно было полагаться на платформу. Расширения LT касаются запуска МВМ и защиты его кода от модификаций. Более подробно об этой технологии можно прочитать в документе “LaGrande Technology Preliminary Architecture Specification” (ссылка скрыта). Для корректной реализации LT встраивания ее поддержки потребуют абсолютно все компоненты современного компьютера (за исключением собственно модулей с наборами микросхем памяти).

Решение от AMD: Pacifica

В мае 2005 г. компания AMD также представила технологию поддержки виртуализации — Pacifica. Описывать все её детали в данной статье не имеет смысла, так как в своей основе они похожи на VT и предоставляют те же функции. Однако стоит отметить, что у Pacifica есть и некоторые дополнительные возможности, которые отсутствуют в Intel VT. Два наиболее важных её отличия — это Tagged TLB (TTLB) и Device exclusion vector (DEV).

Чтобы оценить их, надо разобраться в принципах трансляции виртуальных адресов в физические в случае ВМ. Для решения этой задачи к таблицам страниц МВМ добавлены Nested Page Tables (NPT), которые описывают виртуальные пространства адресов ВМ. При переключении контекстов между МВМ и ВМ в процессорах Intel VT таблицы TLB (это таблицы трансляции виртуальных адресов в физические, специфичные для архитектуры x86) очищаются, а у AMD элементы этих таблиц отмечены тегами, что позволяет принимать индивидуальные решения об использовании или очистке этих элементов. Соответственно скорость переключения МВМ — ВМ в Pacifica может быть заметно выше по сравнению с Intel VT, хотя программная реализация кэширования для последней может дать практически такой же результат. К тому же TLB в процессорах AMD запоминают трансляции вложенных таблиц страниц (NPTables), позволяя получать физический адрес памяти по виртуальному адресу в пространстве гостевого ПО без дополнительного этапа трансляции.

Второе важное отличие — DEV, интенсивно использующий встроенный в процессоры AMD контроллер памяти. По сути это аналог VT-d, который описывает, каким физическим устройствам к каким страницам памяти ВМ разрешен доступ, и фактически осуществляет привязку устройств к ВМ. Таким образом, ВМ может корректно работать через DMA без необходимости контроля со стороны МВМ.

Более детально о Pacifica можно узнать из документов “Processor-Based Virtualization, AMD64 Style (ссылка скрыта) и AMD I/O Virtualization Technology (IOMMU) Specification (ссылка скрыта). Отметим, что еще год назад AMD анонсировала следующий этап реализации её расширений (обычно все возможности новой технологии становятся доступными не сразу, а поэтапно).

Войны стандартов не будет?

Такая массированная поддержка технологий виртуализации ведущими игроками микропроцессорного рынка — событие безусловно знаковое и многообещающее. Но может ли возникнуть новая война стандартов — Intel против AMD? По сути обе системы обладают примерно одинаковыми возможностями, слегка по-разному реализованными. Думается что такой войны не будет, их реальное слияние произойдет на уровне производителей ВПО, которых очень мало (в мире известно только три коммерческих производителя ПО для виртуализации x86 — VMware, Microsoft и Parallels, и некоммерческий проект Xen — и все они одновременно поддерживают оба стандарта). Ведь для них встроить поддержку обеих, логически очень схожих технологий в свои продукты особой проблемы не составит, конечно, если не появятся какие-то искусственные ограничения. Тем более, что примеры такого мирного сосуществования известны даже на более жестком рынке производителей аппаратных средства, как то одновременная поддержка DVD-R и DVD+R.

Виртуализационное программное обеспечение

Полная эмуляция — VMware. Ядром технологии компании VMware является полная эмуляция оборудования на уровне ПО. Это означает, что существует некий процесс уровня пользователя основной операционной системы, внутри которого собственно и проходит эмуляция (рис. 3). Это полууниверсальная технология (как правило, она позволяет эмулировать аппаратуру платформы того же типа, на котором запущена основная операционная система), предназначенная для запуска большинства современных ОС внутри такого эмулятора — поверх основной операционной системы. Для перехвата нежелательных команд применяется метод бинарной трансляции кода.



Рис. 3. Архитектура VMware Workstation

В связи с выбранной технологией реализации (анализ кода перед исполнением и его динамическое преобразование) такой подход обуславливает существенные накладные расходы как с точки зрения производительности, так и в аспекте достижимого уровня масштабирования. Технология не обеспечивает эффективного совместного использования всех аппаратных ресурсов, и масштабируемость решения принципиально ограничена из-за того, что оперативная память основной машины практически должна быть жестко разделена, чтобы каждой запущенной ВМ предоставить свою собственную неразделяемую память. Кроме того, около 20% ОЗУ следует зарезервировать для обслуживания виртуальных машин (накладные расходы системы виртуализации). То есть на обычных серверах фактически нельзя запустить более 15 виртуальных машин, а реально и еще меньше. Это верно и для специальной серверной версии системы VMware ESX Server, которая обладает некоторыми возможностями по “внешнему” разделению страниц данных разных ВМ (хотя декларируемое количество виртуальных машин для ESX-системы несколько больше). Еще одной особенностью этого решения является то, что файловая система для использования виртуальной машины расположена внутри обычного файла основной ОС (или раздела диска) и является уникальной для каждого экземпляра ВМ.

С очень похожим решением — Virtual PC 2004 — в 2004 г. вышла Microsoft. Затем последовал Microsoft Virtual Server 2005. Происходит эта линейка от продукта Virtual PC for Windows компании Connectix, чей бизнес в области виртуальных платформ в середине 2003-го был перекуплен Microsoft. Однако ничего оригинального корпорация пока не предложила, Virtual PC — такое же ВПО общего назначения на базе МВМ-подхода, как и VMware Workstation, пригодное для запуска практически любой ОС.

Очевидно, что использование расширений Intel VT и AMD Pacifica для VMware является вполне логичным, естественным и дающим больший выигрыш по производительности шагом. По сути это позволит отказаться от гостевой ОС, весьма дорогостоящей по ресурсам технологии бинарной трансляции кода ядра. Хотя следует отметить, что в настоящий момент технология VMware настолько “вылизана” с точки зрения производительности, что применение технологий аппаратной виртуализации не дает для нее какого-либо выигрыша, и VMware, в частности, не планирует использовать ее поддержку для 32-разрядных машин. В общем аппаратные технологии виртуализации облегчают создание новых программ такого рода (см., например, Xen, о нем рассказано ниже), но отнюдь не заменяют уже имеющихся.

Паравиртуализация: Xen. Как уже упоминалось выше, альтернативой бинарной трансляции нежелательных команд может быть переделка ядра гостевой ОС таким образом, чтобы заменить эти команды на вызовы МВМ. Это осуществимо, если компания — разработчик ОС предоставит гостевой вариант своей системы либо если исходные ее тексты доступны и могут быть модифицированы согласно лицензии, как в случае с Linux. Такой подход используется в паравиртуализированной системе Xen (ссылка скрыта). Еще одно существенное отличие Xen от решения VMware заключается в подходе к работе с внешними устройствами.

В случае Xen разработчики отказались от того, чтобы эти функции полностью возложить на МВМ, который либо выполняет их самостоятельно, либо передает основной ОС, в свою очередь предусматривающей процессы для обслуживания МВМ. Для работы с физическими устройствами Xen использует одну из гостевых ОС, обладающих соответствующими драйверами и полномочиями по доступу к оборудованию. В остальных гостевых ОС драйверы оборудования редуцированы до специальных “передающих” заглушек-фронтендов, которые вызывают МВМ, а тот передает эти запросы гостевой ОС с настоящими драйверами (рис. 4).



Рис. 4. Архитектура Xen 2

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

Применение расширений Intel VT и AMD Pacifica приносит, пожалуй, наибольшую выгоду для паравиртуализционного подхода и продуктов, базирующихся на нем. Для Xen поддержка Intel VT означает качественный скачок. Теперь не обладающий технологией бинарной трансляции Xen может поддерживать непаравиртуализованные гостевые ОС за счет возможностей VT/Pacifica, что и реализовано в новом Xen версии 3 и выше.

Высокоуровневая виртуализация — Virtuozzo. Однако есть и другой способ виртуализации. Ведь для пользовательских процессов ОС, которые, собственно, и предоставляют сервисы пользователям, в общем-то безразлично, присутствует при их исполнении “виртуальное оборудование” или нет. Их интересует лишь, чтобы те способы коммуникации, которые они применяют для связи с ОС, отрабатывались наиболее удобным и эффективным образом. Вот так и появляется “высокоуровневая виртуализация”, которая обеспечивает для каждой среды исполнения (будем называть ее виртуальной средой — Virtual Environment, VE,) свое собственное уникальное изолированное окружение — свои файлы и другие ресурсы, в том числе и системные, свои сервисы, свои системные способы связи с внешним миром и т. д.

Иными словами, с точки зрения приложения оно запускается в собственном компьютере с основной ОС, и пользователь может делать с VE всё, что обычно делает администратор машины: запускать и останавливать приложения и системные сервисы, устанавливать обновления приложений, конфигурировать сеть и сетевой экран, перезапускать VE. От оборудования среда пользователя отделена специальным “уровнем Virtuozzo” (рис. 5), вводящим понятие VE в корневую (или основную) ОС.



Рис. 5. Реализация технологии виртуального сервера VE

Кроме того, появляются дополнительные возможности, которые не так просто реализовать на физическом компьютере или внутри BM. Например, быстрая и эффективная установка приложений во множество VE, быстрая миграция (со временем недоступности сервера 1—3 с или даже вообще без остановки сервисов и прерывания сетевых сессий), динамическое управление ресурсами системы, выделяемыми конкретной VE. Технология VE находится “выше” технологии ВМ, их различие по отношению к архитектуре иллюстрирует рис. 6.



Рис. 6. Уровни реализации Virtual Machine и Virtual Environment (на примере технологий Vmware и Virtuozzo)

По сравнению с подходами полной виртуализации и паравиртуализации высокоуровневая виртуализация дает много выгод — более гибкое управление памятью и файловым пространством, практически нулевые затраты на переключение между разными VE, возможность мгновенного получения абсолютно всех ресурсов компьютера (например, всех ЦП или всей памяти) одной VE. Ограничения на использование технологии VE несколько другого рода, чем в технологиях ВМ, и связаны обычно со способом ее реализации. Так, технология Virtuozzo подразумевает, что все запущенные на машине VE обращаются к одному и тому же ядру одной и той же ОС и из VE нельзя менять существенные компоненты или версию ядра.

Впрочем, это не означает, что нельзя применять, скажем, разные “заплатки” на разные VE, если они не затрагивают собственно ядра или модулей в Linux либо библиотек или исполняемых файлов ядра Microsoft Windows. Других ограничений в общем-то нет (за исключением прямого доступа к оборудованию, который опять-таки ограничен изнутри VE соображениями безопасности). Есть еще некоторые ограничения, присущие той или иной реализации. Например, обычно в VE в любой момент возможен прямой административный доступ к файлам из основной ОС, тогда как в типовых ВМ-реализациях он осуществим только по сети, если это сконфигурировал администратор соответствующей ВМ; и наоборот, в ВМ есть возможность сделать “снимок” состояния системы для дальнейшего возвращения к нему (snapshot), а в VE это обычно делается по-другому.

Использование Intel VT и AMD Pacifica немедленных выгод для продуктов, построенных на принципе высокоуровневой виртуализации, не сулит, но вполне может облегчить решение некоторых специфичных задач, повысить уровень защищенности и надежности всей системы. В то же время это дает пользователям, избравшим такие продукты, дополнительный уровень защиты от последствий вероятной войны стандартов между Intel VT и Pacifica, что может иметь значение для переходного периода, в который сейчас вступает рынок.

Другие продукты

Среди других продуктов, уже используемых на рынке, выделяется своей потенциально высокой эффективностью система Solaris 10 с технологией Solaris Containers, представленная компанией Sun Microsystems в 2004 г. Но это средство по своей сути связано со спецификой данной ОС, поэтому оно менее универсально и получило пока меньшее распространение, чем упомянутые технологии виртуализации.

Различные подходы к виртуализации для разных задач

Обобщая приведенные материалы, можно утверждать, что, безусловно, сегодня нельзя предугадать развитие технологий виртуализации и сказать, какие продукты останутся, а какие уйдут с рынка через несколько лет. Ситуация может довольно резко измениться с выходом новых процессоров, все более полно поддерживающих виртуализацию, и новых версий ОС, прежде всего Windows (особенно если разработчики начнут учитывать и поддерживать возможность “гостевого режима”), или вследствие возникновения каких-либо лицензионных споров, затрагивающих эти технологии, между ключевыми игроками ИТ-рынка. Однако становится все более очевидно, что различные подходы к виртуализации имеют свои ниши и области применения. Так, например, высокоуровневая виртуализация удобна для поддержки высокомасштабируемых серверных решений с большим количеством приложений, работающих на однотипных ОС, тогда как полная виртуализация хороша для тестовых задач и задач отладки.

С уверенностью можно утверждать лишь одно: мы видим новый качественный скачок в развитии ИТ-рынка, который может привести к существенным изменениям.



* Окончание тематического обзора. Начало см. PC Week/RE, № 25/2006, с. 18.

** На рубеже 80—90-х в семействе платформ на базе архитектуры процессоров Intel x86 защищенный режим превратился из вспомогательной технологии для ПО, работающего в реальном режиме, в основополагающую для новейших в ту пору операционных систем — Windows 3, Windows 95, Linux и различных ветвей UNIX. Однако, с точки зрения пользователя, сейчас изменений будет даже больше; они, наверное, будут сравнимы с теми изменениями, что произошли при переходе от мэйнфреймов, установленных в вычислительных центрах, к ПК. Теперь пользователь может для выполнения любой операции применять выделенную им на своем компьютере виртуальную машину.



Александр Тормасовканд. физ.-мат. наук, заместитель заведующего кафедрой информатики МФТИ, доцент, начальник отделения НИОКР компании SWsoft,tor@crec.mipt.ru.

Андрей Николаевассистент кафедры информатики МФТИ, navy@crec.mipt.ru.