Вложенная виртуализация — это компонент, который позволяет запускать Hyper-V в виртуальной машине (ВМ) Hyper-V. Это полезно для запуска эмулятора телефона Visual Studio на виртуальной машине и для тестирования конфигураций, для которых обычно требуется несколько узлов.
Предварительные требования
Процессор Intel с технологиями VT-x и EPT.
Узел Hyper-V должен работать под управлением Windows Server 2016/Windows 10 или более поздней версии.
Версия конфигурации виртуальной машины 8.0 или более поздняя.
Процессор AMD EPYC/Ryzen или более новый.
Узел Hyper-V должен работать под управлением Windows Server 2022/Windows 11 или более поздней версии.
Версия конфигурации виртуальной машины 10.0 или более поздняя.
Создайте виртуальную машину. Необходимые версии ОС и виртуальных машин см. в предварительных требованиях выше.
Пока виртуальная машина находится в отключенном состоянии, запустите следующую команду на физическом узле Hyper-V. В виртуальной машине будет включена вложенная виртуализация.
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
Запустите виртуальную машину.
Установите Hyper-V в виртуальной машине так же, как на физическом сервере. Дополнительные сведения об установке Hyper-V см. в разделе Установка Hyper-V.
Отключение вложенной виртуализации
Вы можете отключить вложенную виртуализацию в остановленной виртуальной машине следующей командой PowerShell:
Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $false
Изменение размера динамической памяти и памяти для среды выполнения
При запуске Hyper-V в виртуальной машине в ней должна быть отключена настройка памяти. Это означает, что даже если динамическая память включена, ее объем не будет изменяться. Для виртуальных машин без динамической памяти все попытки изменить объем памяти включенной машины завершатся сбоем.
Обратите внимание, что само включение вложенной виртуализации не повлияет на изменение размера динамической памяти или памяти для среды выполнения. Несовместимость происходит, только если Hyper-V выполняется в виртуальной машине.
Параметры сетей
Существуют два параметра для сетей со вложенными виртуальными машинами:
спуфинг MAC-адресов;
Сеть NAT
Спуфинг MAC-адресов
Чтобы сетевые пакеты перенаправлялись через два виртуальных коммутатора, необходимо включить спуфинг MAC-адресов на первом (L1) уровне виртуального коммутатора. Это можно сделать с помощью следующей команды PowerShell.
Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On
На схеме ниже показана роль Hyper-V без вложения. Низкоуровневая оболочка Hyper-V полностью контролирует возможности аппаратной виртуализации (оранжевая стрелка) и скрывает их от операционной системы.
На следующей схеме показана роль Hyper-V с включенной вложенной виртуализацией. В этом случае Hyper-V предоставляет расширения аппаратной виртуализации виртуальным машинам. Если вложение включено, гостевая виртуальная машина может установить собственную низкоуровневую оболочку и запускать свои гостевые виртуальные машины.
Diagram of the levels of Hyper V with nested virtualization enabled