Что такое вложенная виртуализация?

Вложенная виртуализация — это функция, которая позволяет запускать Hyper-V на виртуальной машине Hyper-V. С годами оборудование улучшилось, а варианты использования вложенной виртуализации расширились. Например, вложенная виртуализация может быть полезна для:

  • Запуск приложений или эмуляторов на вложенной виртуальной машине
  • Тестирование выпусков программного обеспечения на виртуальных машинах
  • Сокращение времени развертывания для сред обучения
  • Использование изоляции Hyper-V для контейнеров

Современные процессоры поддерживают аппаратные функции, которые делают виртуализацию быстрее и надежнее. Hyper-V использует эти расширения процессора для запуска виртуальных машин, например Intel VT-x и AMD-V. Вложенная виртуализация предоставляет поддержку этих аппаратных функций гостевым виртуальным машинам.

На следующей схеме показан Hyper-V без вложения. Гипервизор Hyper-V полностью контролирует возможности аппаратной виртуализации (оранжевая стрелка) и не предоставляет их гостевой операционной системе.

Схема уровней Hyper V с отключенной вложенной виртуализацией.

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

Схема уровней Hyper V с включенной вложенной виртуализацией.

Изменение размера динамической памяти и памяти для среды выполнения

При запуске Hyper-V в виртуальной машине в ней должна быть отключена настройка памяти. Это означает, что даже если включена динамическая память, объем памяти не изменяется. Простое включение вложенной виртуализации не влияет на динамическую память или размер памяти среды выполнения.

Для виртуальных машин без включенной динамической памяти попытка настроить объем памяти во время выполнения завершается сбоем. Несовместимость происходит, только если Hyper-V выполняется в виртуальной машине.

Сторонние приложения виртуализации

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

Поддерживаемые сценарии

Использование вложенной виртуальной машины Hyper-V в рабочей среде поддерживается как в Azure, так и в локальной среде в следующих сценариях. Мы также рекомендуем убедиться, что ваши службы и приложения также поддерживаются.

Вложенная виртуализация не подходит для отказоустойчивой кластеризации Windows Server и приложений, чувствительных к производительности. Мы рекомендуем полностью оценить службы и приложения.

Виртуальные машины Hyper-V на виртуальных машинах Hyper-V

Запуск виртуальных машин Hyper-V, вложенных в виртуальные машины Hyper-V, отлично подходит для лабораторий тестирования и сред оценки. Особенно в тех случаях, когда конфигурации можно легко изменять, а состояния сохранения можно использовать для отменить изменения к определенным конфигурациям. Лаборатории тестирования обычно не требуют того же соглашения об уровне обслуживания (SLA), что и в рабочих средах.

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

Дополнительные сведения о настройке вложенной виртуализации в Azure см. в блоге Tech Community How to Setup Nested Virtualization for Azure VM/VHD (Настройка вложенной виртуализации для виртуальной машины и виртуального жесткого диска Azure).

Виртуализация сторонних производителей на основе виртуализации Hyper-V

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

Виртуализация Hyper-V на сторонней виртуализации

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

Azure Stack HCI, вложенный в виртуальные машины Hyper-V

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

Дополнительные сведения об Azure Stack HCI, вложенном на виртуальных машинах Hyper-V, см. в статье Вложенная виртуализация в Azure Stack HCI.

Изолированные контейнеры Hyper-V, вложенные в Hyper-V

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

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

Поддерживается запуск изолированных контейнеров Hyper-V, вложенных в Hyper-V.

Дополнительные сведения о вложенных контейнерах Hyper-V см. в статье Настройка производительности контейнеров Windows Server.

Запуск WSL2 на виртуальной машине Hyper-V, вложенной в Hyper-V

подсистема Windows для Linux (WSL) — это функция операционной системы Windows, которая позволяет запускать файловую систему Linux, а также программы командной строки Linux и приложения графического пользовательского интерфейса непосредственно в Windows.

Поддерживается запуск WSL2 на виртуальной машине Hyper-V, вложенной в Hyper-V.

Дополнительные сведения о том, как включить WSL 2 для работы на виртуальной машине, см. в статье Часто задаваемые вопросы о подсистема Windows для Linux.

Следующий шаг