Build 10565: в Hyper-V появилась поддержка вложенной виртуализации

В недавно выпущенной сборке Windows 10 Build 10565 стала доступна фнукция “вложенной виртуализации” (nested virtualization), позволяющая запускать виртуальную машину Hyper-V внутри другой виртуальной машины Hyper-V.

Для запуска виртуальных машин Hyper-V использует аппаратные технологии виртуализации (например, Intel VT-x и AMD-V). Обычно после установки Hyper-V гипервизор скрывает данные технологии от гостевых виртуальных машин, не позволяя, таким образом, установить Hyper-V внутри гостевой машины и создать виртуальные машины внутри уже существующей виртуальной машины.

Вложенная виртуализация устраняет это препятствие и позволяет запустить виртуальную машину внутри виртуальной машины.

Технические подробности

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

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

Чтобы включить поддержку вложенной виртуализации в виртуальной машине, необходимо выполнить следующий скрипт PowerShell (обратите внимание, что виртуальная машина должна быть в этот момент отключена):

Invoke-WebRequest https://raw.githubusercontent.com/Microsoft/Virtualization-Documentation/master/hyperv-tools/Nested/Enable-NestedVm.ps1 -OutFile ~/Enable-NestedVm.ps1
~/Enable-NestedVm.ps1 -VmName <VmName>

Для поддержки сети во вложенных виртуальных машинах необходимо включить спуфинг MAC-адресов:

Set-VMNetworkAdapter -VMName <VMName> -MacAddressSpoofing on

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

Кроме того, вложенная виртуализация на данный момент совместима исключительно с технологией виртуализации Intel VT-x.

Наконец, с вложенной виртуализацией несовместим ряд привычных функций, в том числе динамическая память. Если виртуальная машина с включенной вложенной виртуализацией по какой-либо причине не запускается, вы можете узнать, в чем проблема, запустив нижеприведенный скрипт:

Invoke-WebRequest https://raw.githubusercontent.com/Microsoft/Virtualization-Documentation/master/hyperv-tools/Nested/Get-NestedVirtStatus.ps1 -OutFile ~/Get-NestedVirtStatus.ps1
~/Get-NestedVirtStatus.ps1

Сейчас на сайте

Пользователей онлайн: 0.

Новые пользователи

  • Raiker
  • Dasus

Вебкасты