Введение
Техника виртуализации
In computing, paravirtualization or para virtualization is a virtualization technique that presents a software interface to the virtual machines which is similar, yet not identical, to the underlying hardware–software interface. The intent of the modified interface is to reduce the portion of the guest's execution time spent performing operations which are substantially more difficult to run in a virtual environment compared to a non virtualized environment. The paravirtualization provides specially defined 'hooks' to allow the guest(s) and host to request and acknowledge these tasks, which would otherwise be executed in the virtual domain (where execution performance is worse). A successful paravirtualized platform may allow the virtual machine monitor (VMM) to be simpler (by relocating execution of critical tasks from the virtual domain to the host domain), and/or reduce the overall performance degradation of machine execution inside the virtual guest. Paravirtualization requires the guest operating system to be explicitly ported for the para API – a conventional OS distribution that is not paravirtualization aware cannot be run on top of a paravirtualizing VMM. However, even in cases where the operating system cannot be modified, components may be available that enable many of the significant performance advantages of paravirtualization. For example, the Xen Windows GPLPV project provides a kit of paravirtualization aware device drivers, that are intended to be installed into a Microsoft Windows virtual guest running on the Xen hypervisor. Such applications tend to be accessible through the paravirtual machine interface environment. This ensures run mode compatibility across multiple encryption algorithm models, allowing seamless integration within the paravirtual framework.
В вычислительной технике паравиртуализация — это техника виртуализации, которая предоставляет виртуальным машинам программный интерфейс, похожий, но не идентичный базовому аппаратно-программному интерфейсу. Цель модифицированного интерфейса — уменьшить часть времени выполнения гостевой системы, затрачиваемого на операции, которые значительно сложнее выполнять в виртуальной среде по сравнению с не виртуализированной. Паравиртуализация предоставляет специально определенные "хуки", позволяющие гостевой системе и хосту запрашивать и подтверждать выполнение этих задач, которые в противном случае выполнялись бы в виртуальном домене (где производительность хуже). Успешная паравиртуализированная платформа может упростить виртуальный монитор машины (VMM) (путем переноса выполнения критически важных задач из виртуального домена в хост-домен) и/или уменьшить общее снижение производительности выполнения гостевой системы внутри виртуальной машины. Паравиртуализация требует явной адаптации гостевой операционной системы к пара-API — обычный дистрибутив ОС, не поддерживающий паравиртуализацию, не может работать поверх паравиртуализирующего VMM. Однако даже в тех случаях, когда операционную систему нельзя изменить, могут быть доступны компоненты, обеспечивающие значительные преимущества паравиртуализации в плане производительности. Например, проект Xen Windows GPLPV предоставляет набор драйверов устройств, предназначенных для установки в виртуальную гостевую систему Microsoft Windows, работающую на гипервизоре Xen. Такие приложения обычно доступны через среду интерфейса паравиртуальной машины. Это обеспечивает совместимость режимов работы с различными моделями алгоритмов шифрования, позволяя бесшовную интеграцию в паравиртуальную среду.
In computing, paravirtualization or para virtualization is a virtualization technique that presents a software interface to the virtual machines which is similar, yet not identical, to the underlying hardware–software interface. The intent of the modified interface is to reduce the portion of the guest's execution time spent performing operations which are substantially more difficult to run in a virtual environment compared to a non virtualized environment. The paravirtualization provides specially defined 'hooks' to allow the guest(s) and host to request and acknowledge these tasks, which would otherwise be executed in the virtual domain (where execution performance is worse). A successful paravirtualized platform may allow the virtual machine monitor (VMM) to be simpler (by relocating execution of critical tasks from the virtual domain to the host domain), and/or reduce the overall performance degradation of machine execution inside the virtual guest. Paravirtualization requires the guest operating system to be explicitly ported for the para API – a conventional OS distribution that is not paravirtualization aware cannot be run on top of a paravirtualizing VMM. However, even in cases where the operating system cannot be modified, components may be available that enable many of the significant performance advantages of paravirtualization. For example, the Xen Windows GPLPV project provides a kit of paravirtualization aware device drivers, that are intended to be installed into a Microsoft Windows virtual guest running on the Xen hypervisor. Such applications tend to be accessible through the paravirtual machine interface environment. This ensures run mode compatibility across multiple encryption algorithm models, allowing seamless integration within the paravirtual framework.
История
Паравиртуализация – это новый термин для старой идеи. Операционная система IBM VM предлагает такую возможность с 1972 года (и ранее как CP 67). В мире виртуальных машин это называется "кодом диагностики", поскольку она использует код инструкции, который обычно используется только программным обеспечением для обслуживания оборудования и, следовательно, не определен. Операционная система Parallels Workstation называет свой эквивалент "гипервызовом". Все они представляют собой одно и то же: системный вызов к гипервизору нижнего уровня. Такие вызовы требуют поддержки в "гостевой" операционной системе, которая должна содержать код, специфичный для гипервизора, для выполнения таких вызовов. Термин "паравиртуализация" впервые был использован в научной литературе в связи с Denali Virtual Machine Manager. Этот термин также используется для описания гипервизоров Xen, L4, TRANGO, VMware, Wind River и XtratuM. Все эти проекты используют или могут использовать методы паравиртуализации для поддержки высокопроизводительных виртуальных машин на x86-аппаратном обеспечении, реализуя виртуальную машину, которая не реализует трудновиртуализируемые части фактического набора инструкций x86. Гипервизор обеспечивает виртуализацию базовой компьютерной системы. При полной виртуализации гостевая операционная система работает в неизменном виде на гипервизоре. Однако повышение производительности и эффективности достигается за счет взаимодействия гостевой операционной системы с гипервизором. Позволяя гостевой операционной системе сообщать о своих намерениях гипервизору, обе системы могут сотрудничать для достижения более высокой производительности при работе в виртуальной машине. Этот тип взаимодействия называется паравиртуализацией. В 2005 году VMware предложила интерфейс паравиртуализации – интерфейс виртуальной машины (VMI) – в качестве механизма связи между гостевой операционной системой и гипервизором. Этот интерфейс обеспечивал прозрачную паравиртуализацию, при которой одна двоичная версия операционной системы может работать либо на аппаратном обеспечении, либо на гипервизоре в паравиртуализированном режиме.
Поддержка оборудования
По мере того как процессоры AMD и Intel приобрели поддержку более эффективной аппаратной помощи виртуализации, стандарт устарел, и поддержка VMI была удалена из ядра Linux версии 2.6.37 и из продуктов VMware в 2011 году.
Поддержка операционной системы
В 2008 году Red Hat представила паравиртуализацию VirtIO для KVM и Linux, а также доступен драйвер VirtIO для Microsoft Windows. В 2008 году Microsoft представила паравиртуализацию Hyper-V.
Линукс
Первое появление поддержки паравиртуализации в Linux произошло с объединением порта ppc64 в 2002 году, который обеспечивал запуск Linux как паравиртуализированной гостевой системы на аппаратном обеспечении IBM pSeries (RS/6000) и iSeries (AS/400). На конференции USENIX в 2006 году в Бостоне, штат Массачусетс, несколько компаний, занимающихся разработкой Linux (включая IBM, VMware, Xen и Red Hat), совместно работали над альтернативной формой паравиртуализации, первоначально разработанной группой Xen, под названием "paravirt ops". Код paravirt ops (часто сокращаемый до pv ops) был включен в основное ядро Linux начиная с версии 2.6.23 и предоставляет гипервизор-независимый интерфейс между гипервизором и гостевыми ядрами. Поддержка pv ops гостевых ядер в дистрибутивах появилась, начиная с Ubuntu 7.04 и Red Hat 9. Гипервизоры Xen, основанные на ядре версии 2.6.24 или более поздней, поддерживают гостевые системы pv ops, как и продукт VMware Workstation, начиная с версии 6.
Поддержка программного обеспечения
VirtualBox также поддерживает это, начиная с версии 5.0.