Вложенная виртуализация на 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 <VMName> -ExposeVirtualizationExtensions $true


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


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


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

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

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

1. Спуфинг MAC-адресов:
Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On


2. Режим NAT:
New-VMSwitch -Name VmNAT -SwitchType Internal
New-NetNat –Name LocalNAT –InternalIPInterfaceAddressPrefix “ipaddress/24”


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


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



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


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


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


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


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

Комментарии

Популярные сообщения из этого блога

Разные версии PHP на разных сайтах на одном сервере

Microsoft Office. Окно "Давайте начнем"

Импорт - Экспорт пользователей Active Directory