Гипервизор — программа, которая запускает на одном физическом сервере несколько изолированных виртуальных машин. Разбираем, что такое гипервизор, чем отличаются гипервизоры 1 и 2 типа, как работает аппаратная виртуализация, что делают KVM и Hyper-V и почему гипервизор — это ещё не платформа виртуализации.

Что такое гипервизор простыми словами

Гипервизор — это программный слой между оборудованием сервера и операционными системами. Он делит ресурсы одного физического компьютера — процессор, память, диски, сеть — между несколькими виртуальными машинами и следит, чтобы они не мешали друг другу. Каждая виртуальная машина работает так, будто у неё отдельное железо, хотя физически их несколько на одном сервере.

Второе название — монитор виртуальных машин (Virtual Machine Monitor, VMM). Гипервизор создаёт виртуальные машины, выделяет им ресурсы, изолирует их друг от друга и от хоста. Так на одном сервере одновременно работают, например, Windows-приложение, база данных на Linux и тестовый стенд — каждое в своей виртуальной машине.

Типы гипервизоров: 1 и 2

Гипервизоры делят на два типа по тому, на чём они работают.

Гипервизор 1 типа

Гипервизор 1 типа (bare-metal, «на голом железе») устанавливается непосредственно на сервер, без операционной системы под ним. Он сам является минимальной операционной системой, задача которой — запускать и обслуживать виртуальные машины. Это вариант для серверов и дата-центров: минимальные накладные расходы, прямой доступ к ресурсам, изоляция на уровне оборудования. Примеры: VMware ESXi, Microsoft Hyper-V в серверной роли, KVM в составе Linux.

Гипервизор 2 типа

Гипервизор 2 типа (hosted) работает как обычное приложение поверх уже установленной ОС — Windows, macOS или Linux. Виртуальная машина в нём получает ресурсы через хостовую систему, поэтому накладные расходы выше, а изоляция слабее. Такой гипервизор удобен на рабочем компьютере: тестовые окружения, разработка, запуск второй ОС. Примеры: VirtualBox, VMware Workstation.

Чем отличаются гипервизоры 1 и 2 типа

Гипервизор 1 типа Гипервизор 2 типа
Где работает На сервере без ОС Приложением внутри ОС
Накладные расходы Минимальные Заметные: ресурсы идут через хостовую ОС
Изоляция Виртуальные машины изолированы друг от друга и от хоста Зависит от хостовой ОС
Управление Консоль управления, кластеры, API Локальный интерфейс приложения
Назначение Серверы, дата-центры, VDI Тесты и разработка на ПК

Для корпоративной инфраструктуры используют гипервизор 1 типа.

Бывает ли гипервизор 3 типа

В классической классификации типов два. «Гипервизором 3 типа» иногда называют гибридные решения, в которых гипервизор работает на оборудовании, но управляется через отдельную служебную операционную систему, или контейнерную виртуализацию, где изолируются не машины, а процессы внутри одной ОС. Общепринятого третьего типа нет: такие решения относят либо к первому типу, либо выделяют в отдельный класс — контейнеры.

Как работает гипервизор

Гипервизор перехватывает обращения виртуальных машин к оборудованию и распределяет между ними реальные ресурсы хоста. Каждой виртуальной машине выделяются процессорные ядра, память и виртуальные устройства: диски, сетевые адаптеры, при необходимости USB и графический ускоритель. Виртуальная машина работает с ними как с физическими, а гипервизор транслирует эти операции на реальное оборудование.

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

Демонстрация российской платформы виртуализации на стенде Inscale

Аппаратная виртуализация

Современные процессоры помогают гипервизору аппаратно. Расширения виртуализации — Intel VT-x и AMD-V — позволяют виртуальной машине выполнять большинство инструкций напрямую на процессоре, а гипервизор вмешивается только в привилегированные операции. Без этих расширений гипервизору приходилось бы эмулировать процессор программно, и скорость падала бы в разы.

Что нужно для аппаратной виртуализации:

  • процессор с поддержкой VT-x или AMD-V — есть во всех современных серверных и большинстве настольных процессоров;
  • включённая поддержка виртуализации в BIOS/UEFI сервера — без этого гипервизор 1 типа не запустится, а гипервизор 2 типа перейдёт в медленный программный режим;
  • для проброса устройств в виртуальные машины (сетевые карты, графические ускорители) — расширения Intel VT-d или AMD-Vi.

Как проверить, включена ли аппаратная виртуализация

В Windows — в диспетчере задач: вкладка «Производительность», раздел «ЦП», строка «Виртуализация». В Linux о поддержке говорят флаги vmx (Intel) или svm (AMD) в описании процессора. Если виртуализация отключена, её включают в настройках BIOS/UEFI: параметр обычно называется Intel Virtualization Technology (VT-x) или SVM Mode — в зависимости от производителя процессора и платы. На серверах эти параметры проверяют до установки гипервизора.

Системы аппаратной виртуализации — это связка «процессор с расширениями + гипервизор 1 типа»; именно так работают все промышленные платформы виртуализации.

Функции гипервизора

  • создание, запуск и остановка виртуальных машин;
  • распределение процессора, памяти, дисков и сети между машинами, в том числе с переподпиской (overcommit), когда суммарно машинам выделено больше, чем есть физически;
  • изоляция виртуальных машин друг от друга и от хоста;
  • эмуляция и проброс устройств: диски, сеть, USB, графические ускорители;
  • добавление ресурсов на горячую: диски, процессор и память без остановки машины;
  • снимки состояния (снапшоты), в том числе с памятью, и клонирование машин;
  • живая миграция — перенос работающей машины между серверами;
  • основа для отказоустойчивости — перезапуск машин на другом сервере при отказе узла.

Чем больше этих функций реализовано надёжно и управляется из одного интерфейса, тем ближе гипервизор к промышленному уровню.

KVM: гипервизор в ядре Linux

KVM (Kernel-based Virtual Machine) — гипервизор 1 типа, встроенный в ядро Linux: модуль ядра превращает Linux в гипервизор, а виртуальные машины работают как процессы. Вместе с KVM обычно используются QEMU (эмуляция устройств) и libvirt (управление), но это разные компоненты: KVM — ядро, остальное — обвязка вокруг него.

На KVM построены публичные облака и большинство корпоративных и российских платформ виртуализации. Причина практическая: ядро гипервизора десятилетиями развивает мировое сообщество и крупнейшие ИТ-компании, закрывая уязвимости и добавляя поддержку нового оборудования. Писать ядро заново — годы работы без гарантии результата; разница между платформами определяется тем, что построено вокруг ядра.

Гипервизор в Windows: Hyper-V

Hyper-V — гипервизор Microsoft. В Windows Server это серверная роль для виртуализации, в настольной Windows 10 и Windows 11 — компонент для тестов и запуска второй ОС. Для работы нужен 64-разрядный процессор с включённой в BIOS/UEFI аппаратной виртуализацией.

Как включить гипервизор в Windows

Hyper-V включается в окне «Включение или отключение компонентов Windows»: отмечается пункт Hyper-V, после чего компьютер перезагружается. Компонент доступен в редакциях Pro, Enterprise и Education. Гипервизор Windows используют и другие функции системы — подсистема Linux (WSL 2), «Песочница Windows», изоляция ядра в Windows 11, — поэтому он может быть запущен, даже если виртуальные машины на компьютере не создавались.

Как отключить гипервизор

Гипервизор отключают, когда он мешает другой программе: гипервизоры 2 типа, эмуляторы и некоторые игры работают медленнее или не запускаются, пока активен Hyper-V. Для этого в том же окне снимают отметки с Hyper-V и связанных компонентов либо запрещают запуск гипервизора при загрузке командой bcdedit /set hypervisorlaunchtype off от имени администратора. Значение auto возвращает запуск. Изменение вступает в силу после перезагрузки.

Hyper-V в корпоративной инфраструктуре

Для корпоративной виртуализации серверов и VDI в России Hyper-V сегодня заменяют отечественными платформами — как это делать, разобрано в статье Миграция с Hyper-V на российские решения.

Гипервизор на ПК

На домашнем или рабочем компьютере гипервизор нужен, чтобы запустить вторую операционную систему в окне, собрать тестовый стенд или изолировать подозрительную программу. Для этого используют гипервизоры 2 типа или встроенный Hyper-V. Если какая-то программа сообщает, что ей мешает запущенный гипервизор, Hyper-V и связанные с ним компоненты отключают способом, описанным выше.

Как устроен гипервизор в промышленной платформе

Гипервизор в чистом виде запускает виртуальные машины на одном сервере. Промышленная платформа собирает вокруг него всё остальное. На примере Inscale:

  • Ядро. Гипервизор 1 типа на базе KVM в составе Debian-дистрибутива. Ставится на «голое железо» с ISO-образа и сразу разворачивает и серверную виртуализацию, и VDI. В основе слоя виртуализации — KVM/QEMU с доработками команды; сервисы управления, сеть и протокол доставки рабочих столов Inscale развивает самостоятельно.
  • Host-контроллер. Набор служб на каждом сервере, который отвечает за низкоуровневую работу с виртуализацией: запуск машин, диски, сеть, диагностика.
  • Центральный сервер. Оркестратор: единая точка управления кластерами, хранилищами, сетями, машинами и пользователями. Все команды к гипервизору идут через него — это защищает инфраструктуру от случайных действий администратора напрямую на хосте. Работает в нескольких экземплярах с кворумом.
  • Микросервисы. Платформа не монолит: за отдельные функции отвечают отдельные службы. Все они выведены в интерфейс — администратор видит состояние каждой, читает логи и перезапускает службу сам, не дожидаясь поддержки.
  • Масштабирование. Работа начинается с одного сервера с локальными дисками; новые серверы добавляются в кластер через интерфейс, серверы могут быть разной конфигурации. Ограничения сверху по числу узлов и машин архитектурой не заданы.

Как всё это выглядит с точки зрения администратора — в документации Inscale.

Как гипервизор работает в составе кластера серверов — с общим хранилищем, балансировщиком и перезапуском машин при отказе узла — описано в статье про серверную виртуализацию.

Гипервизор — это ещё не платформа виртуализации

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

Из чего состоит такая платформа и как её выбрать — в статье Российская система виртуализации. Как гипервизор используется для рабочих столов сотрудников — в статье VDI: что это, как работает и как внедрить. Про российский гипервизор на базе KVM — отдельный материал.

Итог

Гипервизор — программа, которая делит один физический сервер на несколько изолированных виртуальных машин. Гипервизоры 1 типа (ESXi, Hyper-V, KVM) ставятся на «голое железо» и используются в дата-центрах, гипервизоры 2 типа (VirtualBox, VMware Workstation) — для задач на ПК. Аппаратная виртуализация в процессоре даёт виртуальным машинам скорость, близкую к физической. Сам по себе гипервизор — фундамент; бизнес-задачи закрывает платформа, построенная вокруг него.

Хотите посмотреть российскую платформу виртуализации на ядре KVM — запросите демо.