Серверная виртуализация

Как включить Intel VT-x, AMD-V и IOMMU в BIOS/UEFI сервера

Как проверить поддержку VT-x, AMD-V и IOMMU, включить нужные параметры BIOS/UEFI и подтвердить готовность ESXi, Hyper-V, Proxmox VE или KVM.

11 минут
абстрактная иллюстрация: сервер и настройки виртуализации
VT-x/AMD-V нужны для запуска обычных VM; VT-d/IOMMU — отдельное требование для PCIe passthrough.
Для обычных виртуальных машин включите аппаратную виртуализацию CPU: Intel VT-x на Intel или AMD-V на AMD. Для прямого назначения PCIe-устройства виртуальной машине, включая GPU Passthrough, дополнительно нужен Intel VT-d или IOMMU. После изменения BIOS/UEFI обязательно проверьте результат в ОС или гипервизоре: включённый пункт firmware сам по себе не подтверждает готовность всей платформы.

Что включать: VT-x, AMD-V, VT-d и IOMMU

VT-x/AMD-V и VT-d/IOMMU — независимые возможности. Включение одного параметра не включает другой.

ФункцияНазначениеКогда нужна
Intel VT-xРасширения CPU Intel для аппаратной виртуализации.Обычные VM на сервере с процессором Intel.
AMD-VРасширения CPU AMD для аппаратной виртуализации.Обычные VM на сервере с процессором AMD.
Intel VT-dРеализация виртуализации ввода-вывода Intel: управление DMA и изоляция PCIe-устройств.Прямое назначение PCIe-устройств VM, например GPU или сетевого адаптера.
AMD IOMMUМеханизм AMD для преобразования DMA-адресов и изоляции устройств; в Linux также может встречаться название AMD-Vi.Прямое назначение PCIe-устройств VM на платформе AMD.

Для запуска стандартных VM базово требуется VT-x или AMD-V. IOMMU не требуется для всех виртуальных машин и не ускоряет их автоматически: его включают, когда нужен passthrough PCIe-устройств, SR-IOV либо другая функция гипервизора, прямо требующая DMA-изоляции.

Конкретный гипервизор может требовать больше, чем базовую виртуализацию CPU. Например, для современных выпусков Hyper-V важны аппаратная виртуализация, DEP/NX/XD и SLAT; ESXi, Proxmox VE и KVM также имеют собственные матрицы совместимости CPU и серверного оборудования. Перед развёртыванием сверяйте требования именно выбранного релиза: например, VMware ESXi 8.0, Windows Server 2022, Proxmox VE 8 или используемого ядра Linux — с документацией его разработчика.

Проверьте поддержку до изменения BIOS/UEFI

Сначала зафиксируйте точную модель сервера, установленный процессор или процессоры, версию System BIOS/UEFI и целевой гипервизор. Эти данные обычно видны в инвентаризации удалённого контроллера, на экране BIOS/UEFI, в ОС или в сервисной метке сервера.

  • Для Intel найдите конкретную модель CPU в официальном каталоге Intel ARK и проверьте поля Intel Virtualization Technology (VT-x), а при необходимости виртуализации ввода-вывода — Intel Virtualization Technology for Directed I/O (VT-d).
  • Для AMD найдите конкретный SKU в официальном каталоге AMD Processor Specifications. Поддержка аппаратной виртуализации может обозначаться как AMD-V или AMD Virtualization Technology; поддержку AMD IOMMU или AMD-Vi дополнительно проверяйте по документации серверной платформы.
  • Не делайте вывод об IOMMU только по семейству или характеристикам процессора. Доступность функции зависит также от чипсета, системной платы, реализации BIOS/UEFI и открытых производителем параметров firmware.
  • Проверьте, что модель сервера поддерживается выбранным выпуском гипервизора. Поддержка функций CPU не заменяет проверку совместимости сервера, контроллеров хранения и сетевых адаптеров.

Документация производителя важнее общего пути меню

Названия и расположение параметров Virtualization Technology, VT-d и IOMMU зависят от производителя, модели, поколения сервера, установленного CPU и версии System BIOS/firmware. Для Dell PowerEdge откройте Dell Manuals, найдите сервер по сервисному тегу или точной модели и выберите руководство по System BIOS. Для HPE ProLiant откройте раздел руководств HPE Support Center, укажите точную модель и поколение и найдите UEFI System Utilities User Guide. Для серверов других производителей действуйте так же: перед изменением сверяйте название, допустимые значения и порядок применения параметра с официальным руководством именно к своей платформе.

Подготовьте сервер и доступ к нему

Изменение firmware требует перезагрузки

Перед сохранением BIOS/UEFI-настроек завершите или перенесите рабочие нагрузки и убедитесь, что известен порядок возврата прежних значений. При работе с PCIe passthrough, особенно с загрузочным или единственным GPU, локальная консоль может стать недоступной. Не рассчитывайте на неё как на единственный способ восстановления.
  • Сохраните текущие значения параметров BIOS/UEFI: экспортируйте профиль конфигурации, если платформа это поддерживает, либо зафиксируйте значения вручную.
  • Проверьте вход через out-of-band-консоль: iDRAC у Dell, iLO у HPE или аналогичный контроллер другого производителя. Нужны питание, удалённая KVM-консоль и доступ к виртуальному носителю, если он используется для восстановления.
  • Убедитесь, что у вас есть учётные данные BIOS/UEFI и удалённого контроллера.
  • Уточните в руководстве вашей модели, достаточно ли обычной перезагрузки. Для отдельных настроек некоторые платформы могут требовать полного выключения питания с последующим включением.
  • До изменений выполните проверку в текущей ОС или гипервизоре. Она даст исходную точку и поможет отличить старую проблему от результата изменения firmware.

Как включить виртуализацию в BIOS/UEFI

Общий порядок включения VT-x, AMD-V и IOMMU

Названия параметров различаются, но порядок действий для серверных платформ обычно одинаков.

  1. 1
    Откройте System Setup или UEFI Configuration
    Перезагрузите сервер и войдите в настройку firmware через локальную или out-of-band-консоль. Перед изменением сверяйте наименование пункта с руководством к модели и текущей версии firmware.
  2. 2
    Включите виртуализацию процессора
    Найдите параметр с названием, близким к Virtualization Technology, Intel Virtualization Technology, VT-x, AMD-V, SVM Mode или CPU Virtualization, и установите значение Enabled. Это базовая настройка для запуска VM.
  3. 3
    При необходимости включите виртуализацию ввода-вывода
    Если планируется назначение PCIe-устройств VM, найдите отдельный параметр VT-d, Intel VT for Directed I/O, IOMMU, AMD IOMMU или близкий по смыслу и включите его. Не заменяйте этим шагом включение VT-x или AMD-V: оба параметра могут быть нужны одновременно.
  4. 4
    Проверьте связанные ограничения
    Если документация платформы указывает зависимость от параметров PCIe, SR-IOV, Above 4G Decoding, памяти или безопасности, зафиксируйте текущие значения и меняйте только требуемое для вашего сценария. Для обычных VM эти дополнительные параметры, как правило, не нужны.
  5. 5
    Сохраните конфигурацию и перезапустите сервер
    Сохраните изменения и выполните перезагрузку. Если руководство к конкретной платформе требует полного отключения питания, выполните именно этот порядок. После старта убедитесь через удалённую консоль, что сервер загрузился штатно.
  6. 6
    Повторите проверку в ОС или гипервизоре
    Проверьте доступность функций средствами установленной платформы. Ожидаемый результат — гипервизор видит аппаратную виртуализацию, а при сценарии passthrough ОС видит активный IOMMU. Если этого нет, не переходите к настройке VM: сначала локализуйте причину по разделу диагностики ниже.

Ориентиры для Dell PowerEdge, HPE ProLiant и других серверов

На Dell PowerEdge параметры виртуализации обычно описаны в разделах System BIOS, Processor Settings и Integrated Devices, но структура зависит от поколения PowerEdge и версии System BIOS. В документации Dell ищите описания Virtualization Technology и Virtualization Technology for Direct I/O для конкретной модели.

На HPE ProLiant нужные параметры обычно относятся к UEFI System Utilities и настройкам процессора или виртуализации. В руководствах HPE они могут называться Intel (R) Virtualization Technology, Intel (R) VT-d, AMD-V или AMD IOMMU. Точное наличие пунктов определяется поколением ProLiant, CPU и установленным System ROM.

У других серверов ищите не «универсальный путь», а ключевые слова virtualization, VT-x, AMD-V, SVM, VT-d, IOMMU и directed I/O в поиске официального руководства или в справке BIOS/UEFI. Если параметра нет, не включайте похожие настройки наугад: сначала подтвердите поддержку CPU и платформы.

Проверьте результат в ESXi, Hyper-V, Proxmox VE и KVM

Проверка состоит из двух уровней. На уровне ОС или firmware важно убедиться, что CPU-флаг и IOMMU доступны хосту. На уровне гипервизора нужно подтвердить, что выбранный продукт может использовать эти возможности. Флаг CPU сам по себе не доказывает, что конкретный выпуск гипервизора поддерживает сервер или passthrough.

VMware ESXi

В интерфейсе VMware ESXi просмотрите сведения хоста о процессоре и предупреждения совместимости. При включённом ESXi Shell или SSH можно запросить глобальные свойства CPU.

Выводит глобальные свойства CPU, включая состояние аппаратной виртуализации на хосте ESXi.
esxcli hardware cpu global get
Вывод:
Найдите поле `HV Support`. Типичный положительный результат — `HV Support: 3`: ESXi видит доступную аппаратную виртуализацию. Если значение отличается или поле отсутствует, сверяйте его смысл с документацией установленного выпуска ESXi, затем проверяйте поддержку CPU и состояние VT-x/AMD-V в BIOS/UEFI.

Для PCIe passthrough дополнительно проверьте, что ESXi обнаружил нужное устройство и разрешает его использование в режиме DirectPath I/O. Доступность устройства зависит не только от VT-d: важны поддержка сервера, PCIe-топология, совместимость устройства и ограничения выбранного релиза ESXi. Подробный сценарий — в статье «GPU passthrough и вложенная виртуализация в ESXi и Proxmox VE».

Windows Server с Hyper-V

Для Hyper-V в Windows Server используйте системную проверку требований. Выполняйте её в PowerShell или командной строке с правами, достаточными для просмотра системных сведений.

В конце вывода Windows показывает требования Hyper-V и их состояние.
systeminfo.exe
Вывод:
Ищите раздел `Hyper-V Requirements`. До установки роли строки о VM Monitor Mode Extensions, Firmware Enabled Virtualization, SLAT и DEP должны сообщать о выполнении требований. Если гипервизор уже запущен, Windows может вывести сообщение, что обнаружен hypervisor; это нормально, но для диагностики firmware полезно сопоставить результат с данными BIOS/UEFI.

Если systeminfo.exe сообщает, что виртуализация не включена в firmware, включите VT-x или AMD-V. Если не выполнено требование Data Execution Prevention, включите аппаратную функцию NX на AMD либо XD/Execute Disable на Intel и проверьте состояние DEP в Windows. Для современных выпусков Windows Server с Hyper-V аппаратная виртуализация, SLAT и аппаратно поддерживаемый DEP обязательны; точный набор требований дополнительных функций сверяйте с документацией установленного выпуска.

Proxmox VE и Linux с KVM

Proxmox VE использует QEMU/KVM; базовая проверка на узле аналогична Linux с KVM. Сначала проверьте, что процессор сообщает о режиме виртуализации.

Показывает режим виртуализации, обнаруженный Linux.
lscpu | grep -i virtualization
Вывод:
Обычно ожидается строка `Virtualization: VT-x` для Intel либо `Virtualization: AMD-V` для AMD. Отсутствие строки не всегда окончательный диагноз: проверьте также CPU-флаги и журналы ядра.
Проверяет флаг VT-x (`vmx`) или AMD-V (`svm`) в информации, доступной ядру Linux.
grep -Ewo 'vmx|svm' /proc/cpuinfo | sort -u
Вывод:
Ожидается `vmx` на Intel или `svm` на AMD. Пустой вывод означает, что флаг не предоставлен ОС: проверьте CPU, BIOS/UEFI и не запущена ли сама ОС внутри VM без проброса виртуализации.
Проверяет наличие интерфейса KVM, который использует QEMU.
test -e /dev/kvm && echo 'KVM device available' || echo 'KVM device unavailable'
Вывод:
Ожидается `KVM device available`. При отсутствии устройства проверьте загрузку модулей `kvm_intel` или `kvm_amd`, сообщения ядра и доступность VT-x/AMD-V.
Ищет в журнале ядра сообщения об инициализации Intel DMAR/VT-d или AMD IOMMU. Выполняйте команду с правами root; сначала исключите ошибку доступа к журналу ядра.
dmesg | grep -Ei 'DMAR|IOMMU|AMD-Vi'
Вывод:
Ожидаются сообщения об обнаружении и включении IOMMU. Одно упоминание IOMMU не подтверждает готовность конкретного устройства к passthrough: дополнительно проверяют IOMMU-группу, драйвер и состояние устройства на уровне гипервизора.

Команды зависят от окружения

Формат вывода lscpu, dmesg, ESXi CLI и Windows systeminfo зависит от версии ОС, ядра и утилит. Проверяйте смысл полей, а не точное совпадение строк с примером.

Если VT-x, AMD-V или IOMMU всё ещё недоступны

Проблема

Гипервизор не видит VT-x или AMD-V после включения параметра

Возможные причины

  • Установленная модель CPU не поддерживает нужную функцию или функция ограничена конкретной конфигурацией платформы.
  • Изменение в BIOS/UEFI не было сохранено, сброшено политикой или применено не ко всем процессорам.
  • Платформе требуется полное выключение питания, а была выполнена только перезагрузка.
  • Хост сам работает как VM, а внешний гипервизор не предоставил вложенную виртуализацию.
  • Выбранный выпуск гипервизора не поддерживает сервер или его конфигурацию.

Решение

Последовательно сверьте точный CPU с официальной спецификацией, подтвердите в BIOS/UEFI фактическое значение параметра, выполните требуемый производителем цикл питания и повторите проверку. Затем проверьте совместимость модели сервера с релизом гипервизора. Если хост является VM, настройте nested virtualization на внешнем уровне либо используйте физический сервер.

Как избежать

Перед изменением зафиксируйте модель CPU, версию firmware, текущие настройки и результат исходной проверки.

Проблема

IOMMU включён, но PCIe-устройство нельзя назначить VM

Возможные причины

  • Устройство находится в общей IOMMU-группе с критичным устройством.
  • Гипервизор, устройство, драйвер или PCIe-топология не поддерживают выбранный сценарий.
  • Устройство используется хостом, например является загрузочным контроллером, единственным GPU консоли или активным сетевым адаптером управления.
  • Для сценария нужны дополнительные настройки VM и платформы, помимо включения IOMMU.

Решение

Не пытайтесь назначать устройство, от которого зависит загрузка или управление хостом. Проверьте IOMMU-группу, поддержку устройства у производителя гипервизора и требования к VM. Выполняйте настройку passthrough с рабочей out-of-band-консолью по профильной инструкции.

Как избежать

До изменения проверяйте роль каждого PCIe-устройства и сохраняйте независимый канал управления сервером.

Почему IOMMU недостаточно для GPU passthrough и что отдельно требуется для nested virtualization

IOMMU — обязательная основа для многих сценариев PCIe passthrough, но не готовая настройка GPU passthrough. Нужны также совместимые сервер, GPU и гипервизор, корректная PCIe-топология и IOMMU-группа, поддерживаемый драйвер, настройка VM и безопасный способ управлять хостом после отвязки устройства. Требования и ограничения различаются между VMware ESXi и Proxmox VE.

Вложенная виртуализация — другой сценарий. VT-x/AMD-V должны быть доступны физическому хосту, но затем внешний гипервизор должен явно предоставить эти расширения конкретной VM. Для внутреннего гипервизора могут потребоваться подходящий тип виртуального CPU, SLAT и дополнительные параметры VM. Включение VT-x/AMD-V в BIOS/UEFI само по себе не даёт вложенной VM доступ к аппаратной виртуализации.

Настройка DirectPath I/O, VFIO, PCIe-устройств и nested virtualization выходит за рамки подготовки физического сервера. Практические шаги и ограничения для ESXi и Proxmox VE собраны в статье «GPU passthrough и вложенная виртуализация в ESXi и Proxmox VE».

Дальнейшую установку и создание VM выполняйте в руководствах по ESXi, Hyper-V, Proxmox VE или KVM/QEMU/libvirt.

Термины в статье

Аппаратная виртуализация — способ запуска ВМ с поддержкой процессора и платформы, где привилегированные операции гостя обрабатываются специальными механизмами CPU, а не только программной эмуляцией.
Технология абстрагирования физических вычислительных ресурсов, позволяющая создавать виртуальные серверы, хранилища, сети и другие логические ресурсы.
Изолированная вычислительная среда с виртуальными процессорами, памятью, дисками и сетевыми адаптерами, в которой под управлением гипервизора работает гостевая ОС.
Ядро Linux — центральный компонент ОС, управляющий аппаратными ресурсами и предоставляющий системные интерфейсы; оно не включает пользовательские утилиты и менеджер пакетов.
ESXi Shell — локальная командная оболочка VMware ESXi для диагностики и администрирования хоста. Удалённый доступ к командной среде предоставляется отдельно включаемой службой SSH.
Режим назначения физического GPU виртуальной машине через PCIe/IOMMU, при котором гостевая ОС обращается к устройству напрямую с минимальными накладными расходами.
Платформа виртуализации Microsoft с гипервизором типа 1, доступная как роль Windows Server и компонент Windows 10/11 Pro, Enterprise и Education.
Intel VT-d — технология аппаратной виртуализации ввода-вывода Intel, ограничивающая DMA устройств и позволяющая безопаснее назначать их виртуальным машинам.
Intel VT-x — расширение процессоров Intel для аппаратной виртуализации x86, вводящее режимы VMX для выполнения гостевых ОС под контролем гипервизора без полной программной эмуляции.
IOMMU — аппаратный блок, который преобразует адреса DMA-запросов устройств в адреса физической памяти и ограничивает их доступ; нужен для изоляции и прямого назначения PCIe-устройств ВМ.
Подсистема аппаратной виртуализации ядра Linux, предоставляющая пользовательским мониторам ВМ, обычно QEMU, интерфейс для запуска изолированных виртуальных машин.
Вложенная виртуализация — возможность запускать гипервизор и виртуальные машины второго уровня внутри обычной виртуальной машины.
Открытая платформа серверной виртуализации на базе Debian, использующая QEMU/KVM для виртуальных машин и LXC для системных Linux-контейнеров.
QEMU — открытый эмулятор вычислительных систем и монитор виртуальных машин; в Linux он может использовать KVM для виртуализации с аппаратным ускорением.
Спецификация PCI-SIG для PCIe, позволяющая физическому устройству создавать виртуальные функции (VF), назначаемые виртуальным машинам для близкого к прямому доступа.
SSH — криптографический сетевой протокол для удалённого доступа и передачи данных, аутентифицирующий стороны и защищающий сеанс от перехвата.
vCPU — виртуальный логический процессор, предоставляемый виртуальной машине; гипервизор планирует его выполнение на процессорных ресурсах хоста.
VMware ESXi — гипервизор типа 1, устанавливаемый непосредственно на совместимый физический сервер для запуска и управления виртуальными машинами.

Вопросы по теме

Все вопросы и ответы

Нужно ли включать IOMMU для обычных виртуальных машин?

Нет. Для запуска обычных виртуальных машин достаточно включить аппаратную виртуализацию процессора: Intel VT-x на Intel или AMD-V на AMD. IOMMU, Intel VT-d или AMD IOMMU нужны для прямого назначения PCIe-устройств виртуальной машине, SR-IOV и других сценариев, которым требуется DMA-изоляция. Само по себе включение IOMMU не ускоряет обычные VM.

Достаточно ли включить VT-d или IOMMU без VT-x и AMD-V?

Нет. VT-d и IOMMU отвечают за виртуализацию ввода-вывода, DMA и изоляцию PCIe-устройств, а не заменяют виртуализацию процессора. Для обычных VM требуется VT-x либо AMD-V. Если нужен PCIe passthrough, например GPU, обычно необходимо включить и виртуализацию CPU, и отдельный параметр VT-d или IOMMU.

Почему Linux не видит vmx или svm после изменения BIOS?

Сначала проверьте, что в BIOS/UEFI параметр Virtualization Technology, VT-x, AMD-V, SVM Mode или CPU Virtualization действительно имеет значение Enabled. Затем уточните в документации сервера, достаточно ли перезагрузки: отдельные платформы применяют такие настройки только после полного выключения и включения питания.

Сверьте точную модель CPU с официальной спецификацией производителя. Для Intel проверяют наличие VT-x, для AMD — AMD-V или AMD Virtualization Technology. Если сервер сам является виртуальной машиной, флаги vmx или svm не появятся, пока внешний гипервизор явно не предоставит вложенную виртуализацию.

После этого повторите проверку: lscpu | grep -i virtualization, поиск vmx или svm в /proc/cpuinfo и наличие /dev/kvm. Если проблема сохраняется, проверьте совместимость конкретного релиза ESXi, Proxmox VE, Windows Server или ядра Linux с моделью сервера и его конфигурацией.

Можно ли назначить GPU виртуальной машине сразу после включения IOMMU?

После включения IOMMU убедитесь, что гипервизор или ОС видит его инициализацию. В Linux для этого проверяют сообщения DMAR, IOMMU или AMD-Vi в журнале ядра; в ESXi — доступность устройства для DirectPath I/O. Однако это подтверждает только базовую готовность механизма, а не возможность передать конкретный GPU.

Проверьте IOMMU-группу устройства: GPU может находиться в одной группе с критичным оборудованием. Оцените PCIe-топологию, поддержку устройства и драйвера выбранным гипервизором, а также требования к настройке самой VM. Не назначайте устройству VM роль, от которой зависит загрузка, сеть управления или локальная консоль хоста.

До эксперимента подготовьте независимый out-of-band-доступ — например, iDRAC или iLO с удалённой KVM-консолью. После отвязки единственного GPU локальная консоль сервера может стать недоступной, даже если сам хост продолжит работать.

Что ещё нужно Hyper-V, кроме включённой виртуализации CPU?

Для современных выпусков Hyper-V нужны не только VT-x или AMD-V, но также SLAT и аппаратно поддерживаемый DEP: NX на AMD либо XD/Execute Disable на Intel. Проверьте результат командой systeminfo.exe: в конце вывода Windows показывает состояние требований Hyper-V. Точный набор требований зависит от используемого выпуска Windows Server.