Поддержка вложенной виртуализации (Nested Virtualization) в Hyper-V

Буквально сразу после анонса Windows 10 Insider Preview Build 10565 команда виртуализации Microsoft в лице Тео Томпсона заявила о возможности использования вложенной виртуализации в этой версии сборки.

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

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

Безусловно, использование предварительных версий предполагает под собой использование таких возможностей исключительно в лабораторных целях и пока накладывает определённые ограничения и требования, как то:

  • Использование в родительском и гостевых разделах Hyper-V сборок 105065 (и новее),
  • Использование процессоров только Intel с функцией Inter-VT-x,
  • Необходимость отключения Virtualization Based Security (VBS),
  • Необходимость включения MAC spoofing,
  • Отсутствие поддержки динамической памяти и динамического изменения памяти при запущенной операционной системе,
  • Отсутствие поддержки динамической миграции виртуальных машин,
  • Отсутствие поддержки моментальных снимков и состояний Save/Restore

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