logo
Instrumentalnye_sredstva_informatsionnykh_siste

Типы виртуализации

Паравиртуализация (англ. Paravirtualization) — техника виртуализации, при которой гостевые операционные системы подготавливаются для исполнения в виртуализированной среде, для чего их ядро незначительно модифицируется. Операционная система взаимодействует с программой Гипервизора, который предоставляет ей гостевой API, вместо использования напрямую таких ресурсов, как таблица страниц памяти. Код, касающийся виртуализации, локализуется непосредственно в операционную систему. Паравиртуализация таким образом требует, чтобы гостевая операционная система была изменена для гипервизора, и это является недостатком метода, так как подобное изменение возможно лишь в случае, если гостевые ОС имеют открытые исходные коды, которые можно модифицировать согласно лицензии. Но зато паравиртуализация предлагает производительность почти как у реальной не виртуализированной системы. Как и при полной виртуализации, одновременно могут поддерживаться многочисленные различные операционные системы.

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

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

Пример: кросс-платформенный гипервизор Xen, который поддерживает в том числе режим паравиртуализации.

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

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

Идея аппаратной виртуализации не нова: впервые она была воплощена в 386-х процессорах и носила название V86 mode. Этот режим работы 8086-го процессора позволял запускать параллельно несколько DOS-приложений. Теперь аппаратная виртуализация позволяет запускать несколько независимых виртуальных машин в соответствующих разделах аппаратного пространства компьютера. Аппаратная виртуализация является логическим продолжением эволюции уровней абстрагирования программных платформ - от многозадачности, технологии HyperThreading и до уровня виртуализации.

Необходимость поддержки аппаратной виртуализации заставила производителей процессоров несколько изменить их архитектуру за счет введения дополнительных инструкций для предоставления прямого доступа к ресурсам процессора из гостевых систем. Этот набор дополнительных инструкций носит название Virtual Machine Extensions (VMX).

Процессор с поддержкой виртуализации может работать в двух режимах root operation и non-root operation. В режиме root operation работает специальное программное обеспечение, являющееся «легковесной» прослойкой между гостевыми операционными системами и оборудованием – монитор виртуальных машин (Virtual Machine Monitor, VMM), носящий также название гипервизор (hypervisor). Слово «гипервизор» появилось интересным образом: когда-то очень давно, операционная система носила название «supervisor», а программное обеспечение, находящееся «под супервизором», получило название «гипервизор».

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

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

Примеры виртуализации уровня ОС: Linux-VServer, Virtuozzo, OpenVZ, Solaris Containers и FreeBSD Jails.

В этом случае виртуальная машина виртуализует лишь необходимое количество аппаратного обеспечения, чтобы она могла быть запущена изолированно. Такой подход позволяет запускать гостевые операционные системы, разработанные только для той же архитектуры, что и у хоста. Таким образом, несколько экземпляров гостевых систем могут быть запущены одновременно. Этот вид виртуализации позволяет существенно увеличить быстродействие гостевых систем по сравнению с полной эмуляцией и широко используется в настоящее время. Также, в целях повышения быстродействия, в платформах виртуализации, использующих данный подход, применяется специальная «прослойка» между гостевой операционной системой и оборудованием (гипервизор), позволяющая гостевой системе напрямую обращаться к ресурсам аппаратного обеспечения. Гипервизор, называемый также «Монитор виртуальных машин» (Virtual Machine Monitor) - одно из ключевых понятий в мире виртуализации. Применение гипервизора, являющегося связующим звеном между гостевыми системами и аппаратурой, существенно увеличивает быстродействие платформы, приближая его к быстродействию физической платформы.

К минусам данного вида виртуализации можно отнести зависимость виртуальных машин от архитектуры аппаратной платформы.

Примеры: VMware ESX, Virtual Iron.