Гипервизор (hypervisor) — программное обеспечение, создающее слой абстракции между физическим оборудованием и виртуальными машинами. Он управляет распределением CPU, RAM и устройств ввода-вывода между VM, обеспечивает изоляцию и безопасность. Каждая виртуальная машина считает себя единственной владелицей аппаратных ресурсов, не зная о других VM. На гипервизорах построена вся индустрия VPS-хостинга и публичных облаков.
Типы гипервизоров
Тип 1 (bare-metal) — гипервизор запускается непосредственно на физическом железе без хостовой ОС. Это обеспечивает минимальный overhead (менее 5%) и высокую безопасность. Примеры: KVM, VMware ESXi, Xen, Microsoft Hyper-V, Proxmox VE. Используются в продакшн-среде и дата-центрах.
Тип 2 (hosted) — гипервизор работает как приложение внутри ОС-хоста. Примеры: VirtualBox, VMware Workstation, Parallels Desktop. Удобен для разработки и тестирования, но медленнее Type 1 из-за дополнительного слоя ОС-хоста. Производительность I/O на 15–25% ниже нативной.
Как работает гипервизор
Гипервизор перехватывает привилегированные инструкции гостевой ОС — попытки напрямую обратиться к железу. На современных CPU (Intel VT-x, AMD-V, ARM Virtualization Extensions) гипервизор использует аппаратную поддержку: процессор переключается между VMX root mode (гипервизор) и VMX non-root mode (гость). Большинство обычных инструкций гость выполняет напрямую, только привилегированные операции вызывают VM exit и обрабатываются гипервизором.
Для хранилища гипервизор предоставляет виртуальным машинам либо виртуальные диски (qcow2, vmdk, raw), либо PCI passthrough физического NVMe или GPU напрямую в гостевую ОС. Паравиртуализованные драйверы virtio дают дисковую производительность, близкую к нативной — latency 0,1–0,3 мс против 0,05–0,1 мс у bare-metal.
История
Термин «гипервизор» появился в IBM в 1970-х — устройство, управляющее «супервизорами» (операционными системами). Первый x86-гипервизор типа 1 — VMware ESX Server 1.0 (1999). Xen появился в 2003 году как академический проект Кембриджского университета (Ian Pratt, Keir Fraser). KVM интегрирован в ядро Linux 2.6.20 в январе 2007 года — это означало, что любой Linux-сервер с VT-x/AMD-V автоматически становится гипервизором. AWS использовала Xen с 2006 по 2017 год, затем перешла на Nitro — собственный гипервизор на базе KVM.
Гипервизор vs контейнеры
Гипервизор запускает полноценные ОС с отдельными ядрами — это более тяжёлая изоляция (50–200 МБ на VM, время запуска 30–90 секунд). Контейнеры разделяют ядро хост-ОС — это легче (5–50 МБ, запуск за 0,1–1 секунду), но менее изолировано. В продакшне часто комбинируют: контейнеры Docker внутри KVM-виртуальной машины, что даёт и безопасность VM, и удобство контейнеров.
Выбор гипервизора
KVM — стандарт для Linux-хостинга, бесплатный, встроен в ядро. VMware ESXi — лидер корпоративного рынка с богатой экосистемой (vSphere, vCenter). Proxmox VE — open-source решение поверх KVM с веб-интерфейсом, популярен у малых провайдеров. Hyper-V — для Windows-среды, встроен в Windows Server 2012+.
Производительность гипервизоров: сравнение
По бенчмаркам 2023 года (SPEC CPU 2017, fio disk, iperf3): overhead KVM — 3–7% CPU, 5–10% disk IOPS. VMware ESXi — 5–12% CPU overhead, но лучшее управление и живая миграция. Xen — сопоставимо с KVM для HVM+PV-драйверов. Hyper-V с Linux Integration Services — 5–8% CPU overhead. На практике разница несущественна для большинства задач. Исключение: HPC-задачи (научные расчёты, ML-обучение) и высокочастотный трейдинг — там используют PCI passthrough или bare-metal серверы без гипервизора.