Что такое гипервизор и где он находится
Гипервизор — программный слой, который запускает виртуальные машины, изолирует их и предоставляет им виртуальные процессоры, память, диски, сетевые адаптеры и другие устройства. Базовый принцип работы VM и распределения ресурсов разобран в статье «Серверная виртуализация: что это, как работает и зачем нужна».
Классификация Type 1 и Type 2 описывает прежде всего архитектурное место гипервизора относительно оборудования и основной ОС. Она не является автоматическим рейтингом производительности, безопасности, отказоустойчивости или набора корпоративных функций. Эти свойства определяются конкретной платформой, её версией, настройкой, драйверами, оборудованием и архитектурой всей инфраструктуры.
Архитектурное различие типов гипервизоров
| Критерий | Type 1 | Type 2 |
|---|---|---|
| Расположение | Гипервизор работает непосредственно над оборудованием сервера. | Гипервизор работает как приложение основной ОС хоста. |
| Доступ к устройствам | Используются драйверы и компоненты самой платформы виртуализации либо её управляющего домена или раздела. | Доступ к оборудованию обычно проходит через драйверы и службы основной ОС. |
| Типичный сценарий | Серверные VM, выделенные хосты и инфраструктурные нагрузки. | Разработка, обучение, изолированные тесты на рабочем компьютере. |
| Примеры | VMware ESXi, Hyper-V, Xen; стек KVM/QEMU на Linux используют в том числе Proxmox VE. | VirtualBox, VMware Workstation. |
| Что нельзя заключить только по типу | Что платформа быстрее, безопаснее или подходит для любой нагрузки. | Что она непригодна для любой серверной задачи: решение зависит от требований и поддержки. |
Type 1: почему его называют bare-metal
Гипервизор Type 1 часто называют bare-metal («на голом оборудовании»), потому что его базовый слой запускается непосредственно на физическом сервере, а не как обычная программа внутри универсальной настольной или серверной ОС. Это не означает, что в архитектуре вообще нет ОС: у платформы могут быть управляющие компоненты, сервисные домены или отдельные разделы с ОС.
К распространённым примерам Type 1 относят VMware ESXi, Hyper-V и Xen. Это примеры архитектурной категории, а не утверждение, что продукты равнозначны по поддерживаемым устройствам, средствам управления, миграции, высокой доступности или лицензированию. Сравнение платформ по этим критериям — отдельная задача: «VMware, Hyper-V, Proxmox, KVM и Xen: выбор платформы виртуализации».
Почему Hyper-V не становится Type 2 после установки роли
Hyper-V может устанавливаться как роль Windows Server, но после включения роли архитектура не сводится к приложению, работающему над Windows. Гипервизор Hyper-V запускается ниже разделов: Windows Server, с которого администратор обычно управляет хостом, работает в корневом разделе (root partition), а гостевые VM — в дочерних разделах (child partitions). Корневой раздел имеет особую роль в управлении и доступе к устройствам; дочерние разделы получают доступ к оборудованию через предоставляемые виртуальные устройства и службы. Поэтому наличие Windows в управляющем разделе не делает Hyper-V гипервизором Type 2.
Xen: гипервизор, Dom0 и DomU
В Xen сам гипервизор расположен над оборудованием. Привилегированный Dom0 запускает и обслуживает гостевые домены, обычно участвуя в обработке их ввода-вывода. Гостевые DomU выполняют ОС и приложения как непривилегированные домены. Dom0 — управляющая ОС или домен, но не признак Type 2: гипервизор Xen остаётся отдельным нижележащим слоем.
KVM, QEMU, libvirt и Proxmox VE: разные роли
KVM — подсистема ядра Linux для аппаратно ускоренной виртуализации, а не самостоятельная универсальная управляющая платформа. Обычно пользовательский процесс QEMU создаёт VM, моделирует её виртуальное оборудование и при наличии KVM передаёт выполнение гостевого кода процессору с аппаратным ускорением. libvirt — отдельный набор API, служб и утилит для управления VM, сетями и хранилищами; он может управлять QEMU/KVM, но не заменяет ни KVM, ни QEMU.
Стек KVM/QEMU используется, в частности, Proxmox VE для виртуальных машин. В упрощённой классификации серверный Linux с KVM/QEMU обычно рассматривают в одном ряду с Type 1-подходом, поскольку виртуализация опирается на KVM в ядре и аппаратные механизмы CPU, а не на приложение поверх основной настольной ОС по модели Type 2. Однако для проектирования важнее проверить состав конкретной платформы, её границы управления и поддерживаемую конфигурацию. Практическое разграничение компонентов описано в статье «KVM, QEMU и libvirt в Linux: установка, VM, virsh и Guest Agent».
Type 2: гипервизор поверх основной ОС
Гипервизор Type 2 запускается как программа в основной ОС — например, Windows, Linux или macOS. Для работы с сетью, дисками, USB и другими устройствами он обычно использует драйверы и службы этой ОС. К этому типу обычно относят VirtualBox и VMware Workstation.
Такая архитектура удобна, когда VM нужна рядом с рабочими приложениями: для обучения, воспроизведения ошибки, сборки ПО или изолированного теста. Она не отменяет необходимости выделять ресурсы и обновлять хостовую ОС, но обычно не является исходной моделью для постоянно работающей серверной инфраструктуры. Для локальной лаборатории см. «VirtualBox и VMware Workstation для лаборатории: выбор и первая VM».
Type 1 — недостаточный критерий выбора
Полная виртуализация: немодифицированная гостевая ОС
Полная виртуализация предоставляет VM виртуальную аппаратную платформу: виртуальные CPU, контроллеры, сетевые адаптеры, диски, таймеры и другие устройства. Гостевая ОС взаимодействует с этим окружением так, как если бы оно было физической машиной. Поэтому полная виртуализация позволяет запускать немодифицированную гостевую ОС — при условии, что её версия и виртуальное оборудование поддерживаются выбранной платформой.
Виртуальное оборудование не обязательно совпадает с физическими компонентами хоста. Например, гипервизор может представить гостю распространённый эмулируемый сетевой контроллер, хотя физический NIC сервера имеет другую модель. Такое программное воспроизведение интерфейса называется эмуляцией. Эмуляция устройства — не то же самое, что полная эмуляция процессора или другой аппаратной архитектуры.
Паравиртуализация и паравиртуальные драйверы
Паравиртуализация заменяет часть взаимодействий гостевой системы с виртуальной платформой специальными интерфейсами, рассчитанными на работу с гипервизором. Вместо имитации некоторых операций и устройств гость использует осведомлённый о виртуальной среде механизм: например, гипервызовы или специализированный драйвер сетевого либо дискового устройства.
Исторически паравиртуализация могла требовать изменения исходного кода гостевого ядра или его специальной сборки. В распространённом современном сценарии переделывать ядро не требуется: в поддерживаемой гостевой ОС включают встроенный либо устанавливают совместимый паравиртуальный драйвер. Например, VirtIO предоставляет стандарт паравиртуальных устройств для KVM/QEMU; VMware Tools могут содержать драйверы и интеграционные компоненты для поддерживаемых гостевых ОС; Hyper-V Integration Services обеспечивают интеграцию гостя с Hyper-V. Набор доступных компонентов зависит от версии платформы и гостевой ОС.
Полная виртуализация и паравиртуализация решают разные части задачи
| Аспект | Полная виртуализация | Паравиртуализация |
|---|---|---|
| Что видит гость | Виртуальную аппаратную платформу. | Специальный интерфейс или устройство для части операций. |
| Нужна ли специальная модификация ОС | Нет, если ОС поддерживается виртуальным оборудованием. | Не всегда: часто достаточно установить совместимый драйвер или интеграционный пакет. |
| Пример | Гость загружается с эмулируемого контроллера диска. | Гость и спользует сетевой или дисковый драйвер VirtIO. |
| Совместимость между подходами | Может использоваться одновременно с паравиртуальными устройствами. | Не отменяет полную виртуализацию CPU и базовой аппаратной платформы. |
Следовательно, полная виртуализация и паравиртуализация — не взаимоисключающие режимы «всей VM». Типичная современная VM запускает немодифицированную ОС на виртуальном оборудовании с аппаратной виртуализацией CPU, но для диска и сети использует паравиртуальные драйверы. Xen также поддерживает разные модели, включая HVM, PV и PVH; выбор зависит от поддерживаемых возможностей гостя и платформы.
Аппаратная виртуализация CPU: Intel VT-x и AMD-V
Intel VT-x и AMD-V — аппаратные расширения x86-процессоров для виртуализации CPU. Они позволяют гипервизору выполнять гостевой код в специальных режимах процессора и контролируемо обрабатывать чувствительные операции гостя. Это основа аппаратно ускоренного запуска большинства современных x86 VM; общее понятие раскрыто в глоссарии «Аппаратная виртуализация».
Выражение «программная виртуализация» неоднозначно. Иногда им называют старые подходы, где часть привилегированных операций обрабатывалась программно без расширений CPU. Иногда под ним понимают эмуляцию, когда программа воспроизводит процессор или устройства. Это разные механизмы: эмуляция может быть нужна, например, для другой архитектуры CPU, а аппаратная виртуализация ускоряет выполнение совместимого гостевого кода на процессоре хоста.
SLAT, EPT и NPT/RVI: виртуализация памяти
Для памяти процессор должен преобразовать виртуальные адреса процессов гостевой ОС сначала в адреса, которые гость считает физическими, а затем в реальные физические адреса хоста. SLAT — аппаратная двухуровневая трансляция адресов, уменьшающая необходимость постоянного участия гипервизора в этой работе. У Intel соответствующий механизм называется Extended Page Tables (EPT), у AMD — Nested Page Tables (NPT); в документации AMD также встречается название Rapid Virtualization Indexing (RVI).
SLAT не заменяет выделение достаточного объёма оперативной памяти и не исправляет медленное хранилище или перегрузку CPU. Его назначение — снизить накладные расходы преобразования адресов при виртуализации памяти. Анализ дефицита CPU, памяти, диска и сети вынесен в статью «Производительность виртуализации: ресурсы VM и поиск узких мест».
VT-d и IOMMU — отдельная проверка для устройств
Intel VT-x и AMD-V относятся к выполнению кода виртуальных CPU. Для контролируемого назначения PCIe-устройств VM и управления DMA нужны другие механизмы: Intel VT-d или AMD IOMMU. Наличие VT-x либо AMD-V не означает, что доступен IOMMU, и наоборот. Это особенно важно для passthrough сетевых адаптеров, HBA или GPU; требования разобраны в статье «GPU passthrough и вложенная виртуализация: требования, настройка и ограничения».
Почему VT-x или AMD-V недостаточно для выбора гипервизора
Строка «Intel VT-x» или «AMD-V» в спецификации процессора подтверждает лишь наличие определённого CPU-механизма. Она не доказывает, что конкретный сервер готов к установке конкретного гипервизора или запуску требуемой VM. Возможность зависит от модели CPU, версии и настроек BIOS/UEFI, релиза гипервизора, режима загрузки, поддержки контроллеров и NIC, наличия SLAT или IOMMU для нужного сценария, а также от ограничений самой платформы.
Как проверить готовность сервера к виртуализации до установки
Это проверка совместимости, а не процедура включения параметров firmware.
- 1Зафиксируйте состав сервераЗапишите точную модель сервера, процессоров, RAID/HBA-ко нтроллеров, сетевых адаптеров, накопителей и версию BIOS/UEFI. Ожидаемый результат — инвентарный список, по которому можно искать совместимость. Если модель устройства неизвестна, сначала получите её из интерфейса управления сервером, ОС или инвентаризации.
- 2Проверьте матрицу совместимости выбранной платформыСопоставьте сервер и его адаптеры с официальной матрицей совместимости либо руководством именно того релиза гипервизора, который планируется установить. Ожидаемый результат — подтверждённая поддержка или понятный список неподдерживаемых компонентов. Если устройства нет в документации, не заменяйте проверку предположением по похожей модели: выберите поддерживаемый компонент или уточните поддерживаемую архитектуру.
- 3Проверьте доступность CPU-функцийУбедитесь, что процессор поддерживает VT-x или AMD-V, а firmware не отключает виртуализацию. Для функций, зависящих от памяти или passthrough, отдельно проверьте SLAT и IOMMU. Ожидаемый результат — платформа или ОС видит необходимые возможности. Если функция не обнаружена, проверьте модель CPU, настройки firmware и необходимость полного выключения питания по документации сервера.
- 4Сверьте требования сценарияОтдельно проверьте требования к сети, хранилищу, загрузочному режиму, драйверам и лицензированию. Ожидаемый результат — список зависимостей для установки и дальнейшей эксплуатации. Если нужен кластер, миграции или назначение устройств VM, не ограничивайтесь проверкой одного хоста: оцените все узлы и общие компоненты.
