Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...
OSzone.net Microsoft ИТ-инфраструктура Виртуализация Вычисления в облаке. Классы виртуализации RSS

Вычисления в облаке. Классы виртуализации

Текущий рейтинг: 0 (проголосовало 0)
 Посетителей: 1019 | Просмотров: 1456 (сегодня 0)  Шрифт: - +

Говоря в целом, существует три стандартных класса архитектур виртуальных машин (ВМ) – низкоуровневые оболочки, виртуализации на основе компьютеров размещения и паравиртуализации, которые различаются положением уровня виртуализации. Низкоуровневая оболочка также известна как монитор виртуальных машин.

Архитектура низкоуровневой оболочки.

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

Низкоуровневая оболочка предоставляет гипервызовы для гостевых ОС и приложений. Низкоуровневая оболочка может принимать форму микроядерной архитектуры, подобно Microsoft Hyper-V. Она также может принимать форму монолитной архитектуры, подобно VMware ESX для виртуализации серверов.

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

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

Архитектура Xen

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

Xen представляет собой микроядерную низкоуровневую оболочку, отделяющую политику от механизма. Низкоуровневая оболочка Xen применяет все механизмы, оставляя обработку политики домену 0. В нее не встроены драйверы устройств. Она просто предоставляет механизм для прямого доступа гостевой ОС к физическим устройствам.

Как следствие, низкоуровневая оболочка Xen довольно мала. Xen предоставляет виртуальную среду, расположенную между оборудованием и ОС. Ряд разработчиков находятся в процессе создания коммерческих версий низкоуровневых оболочек Xen; в их число входят Citrix XenServer и Oracle VM.

Подобно другим системам виртуализации, поверх низкоуровневой оболочки могут работать много гостевых ОС. Однако не все гостевые ОС создаются равными: одна из них контролирует остальные. Гостевая ОС с возможностями контроля называется доменом 0, остальные — доменом U. Домен 0 является привилегированной гостевой ОС Xen. Он загружается первым при загрузке Xen, не требуя доступности драйверов файловой системы. Домен 0 разработан для прямого доступа к оборудованию и управления устройствами. Поэтому одной из задач домена 0 является выделение аппаратных ресурсов и сопоставление их с гостевым доменами (доменами U).

Например, Xen основана на Linux и ее уровень безопасности – C2. Ее управляющая ВМ называется доменом 0 и располагает правами на управление другими ВМ, созданными на том же несущем компьютере. Если безопасность домена 0 нарушена, злоумышленник может контролировать всю систему.

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

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

В такой среде состояние ВМ подобно дереву: в любой момент исполнение может пойти по Х различным веткам, где несколько экземпляров ВМ могут существовать в любой точке дерева в любой конкретный момент. ВМ разрешается выполнять откат к предыдущим состояниям в их исполнении (например, для исправления ошибок конфигурации) или возобновлять выполнение с одной и той же точки много раз (например, для распространения динамического содержания или циркуляции «динамического» образа системы).

Двоичная трансляция с полной виртуализацией

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

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

В системе на основе компьютеров размещения используются как размещающая, так и гостевая ОС. Уровень ПО виртуализации встроен между ними.

Полная виртуализация

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

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

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

Таким образом, полная виртуализация сочетает в себе двоичную трансляцию и прямое исполнение. Гостевая ОС полностью отделена от лежащего в основе оборудования. Как следствие, гостевая ОС не знает, что она виртуализована.

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

Виртуализация на основе компьютеров размещения

Альтернативная структура ВМ заключается в установке уровня виртуализации поверх ОС компьютера размещения. Последняя по-прежнему отвечает за управление оборудованием. Гостевые ОС устанавливаются и работают поверх уровня виртуализации. Выделенные приложения могут работать на ВМ. Некоторые другие приложения могут также работать с размещающей ОС напрямую.

У этой архитектуры есть определенные преимущества. Во-первых, пользователь может установить эту архитектуру ВМ, не изменяя ОС компьютера размещения. Виртуализующее ПО может полагаться на размещающую ОС в плане драйверов устройств и иных низкоуровневых служб. Это упростит структуру ВМ и облегчит их развертывание.

Во-вторых, виртуализация на основе компьютеров размещения удобна для многих конфигураций компьютеров. По сравнению с архитектурой на основе низкоуровневой оболочки/монитора виртуальных машин, производительность архитектуры на основе компьютеров размещения может быть низкой. Запрос приложением доступа к оборудованию включает в себя четыре уровня сопоставления, что существенно снижает производительность. Когда Internet Security and Acceleration (ISA) гостевой ОС отличается от ISA несущего оборудования, необходимо использование двоичной трансляции. Хотя архитектура на основе компьютеров размещения отличается гибкостью, ее производительность слишком низка для практического использования.

Паравиртуализация

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

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

Традиционный процессор x86 предлагает четыре режима исполнения инструкций: 0, 1, 2 и 3. Чем меньше номер, тем выше права исполняемой инструкции. ОС отвечает за управление оборудованием и привилегированными инструкциями, исполняемыми на защищенном уровне 0, тогда как приложения уровня пользователя работают на уровне 3. Лучшим примером паравиртуализации является ВМ на основе ядра.

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

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

Наконец, преимущества паравиртуализации в плане производительности существенно варьируются в зависимости от рабочей нагрузки. По сравнению с полной виртуализацией, паравиртуализация относительно проста и практична. Основная проблема полной виртуализации – низкая производительность при двоичной трансляции. Ускорить двоичную трансляцию непросто. Поэтому многие программы виртуализации используют архитектуру паравиртуализации. Хорошими примерами являются популярные Xen, KVM и VMware ESX.

KVM – это средство поддерживаемой оборудованием паравиртуализации, улучшающее производительность и поддерживающее немодифицированные гостевые ОС, такие как Windows, Linux, Solaris и другие варианты Unix.

Это система паравиртуализации Linux – часть Linux версии ядра 2.6.20. Существующее ядро Linux выполняет управление памятью и планирование действий. KVM делает все прочее, что делает его проще по сравнению с низкоуровневой средой, контролирующей всю машину.

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

Привилегированные инструкции реализуются гипервызовами к низкоуровневой оболочке. После замены инструкций на гипервызовы модифицированная гостевая ОС имитирует поведение исходной гостевой ОС. В системе Unix системный вызов включает в себя процедуру службы или прерывание. Гипервызовы применяют специальную процедуру службы в Xen.

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

Автор: Кай Хуанг, Джек Донгарра, Джеффри Фокс  •  Иcточник: TechNet Magazine  •  Опубликована: 20.06.2012
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.