DevOps & CI/CD

Гипервизор

Программа, которая делит физический сервер на изолированные виртуальные машины и распределяет между ними CPU, память и устройства.

Что такое гипервизор

Гипервизор (hypervisor, монитор виртуальных машин) — слой программного обеспечения, который позволяет запускать на одном физическом сервере несколько виртуальных машин одновременно. Он делит между ними процессорное время, память, диск и сеть, а главное — изолирует их друг от друга: у каждой ВМ своя операционная система, и она не знает о соседях.

Простыми словами: гипервизор — это то, что превращает один мощный сервер в десяток независимых серверов. Именно на нём держится вся индустрия хостинга — когда вы арендуете VPS, вы получаете гостевую ВМ на чужом гипервизоре.

Тип 1 и тип 2

Тип 1 (bare-metal) Тип 2 (hosted)
На чём работает Прямо на железе Как программа внутри обычной ОС
Хостовая ОС Не нужна Windows / macOS / Linux
Накладные расходы Минимальные Заметные
Примеры VMware ESXi, KVM, Hyper-V, Xen VirtualBox, VMware Workstation
Применение ЦОД, production Ноутбук разработчика, тесты

Тип 1 ставится на голое железо и сам является операционной системой. Ничего лишнего между ним и процессором нет — отсюда производительность, близкая к нативной. Всё, что работает в ЦОД, — это тип 1.

Тип 2 запускается как обычное приложение поверх вашей ОС. Удобно (свернул окно — и всё), но за каждый доступ к диску платите двойным проходом через хостовую систему.

Граница не всегда чёткая: KVM — модуль ядра Linux, что формально делает его типом 2, но по архитектуре и производительности он ведёт себя как тип 1.

Как это работает

Гипервизор опирается на аппаратную поддержку виртуализации в процессоре — Intel VT-x или AMD-V. Гостевое ядро выполняется в специальном режиме, и когда оно пытается сделать привилегированную операцию (обратиться к устройству, поменять таблицы страниц), процессор передаёт управление гипервизору. Тот эмулирует операцию и возвращает управление обратно.

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

# Linux: есть ли поддержка в CPU и включена ли в BIOS
egrep -c '(vmx|svm)' /proc/cpuinfo     # > 0 — процессор умеет
kvm-ok                                 # KVM acceleration can be used
lsmod | grep kvm                       # модуль загружен

Если счётчик нулевой, а процессор современный — виртуализация выключена в UEFI/BIOS.

Что даёт гипервизор кроме изоляции

  • Overcommit: сумма vCPU всех ВМ может превышать число физических ядер — машины редко нагружены одновременно. Это экономика хостинга.
  • Снапшоты: снимок состояния ВМ целиком, откат за секунды.
  • Живая миграция: перенос работающей ВМ на другой хост без остановки — так обслуживают железо, не роняя сервисы.
  • GPU passthrough: проброс физической видеокарты внутрь гостя через IOMMU. Так работают арендные GPU-инстансы: вы получаете реальную карту, а не эмуляцию.

Гипервизор или контейнеры

Контейнеры — не альтернатива, а другой уровень изоляции. ВМ несёт полноценное гостевое ядро (десятки секунд на загрузку, гигабайты памяти), контейнер использует ядро хоста и стартует за миллисекунды. Цена — слабее изоляция: уязвимость ядра затрагивает все контейнеры хоста. На практике их сочетают: Docker внутри ВМ, ВМ на гипервизоре.

Связанные термины

Готовы запустить GPU-задачу?

Запустить GPU-сервер