Что включать: 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 не заменяет проверку совместимости сервера, контроллеров хранения и сетевых адаптеров.
Документация производителя важнее общего пути меню
Подготовьте сервер и доступ к нему
Изменение firmware требует перезагрузки
- Сохраните текущие значения параметров BIOS/UEFI: экспортируйте профиль конфигурации, если платформа это поддерживает, либо зафиксируйте значения вручную.
- Проверьте вход через out-of-band-консоль: iDRAC у Dell, iLO у HPE или аналогичный контроллер другого производителя. Нужны питание, удалённая KVM-консоль и доступ к виртуальному носителю, если он используется для восстановления.
- Убедитесь, что у вас есть учётные данные BIOS/UEFI и удалённого контроллера.
- Уточните в руководстве вашей модели, достаточно ли обычной перезагрузки. Для отдельных настроек некоторые платформы могут требовать полного выключения питания с последующим включением.
- До изменений выполните проверку в текущей ОС или гипервизоре. Она даст исходную точку и поможет отличить старую проблему от результата изменения firmware.
Как включить виртуализацию в BIOS/UEFI
Общий порядок включения VT-x, AMD-V и IOMMU
Названия параметров различаются, но порядок действий для серверных платформ обычно одинаков.
- 1Откройте System Setup или UEFI ConfigurationПерезагрузите сервер и войдите в настройку firmware через локальную или out-of-band-консоль. Перед изменением сверяйте наименование пункта с руководством к модели и текущей версии firmware.
- 2Включите виртуализацию процессораНайдите параметр с названием, близким к
Virtualization Technology,Intel Virtualization Technology,VT-x,AMD-V,SVM ModeилиCPU Virtualization, и установите значениеEnabled. Это базовая настройка для запуска VM. - 3При необходимости включите виртуализацию ввода-выводаЕсли планируется назначение PCIe-устройств VM, найдите отдельный параметр
VT-d,Intel VT for Directed I/O,IOMMU,AMD IOMMUили близкий по смыслу и включите его. Не заменяйте этим шагом включение VT-x или AMD-V: оба параметра могут быть нужны одновременно. - 4Проверьте связанные ограниченияЕсли документация платформы указывает зависимость от параметров PCIe, SR-IOV, Above 4G Decoding, памяти или безопасности, зафиксируйте текущие значения и меняйте только требуемое для вашего сценария. Для обычных VM эти дополнительные параметры, как правило, не нужны.
- 5Сохраните конфигурацию и перезапустите серверСохраните изменения и выполните перезагрузку. Если руководство к конкретной платформе требует полного отключения питания, выполните именно этот порядок. После старта убедитесь через удалённую консоль, что сервер загрузился штатно.
- 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.
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 или командной строке с правами, достаточными для просмотра системных сведений.
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. Сначала проверьте, что процессор сообщает о режиме виртуализации.
lscpu | grep -i virtualizationОбычно ожидается строка `Virtualization: VT-x` для Intel либо `Virtualization: AMD-V` для AMD. Отсутствие строки не всегда окончательный диагноз: проверьте также CPU-флаги и журналы ядра.grep -Ewo 'vmx|svm' /proc/cpuinfo | sort -uОжидается `vmx` на Intel или `svm` на AMD. Пустой вывод означает, что флаг не предоставлен ОС: проверьте CPU, BIOS/UEFI и не запущена ли сама ОС внутри VM без проброса виртуализации.test -e /dev/kvm && echo 'KVM device available' || echo 'KVM device unavailable'Ожидается `KVM device available`. При отсутствии устройства проверьте загрузку модулей `kvm_intel` или `kvm_amd`, сообщения ядра и доступность VT-x/AMD-V.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
- Ядро Linux — центральный компонент ОС, управляющий аппаратными ресурсами и предоставляющий системные интерфейсы; оно не включает пользовательские утилиты и менеджер пакетов.
- ESXi Shell
- ESXi Shell — локальная командная оболочка VMware ESXi для диагностики и администрирования хоста. Удалённый доступ к командной среде предоставляется отдельно включаемой службой SSH.
- GPU Passthrough
- Режим назначения физического GPU виртуальной машине через PCIe/IOMMU, при котором гостевая ОС обращается к устройству напрямую с минимальными накладными расходами.
- Hyper-V
- Платформа виртуализации Microsoft с гипервизором типа 1, доступная как роль Windows Server и компонент Windows 10/11 Pro, Enterprise и Education.
- Intel VT-d
- Intel VT-d — технология аппаратной виртуализации ввода-вывода Intel, ограничивающая DMA устройств и позволяющая безопаснее назначать их виртуальным машинам.
- Intel VT-x
- Intel VT-x — расширение процессоров Intel для аппаратной виртуализации x86, вводящее режимы VMX для выполнения гостевых ОС под контролем гипервизора без полной программной эмуляции.
- IOMMU
- IOMMU — аппаратный блок, который преобразует адреса DMA-запросов устройств в адреса физической памяти и ограничивает их доступ; нужен для изоляции и прямого назначения PCIe-устройств ВМ.
- KVM
- Подсистема аппаратной виртуализации ядра Linux, предоставляющая пользовательским мониторам ВМ, обычно QEMU, интерфейс для запуска изолированных виртуальных машин.
- Nested Virtualization
- Вложенная виртуализация — возможность запускать гипервизор и виртуальные машины второго уровня внутри обычной виртуальной машины.
- Proxmox
- Открытая платформа серверной виртуализации на базе Debian, использующая QEMU/KVM для виртуальных машин и LXC для системных Linux-контейнеров.
- QEMU
- QEMU — открытый эмулятор вычислительных систем и монитор виртуальных машин; в Linux он может использовать KVM для виртуализации с аппаратным ускорением.
- SR-IOV
- Спецификация PCI-SIG для PCIe, позволяющая физическому устройству создавать виртуальные функции (VF), назначаемые виртуальным машинам для близкого к прямому доступа.
- SSH
- SSH — криптографический сетевой протокол для удалённого доступа и передачи данных, аутентифицирую щий стороны и защищающий сеанс от перехвата.
- vCPU
- vCPU — виртуальный логический процессор, предоставляемый виртуальной машине; гипервизор планирует его выполнение на процессорных ресурсах хоста.
- VMware ESXi
- VMware ESXi — гипервизор типа 1, устанавливаемый непосредственно на совместимый физический сервер для запуска и управления виртуальными машинами.
