Спасибо!

Мы Вам перезвоним.

Как настроить вложенную виртуализация Hyper-V

02 2026
1:35PM

Вложенная виртуализация (nested virtualization) - это запуск гипервизора внутри виртуальной машины, а не на физическом сервере. Звучит как техническая экзотика, но на практике администраторы включают ее регулярно: чтобы поднять тестовый кластер Hyper-V, проверить обновление Proxmox VE перед выкаткой на боевые ноды или обучить новых инженеров работе с KVM без выделения отдельного железа.

Проблема в том, что многие путают лабораторный инструмент с production-архитектурой. Ниже разбираем, как устроена вложенная виртуализация технически, какие требования предъявляют производители и где проходит граница между «можно тестировать» и «нельзя строить SLA».

Архитектура: L0, L1, L2

Схема простая, но именно в терминологии чаще всего путаются на собеседованиях и в тикетах поддержки.

  • L0 - физический сервер с базовым гипервизором (Hyper-V, ESXi, Proxmox VE, KVM), который управляет реальным железом.
  • L1 - гостевая виртуальная машина, внутри которой запущен второй гипервизор.
  • L2 - виртуальные машины, работающие уже внутри L1, то есть вложенные гости.

Для того чтобы L1 вообще увидел аппаратную виртуализацию, физический процессор должен поддерживать Intel VT-x или AMD-V, а гипервизор L0 обязан пробросить эти расширения внутрь гостя. Отдельно нужен второй уровень трансляции памяти: Intel EPT или AMD NPT/RVI. Без него гостевой гипервизор технически запустится, но производительность просядет так, что смысла в тесте почти не останется.

Термин Что это
L0 Физический хост с bare-metal гипервизором
L1 Гостевой гипервизор внутри ВМ на L0
L2 Вложенная виртуальная машина внутри L1
VT-x Аппаратные расширения виртуализации Intel
AMD-V / SVM Аппаратные расширения виртуализации AMD
EPT Extended Page Tables, второй уровень трансляции памяти у Intel
NPT / RVI Аналог EPT у AMD

Когда включать nested virtualization

Смысл в этой технологии появляется в нескольких конкретных ситуациях, и почти всегда речь о лаборатории, а не о боевой нагрузке.

Практика показывает, что чаще всего вложенную виртуализацию используют для:

  • обучения администраторов работе с Hyper-V, ESXi, Proxmox VE или KVM без закупки отдельных серверов;
  • проверки логики отказоустойчивого кластера, сценариев failover и процедур обновления гипервизора;
  • PoC перед покупкой оборудования, когда архитектуру нужно смоделировать быстро и без физических нод;
  • CI/CD и автоматизированного тестирования инфраструктурного ПО, где стенды создаются и удаляются десятками раз в день;
  • изолированных контейнерных сценариев вроде Hyper-V isolated containers или WSL2.

Важно сразу разделить, что на nested-стенде проверять действительно можно, а что переносить на production нельзя ни при каких условиях.

Можно проверить Нельзя экстраполировать на production
Установку и обновление гипервизора Latency СХД и реальные IOPS
Логику кластера и сценарии failover SLA по доступности и восстановлению
Скрипты автоматизации, Ansible, Terraform Производительность СУБД или 1С под нагрузкой
Обучение и сертификацию администраторов Пропускную способность сети 25/100 Гбит/с
Тестирование backup/restore-процедур Финальный sizing по vCPU, RAM и storage

Это не универсальное правило, а именно тот подход, который на практике снимает большинство вопросов заказчика еще до старта проекта.

Аппаратные требования и совместимость

Минимум, без которого вложенная виртуализация просто не заработает: x86-64 процессор с VT-x или AMD-V и вторым уровнем трансляции адресов (EPT или NPT/RVI). Microsoft в документации по nested Hyper-V прямо указывает эти требования, а Intel и AMD описывают соответствующие механизмы в своей архитектурной документации.

Платформа L0 Минимум Intel Минимум AMD Ограничения
Hyper-V Windows Server 2016 / Windows 10, VT-x + EPT Windows Server 2022 / Windows 11, AMD-V + NPT Dynamic Memory отключается, checkpoints ограничены
Proxmox VE 7.x+, рекомендуется 8.x, VT-x + EPT 7.x+, рекомендуется 8.x, AMD-V + NPT CPU type host обязателен
KVM/libvirt Ядро Linux 4.20+, VT-x Ядро Linux 4.20+, AMD-V host-passthrough обязателен
VMware ESXi ESXi 6.7+, VT-x + EPT ESXi 6.7+, AMD-V + RVI Не поддерживается для production

Здесь стоит сделать одну оговорку: ранние материалы про nested Hyper-V на AMD (примерно 2015 года) ограничивали технологию только процессорами Intel. Это давно устарело, современная документация Microsoft фиксирует поддержку AMD начиная с Windows Server 2022 и Windows 11. Если в интернете попадается старая статья с обратным утверждением, доверять ей не стоит.

Частая ошибка на этом этапе, причем не только у новичков: включают nested-режим только на уровне гипервизора, забыв проверить BIOS или UEFI физического сервера. Если VT-x или SVM отключены на железе, никакая команда внутри ВМ не даст результата, гостевой гипервизор просто не увидит нужные CPU-флаги.

По опыту работы с серверными платформами вроде HPE ProLiant DL380 Gen11 на двух Intel Xeon Gold 6430 (2 × 32 ядра, 256 ГБ RAM), такой конфигурации хватает на PoC-кластер из трех nested-гипервизоров с 4-6 вложенными гостями на каждом, если не гнаться за максимальной плотностью.

Sizing для лабораторных стендов

Цифры ниже - ориентир для планирования, а не бенчмарк. Реальная потребность зависит от гостевых ОС и характера нагрузки внутри L2.

Профиль vCPU на L1 RAM на L1 Storage Сценарий
Минимальная лаборатория 2-4 8-16 ГБ 100-200 ГБ SSD 1-2 nested ВМ, обучение
Стенд для обучения 4-8 16-32 ГБ 200-500 ГБ SSD/NVMe 2-4 nested ВМ, имитация кластера
PoC кластера виртуализации 8+ 32-64 ГБ 500+ ГБ NVMe 3+ nested гипервизора, тестирование failover

Как включить nested virtualization по платформам

Hyper-V

Включение выполняется на выключенной ВМ через PowerShell:

Stop-VM -Name "NestedHost01" Set-VMMemory -VMName "NestedHost01" -DynamicMemoryEnabled $false Set-VMProcessor -VMName "NestedHost01" -ExposeVirtualizationExtensions $true Start-VM -Name "NestedHost01"

Проверить, применился ли параметр, можно так:

Get-VMProcessor -VMName "NestedHost01" | Select-Object ExposeVirtualizationExtensions

Если ВМ не загружается после включения, в девяти случаях из десяти причина в том, что забыли отключить Dynamic Memory, это одна из самых частых ошибок при первой настройке. Для сети вложенных гостей нужен MAC Address Spoofing на адаптере L1:

Set-VMNetworkAdapter -VMName "NestedHost01" -MacAddressSpoofing On

Proxmox VE

Здесь включение происходит на двух уровнях: модуль ядра KVM и CPU type самой ВМ.

echo "options kvm_intel nested=1" > /etc/modprobe.d/kvm_intel.conf modprobe -r kvm_intel modprobe kvm_intel cat /sys/module/kvm_intel/parameters/nested

Для AMD команды аналогичны, только вместо kvm_intel везде kvm_amd. Для конкретной ВМ CPU type меняется через GUI (вкладка CPU) или командой:

qm set <VMID> --cpu host

Модуль ядра нельзя выгрузить, если на хосте работают ВМ, поэтому команды modprobe -r стоит выполнять только в maintenance window, иначе есть риск затронуть активные нагрузки.

KVM/libvirt

Логика та же, что в Proxmox, поскольку Proxmox использует KVM/QEMU под капотом. Дополнительно в libvirt для ВМ L1 нужен host-passthrough, а не именованная модель CPU:

<cpu mode='host-passthrough' check='none'/>

Named CPU model не пробросит нужные флаги, и внутри гостя команда grep -E 'vmx|svm' /proc/cpuinfo не выдаст ничего, даже если на хосте nested-режим включен корректно.

VMware ESXi

Включается через опцию «Expose hardware assisted virtualization to the guest OS» в настройках CPU виртуальной машины (ВМ должна быть выключена). Автоматизировать это можно через PowerCLI:

$vm = Get-VM -Name "NestedESXi01" $spec = New-Object VMware.Vim.VirtualMachineConfigSpec $spec.NestedHVEnabled = $true $vm.ExtensionData.ReconfigVM_Task($spec)

Для сети нужно перевести на порт-группе в Accept параметры Promiscuous mode, MAC address changes и Forged transmits, иначе трафик от вложенных гостей будет отбрасываться коммутатором как нелегитимный. Делать это стоит только на изолированной lab-portgroup: для production-сетей такая настройка заметно расширяет поверхность атаки.

Сеть: почему L2-гости часто «не пингуются»

Проблема одна и та же на всех платформах: MAC-адрес вложенной ВМ отличается от MAC самой ВМ L1, и коммутатор L0 по умолчанию отбрасывает такие кадры как подозрительные.

Платформа Решение
Hyper-V MAC Address Spoofing или NAT
Proxmox VE / KVM Linux bridge с нужными настройками MAC, либо NAT
VMware ESXi Promiscuous mode, MAC changes, Forged transmits на port group

Для корпоративной лаборатории на выделенном VLAN обычно проще и прозрачнее включить MAC spoofing или promiscuous mode. Для облачных стендов, где провайдер ограничивает L2-трафик по политике, остается только NAT, даже если он усложняет диагностику маршрутизации.

Ограничения и влияние на производительность

Каждый уровень вложения добавляет накладные расходы CPU, памяти и I/O. Больше всего страдает именно ввод-вывод: запрос проходит несколько уровней виртуальных устройств, и random I/O на nested-стенде может показывать latency в разы выше, чем на том же железе без вложения.

Microsoft прямо предупреждает, что nested Hyper-V не годится для производительно чувствительных приложений и не поддерживает Dynamic Memory, production checkpoints и часть сценариев live migration. Broadcom дает аналогичное предупреждение для nested ESXi: технология не рассчитана на production, за редкими специально оговоренными исключениями.

Открытых универсальных цифр деградации для Hyper-V, Proxmox/KVM и ESXi производители не публикуют, оценивать нужно конкретный профиль нагрузки инструментами вроде fio для storage, iperf3 для сети и stress-ng для CPU. Общая закономерность, которую подтверждает и практика, и материалы сообщества: потери на CPU обычно менее заметны, чем деградация storage I/O.

Диагностика частых проблем

Симптом Вероятная причина Что сделать
Внутри L1 не видны vmx или svm CPU-флаги не проброшены Включить CPU type host / host-passthrough / Expose virtualization extensions
Hyper-V не устанавливается внутри ВМ Dynamic Memory включена Set-VMMemory -DynamicMemoryEnabled $false
Нет сети у L2-гостей в Hyper-V Не включен MAC spoofing Set-VMNetworkAdapter -MacAddressSpoofing On
L2-гости в ESXi не пингуются Заблокированы MAC-адреса на порт-группе Включить Promiscuous mode, MAC changes, Forged transmits
nested=1 включен, но KVM в L1 не стартует ВМ использует generic CPU model Установить host-passthrough
Низкая производительность storage Двойной слой виртуального I/O Не использовать nested для замеров latency СХД

Безопасность и соответствие требованиям

Если на nested-стенде планируется работать с персональными данными, требования 152-ФЗ никуда не исчезают: production-данные в лаборатории без обезличивания использовать нельзя. Для организаций, подпадающих под 187-ФЗ о безопасности критической информационной инфраструктуры, лабораторные среды с вложенной виртуализацией должны быть изолированы от production-контуров. Отдельно стоит проверять совместимость сертифицированных средств защиты информации с nested-архитектурой по требованиям ФСТЭК, до развертывания, а не после.

Практический итог

По данным за 2026 год вложенная виртуализация остается в первую очередь инженерным инструментом для обучения, PoC и тестирования, а не архитектурой для промышленной эксплуатации. Прежде чем разворачивать стенд, стоит пройти короткий чек-лист:

  • Проверить поддержку VT-x/AMD-V с EPT/NPT на процессоре и убедиться, что виртуализация включена в BIOS или UEFI.
  • Определить масштаб: сколько L2-гостей нужно и требуется ли отказоустойчивость на уровне L1.
  • Заложить ресурсы с запасом, используя таблицу sizing выше как ориентир, а не жесткий норматив.
  • Изолировать lab-сеть и не включать promiscuous mode или MAC spoofing на production-портах.
  • Не переносить результаты по latency, IOPS и throughput с nested-стенда напрямую в расчеты боевой инфраструктуры.

Если задача - протестировать логику кластера, обновление гипервизора или обучить команду, nested virtualization экономит физические серверы и время. Если речь о боевой нагрузке с требованиями к SLA, разумнее сразу проектировать под гипервизор первого уровня на bare metal.

Оформление заказа
Мы, ООО «ЛанКей ИТ», гарантируем конфиденциальность получаемой нами информации. Обработка персональных данных осуществляется в целях исполнения заказов, договоров и пр. услуг в соответствии с «Политикой конфиденциальности персональных данных».
Отправляем...
Оформление заказа

0.00 ₽ /мес.

Количество лицензий:

Мы, ООО «ЛанКей ИТ», гарантируем конфиденциальность получаемой нами информации. Обработка персональных данных осуществляется в целях исполнения заказов, договоров и пр. услуг в соответствии с «Политикой конфиденциальности персональных данных».
Отправляем...