Паравиртуализация
Эта статья нуждается в дополнительных цитатах для проверки . ( июль 2013 г. ) |
В вычислительной технике паравиртуализация или паравиртуализация — это метод виртуализации , который представляет программный интерфейс для виртуальных машин , который аналогичен, но не идентичен базовому аппаратно-программному интерфейсу.
Целью модифицированного интерфейса является сокращение части времени выполнения гостя, затрачиваемого на выполнение операций, которые существенно сложнее выполнить в виртуальной среде по сравнению с невиртуализированной средой. Паравиртуализация предоставляет специально определенные «перехватчики», позволяющие гостю(ям) и хосту запрашивать и подтверждать эти задачи, которые в противном случае выполнялись бы в виртуальном домене (где производительность выполнения хуже). Успешная паравиртуализированная платформа может позволить монитор виртуальной машины упростить (VMM) (путем перемещения выполнения критических задач из виртуального домена в хост-домен) и/или уменьшить общее снижение производительности при выполнении машины внутри виртуального гостя.
Паравиртуализация требует, чтобы гостевая операционная система была явно портирована для паравиртуализации — обычный дистрибутив ОС, не поддерживающий паравиртуализацию, не может быть запущен поверх паравиртуализирующего VMM. Однако даже в тех случаях, когда операционную систему невозможно изменить, могут быть доступны компоненты, которые обеспечивают многие существенные преимущества паравиртуализации в производительности. Например, проект Xen Windows GPLPV предоставляет набор драйверов устройств с поддержкой паравиртуализации, которые предназначены для установки в виртуальную гостевую систему Microsoft Windows, работающую на гипервизоре Xen . [1] Такие приложения, как правило, доступны через среду паравиртуального машинного интерфейса. Это обеспечивает совместимость в рабочем режиме нескольких моделей алгоритмов шифрования, обеспечивая плавную интеграцию в паравиртуальную среду. [2]
История [ править ]
Паравиртуализация — это новый термин для старой идеи. Операционная система IBM VM предлагает такую возможность с 1972 года. [3] (и ранее как CP-67 ). В мире виртуальных машин это обозначается как «код ДИАГНОСТИКИ», поскольку он использует код инструкции, обычно используемый только программным обеспечением для обслуживания оборудования и, следовательно, неопределенный.
Операционная система Parallels Workstation называет свой эквивалент «гипервызовом». Все это одно и то же: системный вызов гипервизора ниже . Такие вызовы требуют поддержки в «гостевой» операционной системе, которая для выполнения таких вызовов должна иметь код, специфичный для гипервизора.
Термин «паравиртуализация» впервые был использован в исследовательской литературе в связи с диспетчером виртуальных машин Denali . [4] Этот термин также используется для описания Xen , L4 , TRANGO , VMware , Wind River и XtratuM гипервизоров . Все эти проекты используют или могут использовать методы паравиртуализации для поддержки высокопроизводительных виртуальных машин на оборудовании x86 путем реализации виртуальной машины, которая не реализует трудно виртуализируемые части фактического набора команд x86. [5]
Гипервизор обеспечивает виртуализацию базовой компьютерной системы. При полной виртуализации гостевая операционная система работает на гипервизоре без изменений. Однако повышение производительности и эффективности достигается за счет взаимодействия гостевой операционной системы с гипервизором. Позволяя гостевой операционной системе сообщить о своем намерении гипервизору, каждая из них может сотрудничать для повышения производительности при работе на виртуальной машине. Этот тип связи называется паравиртуализацией.
В 2005 году VMware предложила интерфейс паравиртуализации Virtual Machine Interface (VMI) в качестве механизма связи между гостевой операционной системой и гипервизором. Этот интерфейс обеспечил прозрачную паравиртуализацию, при которой одна двоичная версия операционной системы может работать либо на собственном оборудовании, либо на гипервизоре в паравиртуализированном режиме.
Аппаратная поддержка [ править ]
Поскольку процессоры AMD и Intel добавили поддержку более эффективной аппаратной виртуализации, стандарт устарел, а поддержка VMI была удалена из ядра Linux в версии 2.6.37. [6] и от продуктов VMware в 2011 году. [7]
Поддержка операционной системы [ править ]
В 2008 году Red Hat анонсировала паравиртуализацию VirtIO для KVM и Linux, также доступен драйвер VirtIO для Microsoft Windows.
В 2008 году Microsoft объявила о паравиртуализации Hyper-V .
Линукс [ править ]
Первое появление поддержки паравиртуализации в Linux произошло с объединением порта ppc64 в 2002 году. [8] который поддерживал запуск Linux в качестве паравиртуализированного гостя на оборудовании IBM pSeries (RS/6000) и iSeries (AS/400).
На конференции USENIX в 2006 году в Бостоне, штат Массачусетс , ряд поставщиков разработчиков Linux (включая IBM, VMware, Xen и Red Hat) совместно работали над альтернативной формой паравиртуализации, первоначально разработанной группой Xen, под названием «paravirt-ops». . [9] Код paravirt-ops (часто сокращается до pv-ops) был включен в основное ядро Linux начиная с версии 2.6.23 и обеспечивает независимый от гипервизора интерфейс между гипервизором и гостевыми ядрами. Поддержка гостевых ядер pv-ops в дистрибутиве появилась начиная с Ubuntu 7.04 и RedHat 9. Гипервизоры Xen, основанные на любом ядре 2.6.24 или более поздней версии, поддерживают гостей pv-ops, как и продукт VMware Workstation, начиная с версии 6. [10]
Поддержка программного обеспечения [ править ]
VirtualBox также поддерживает его начиная с версии 5.0.
См. также [ править ]
- Виртуализация на уровне операционной системы
- Экзоядро
- КВМ
- Логические домены (LDOM)
- Логический раздел (LPAR)
- Гипервизор
Ссылки [ править ]
- ^ «Установка подписанных драйверов GPLPV в экземплярах Windows Xen» . Юнивенция Вики . Проверено 10 апреля 2013 г.
Драйвер GPLPV — это драйвер для Microsoft Windows, который позволяет системам Windows DomU, виртуализированным в Xen, получать доступ к сети и блокировать драйверы Xen Dom0. Это обеспечивает значительный прирост производительности и надежности по сравнению со стандартными устройствами, эмулируемыми Xen/Qemu/Kvm.
- ^ Армстронг, Д. (2011). «Проблемы производительности в облаках: оценка распространения виртуальных изображений и паравиртуализации ввода-вывода». Компьютерный журнал . 54 (6): 836–849. дои : 10.1093/comjnl/bxr011 .
- ^ «История и наследие ВМ» . ИБМ . Проверено 10 октября 2007 г.
- ^ А. Уитакер; М. Шоу; С.Д. Гриббл (2002). «Денали: облегченные виртуальные машины для распределенных и сетевых приложений» . Технический отчет Вашингтонского университета. Архивировано из оригинала 14 января 2008 г. Проверено 9 декабря 2006 г.
- ^ Штробль, Мариус (2013). Виртуализация для надежных встраиваемых систем . Мюнхен: GRIN Publishing GmbH. п. 54,63. ISBN 978-3-656-49071-5 .
- ^ «kernel/git/torvalds/linux.git — дерево исходного кода ядра Linux» . Git.kernel.org . Проверено 3 марта 2017 г.
- ^ «Обновление: поддержка паравиртуализации гостевой ОС с использованием VMware VMI будет исключена из новых продуктов в 2010–2011 гг. — Руководство по установке гостевой ОС — Блоги VMware» . Блоги.vmware.com . 22 сентября 2009 г. Проверено 3 марта 2017 г.
- ^ Антон Бланшар. «Добавить поддержку ppc64» . ядро.орг . Проверено 24 апреля 2024 г.
- ^ «XenParavirtOps – Xen» . Wiki.xenproject.org . Проверено 3 марта 2017 г.
- ^ «VMware представляет поддержку кроссплатформенной паравиртуализации – VMware» . VMware. 16 мая 2008 г. Архивировано из оригинала 13 апреля 2011 г.
Внешние ссылки [ править ]
- Anandtech – Аппаратная виртуализация: гайки и болты Техническая статья о паравиртуализации