Вложенная виртуализация на Hyper-V (Nested Virtualization)

В предыдущей теме мы установили Hyper-V на VMware Workstation, сегодня установим Hyper-V внутри Hyper-V.

Начиная с версии Server 2016 и Windows 10 Anniversary Update и старше реализована технология SLAT, что позволяет включать вложенную виртуализацию (Nested Virtualization).

Требования для Nested Virtualization:

  • Узел Hyper-V и виртуальная машина (ВМ) должны быть размещены в Windows Server 2016, Windows 10 Anniversary Update или более поздней версии.
  • Версия конфигурации Виртуальной машины 8.0 или более поздняя.
  • Процессор Intel с технологией Intel VT-x и EPT (вложение сейчас поддерживается только для процессоров Intel).

Поддерживает ли процессор SLAT?

Итак, если попробовать установить роль Hyper-V на виртуальную машину, то получим такой результат (на виртуальной машине установлен Server 2019)

Включим возможность процессора:

Set-VMProcessor -VMName  -ExposeVirtualizationExtensions $true

На ВМ не должно быть динамической памяти и live migration.

Попробуем еще раз установить роль Hyper-V

Роль Hyper-V устанавливается.

Если есть необходимость в сетевом взаимодействии с родительской Hyper-V, хостом и Интернетом, то нужно настроить сетевое взаимодействие.

По сути мы получаем виртуальную среду внутри виртуальной и логика должна быть сохранена. Т.е. мы должны разрешить виртуализацию MAC адресов (MacAddressSpoofing), создание виртуальных свитчей внутри самой виртуализации (режим NAT).

Спуфинг MAC-адресов:

Get-VMNetworkAdapter -VMName  | Set-VMNetworkAdapter -MacAddressSpoofing On

Режим NAT:

New-VMSwitch -Name VmNAT -SwitchType Internal
New-NetNat –Name LocalNAT –InternalIPInterfaceAddressPrefix “ipaddress/24”

Назначим IP-адрес для сетевого адаптера NAT свитча:

Здесь мы определили тип свитча (Internal) и задали IP адресацию и получили следующее:

Далее делаем настройки сети виртуальной машины:

Или так, кому как удобно

Настраиваем сетевое взаимодействие между ВМ и Hyper-V хоста. В настройках ВМ Network Adapter должен быть подключен к NAT свитчу

Проверим пинги

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

Top