
Я пытаюсь понять, какие типы виртуализации существуют, и для решения этой задачи я нашел книгу Дицзяна Хуана и Хуэйцзюня У «Мобильные облачные вычисления».
Приведенные ниже отрывки также доступны в Google Books:https://books.google.com/books?id=dupGDgAAQBAJ.
Из раздела 2.2.3, таблицы 2.2, стр. 42:
HAL (полный)
- Описание:Гипервизор предоставляет полноценную виртуальную машину (с той же вычислительной архитектурой, что и хост), позволяющую немодифицированным гостевым системам работать изолированно.
- Преимущества:Гибкость в использовании различных версий ОС от разных поставщиков.
- Недостатки:Гостевая ОС не знает, что она виртуализируется; это может привести к значительному снижению производительности на стандартном оборудовании, особенно для приложений с интенсивным вводом-выводом.
HAL (параллельный)
- Описание:Гипервизор предоставляет каждому гостю полноценную, но специализированную виртуальную машину (с той же вычислительной архитектурой, что и хост), позволяя модифицированным гостям работать изолированно.
- Преимущества:Легкий и быстрый, со скоростью, близкой к собственной; продемонстрировала работу в диапазоне накладных расходов 0,5–3,0 %; позволяет ОС взаимодействовать с гипервизором — улучшает ввод-вывод и планирование ресурсов; позволяет виртуализировать архитектуры, которые не поддерживают полную виртуализацию.
- Недостатки:Требует портирования гостевой ОС для использования гипервызовов вместо чувствительных инструкций. Главное ограничение параллельной виртуализации заключается в том, что гостевая ОС должна быть специально адаптирована для работы поверх монитора виртуальной машины (VMM), хостовой программы, которая поддерживает несколько идентичных сред выполнения. Это особенно влияет на устаревшие ОС с закрытым исходным кодом, которые еще не реализовали параллельные виртуализированные расширения.
Здесь «параллельная виртуализация» выглядит как синоним «паравиртуализации». (Я никогда не слышал термина «параллельная виртуализация» до прочтения книги. Термин «паравиртуализация», с другой стороны, хорошо известен в Интернете.)
Однако в разделе 2.2.2, стр. 39, книга, по-видимому, противоречит предыдущему отрывку:
В третьей классификации виртуализации, представленной в разделе 2.2.3, мы подробно рассмотрим два наиболее популярных решения виртуализации на основе HAL, а именно параллельную виртуализацию (или виртуализацию на базе bare-metal, или виртуализацию типа 1) и виртуализацию на основе хоста (или виртуализацию типа 2).
То есть, подведем итог:
- Раздел 2.2.3: Параллельная виртуализация — это то же самое, что и паравиртуализация.
- Раздел 2.2.2: Параллельная виртуализация — это то же самое, что и виртуализация на «голом железе» (или тип 1).
- Однако, насколько я знаю, паравиртуализация и виртуализация bare-metal (она же Type-1) — это две разные вещи. Не одно и то же.
Вопросы:
- Правда ли, что 2-й отрывок противоречит 1-му?
- Правда ли, что паравиртуализация и виртуализация на «голом железе» (или тип 1) — это две разные вещи?
- Согласны ли вы, что отрывок со страницы 42 правильный, а отрывок со страницы 39 —нетправильно? Как бы вы объяснили отрывок со страницы 39?
решение1
Правда ли, что паравиртуализация и виртуализация на «голом железе» (или тип 1) — это две разные вещи?
Оптимизация гостевых систем с удалением уровней абстракции — это совсем другое дело, чем если бы гипервизор находился поверх операционной системы общего назначения.
QEMU — это эмулятор. Добавьте KVM, и аппаратное ускорение снизит накладные расходы до минимума, фактически сделав его типом 1. Кроме того, KVM имеет паравиртуализированные гостевые драйверы. Тем не менее, и QEMU, и KVM работают на операционных системах общего назначения; вы можете запускать произвольные приложения на своих виртуальных хостах.
Hyper-Vзапускает прямой доступ к оборудованию через привилегированный корневой раздел с Windows. Похоже на тип 2. Тем не менее, слои между гостями и оборудованием минимальны, вы не можете запускать пользовательские процессы вне разделов Hyper-V.
Может помочь схема абстракций. Реализации не сортируются так аккуратно по бинарным категориям, как предполагает тип 1 против типа 2. Такие категории не обязательно измеряют практические соображения, такие как накладные расходы по сравнению с голым железом или безопасность и удобство обслуживания, как можно надеяться, простого гипервизора.
Раннее использование термина «паравиртуализация» встречается вСтатья Денали из Вашингтонского университета. По крайней мере,бумага Xenцитирует Денали как создателя термина. Я не могу найти никаких доказательств его происхождения от "parallel". Возможно, он был предназначен для обозначения "beside" и "assisting" значений префикса para-.