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

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 08:07, 27 июня 2016.
Open book.svg Авторство
Куликов А.В.
Согласовано: 07.04.2016

Паравиртуализация — техника виртуализации, при которой гостевые операционные системы подготавливаются для исполнения в виртуализированной среде, для чего их ядро незначительно модифицируется.

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

Общая информация

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

Паравиртуализацию используют SCSI, USB, VGA и PCI устройства.

Метод паравиртуализации позволяет добиться более высокой производительности чем метод динамической трансляции.

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

История

Паравиртуализация – новый период старой идеи. ОС VM компании IBM предлагает подобную услугу с 1972. Приставка «пара» в слове паравиртуализация ничего не обозначает, просто авторам данной идеи понадобился новый термин.

Термин “паравиртуализация” впервые был использован в исследовательской литературе в связи с Denali. Этот термин также используется для описания Xen, L4, TRANGO, VMware, Wind River и XtratuM гипервизоров. Все эти проекты используют или могут использовать паравиртуализацию для поддержки высокой производительности виртуальных машин. В настоящее время почти все дистрибутивы Linux, а именно CentOS, Debian, Ubuntu, Gentoo, Fedora, ArchLinux и др., способны работать в режиме Xen PV.

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

В 2005 VMware предложила паравиртуализационный интерфейс Virtual Machine Interface (VMI) в качестве механизма связи между гостевой операционной системой и гипервизором. Этот интерфейс позволяет прямую паравиртуализацию, в которой простая бинарная версия операционной системы может быть запущена как с жесткого диска, так и с гипервизора в режиме паравиртуализации.

Как только AMD и Intel CPU добавили поддержку для более эффективной выполняемой с помощью ПО виртуализации, стандарт устарел и поддержка VMI была убрана из ядра Linux в 2.6.37 и из продуктов Vmware в 2011.

Идея паравиртуализации легла в основу Xen — монитора виртуальных машин, изначально разрабатывавшегося в Кембриджском университете под руководством Яна Пратта). Начав свой путь в конце 90х годов как исследовательский проект, Xen уже через несколько лет приобрел мировую известность.

Интерес к решениям виртуализации для платформы x86 не прошел мимо основных производителей процессоров — Intel и AMD. Обе компании решили внести в свои аппаратные решения изменения, устраняющие ограничения архитектуры и упрощающие создание средств виртуализации.

Версия 3.0, выпущенная в 2005 году, позволяла запускать немодифицированные гостевые системы (естественно, только на процессорах с соответствующими характеристиками). В частности, стало возможно использовать MS Windows в качестве гостевой ОС. Впрочем, для использования какой-либо ОС в качестве хост-системы (dom0) в нее по-прежнему необходимо вносить определенные модификации.

KVM – свободный продукт, которй был интегрирован с разработкой ядра Linux — начиная с версии 2.6.20, все нужное для KVM включено в основную ветку разработки.

Функциональность

Паравиртуализация обеспечивает следующую функциональность:

  • Дисковые и сетевые драйвера
  • Обработчики прерываний и таймеры
  • Имитированная материнская плата и загрузка в режиме совместимости

Дисковая и сетевая поддержка обеспечивается при помощи пары очень простых back-end и front-end драйверов.

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

Преимущества и недостатки

Недостатки

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

Преимущества

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

Ссылки