Вложенная виртуализация на 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. Окно "Давайте начнем"

Установка сервера 1С Пердприятие на Debian