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

Что такое KVM

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

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

Из чего состоит KVM-виртуализация

Под «KVM» часто понимают связку из трёх разных компонентов:

Компонент Что делает
KVM Модуль ядра: виртуализация процессора и памяти, изоляция машин
QEMU Эмуляция устройств: диски, сетевые адаптеры, USB, видеоадаптер, прошивка
libvirt Слой управления: API и утилиты для запуска и настройки машин

Ядро — только KVM. QEMU и libvirt — обвязка вокруг него, и именно её чаще всего дорабатывают или заменяют разработчики платформ. Поэтому два продукта «на KVM» могут заметно отличаться по возможностям: ядро у них общее, слой управления — разный.

Для производительности в гостевые системы ставятся паравиртуальные драйверы VirtIO: с ними диск и сеть работают не через эмуляцию физического устройства, а через прямой канал с гипервизором.

Работа без потери скорости

Какие операционные системы работают в KVM

KVM — система виртуализации на Linux, но гостевые операционные системы могут быть любыми, для которых есть драйверы: Windows и Windows Server, дистрибутивы Linux, включая российские — Astra Linux, RED OS, Альт, ROSA. На одном сервере одновременно работают машины с разными ОС.

В платформе Inscale в качестве гостевых поддерживаются Windows начиная с Windows 7 и Linux-системы, включая Astra Linux 1.7.6 и выше; для Windows драйверы VirtIO и гостевой агент устанавливаются из встроенного мастера.

Почему промышленные платформы строят на KVM

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

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

Российский гипервизор Inscale: что в основе и что развивает команда

Inscale — гипервизор первого типа в составе Debian-дистрибутива. Он устанавливается на «голое железо» с ISO-образа и сразу разворачивает серверную виртуализацию и VDI. В основе слоя виртуализации — KVM/QEMU с доработками команды. Поверх него Inscale развивает собственные сервисы управления, сеть и протокол доставки рабочих столов:

  • Работа с устройствами. Подключение дисков и сетей, проброс USB, автообнаружение томов на iSCSI и Fibre Channel, добавление дисков, процессора и памяти без остановки машины.
  • Уровень управления. Центральный сервер — оркестратор, через который идут все команды к гипервизору. Управляющий слой хранит историю событий (Event Sourcing): по ней восстанавливается состояние управления, ведётся аудит изменений, незавершённая операция возвращается к исходному состоянию. Центральный сервер работает в нескольких экземплярах с кворумом.
  • Host-контроллер. Службы на каждом сервере, отвечающие за низкоуровневую работу с виртуализацией: запуск машин, диски, сеть, диагностика.
  • Отказоустойчивость. При отказе сервера его виртуальные машины автоматически перезапускаются на доступных узлах кластера; для этого нужны общее хранилище и запас ресурсов на оставшихся узлах.
  • Балансировка. Размещение машин по серверам в двух режимах — максимальной производительности и максимальной плотности.
  • VDI. Протокол доставки рабочих столов и встроенный шлюз внешнего доступа с аутентификацией и политиками подключения.

Все службы платформы выведены в интерфейс: администратор видит их состояние, читает журналы и перезапускает службу сам. Работа начинается с одного сервера с локальными дисками; серверы в кластере могут быть разной конфигурации. Из чего состоит платформа целиком — в статье Российская система виртуализации и в документации.

Эксперты Inscale на отраслевой ИТ-конференции

Перенос виртуальных машин в KVM из других гипервизоров

Формат дисков у гипервизоров разный, но машины переносимы. В Inscale диск из другой платформы виртуализации загружается при создании или изменении виртуальной машины: платформа конвертирует его в свой формат и подключает к машине. Так переносят в первую очередь золотые образы VDI, чтобы не настраивать их заново. Порядок переезда — в статьях Миграция с VMware и Миграция с Hyper-V.

Итог

KVM-виртуализация — это гипервизор в ядре Linux плюс обвязка для устройств и управления. Ядро общее у большинства платформ, а отличаются они тем, что построено поверх: уровнем управления, отказоустойчивостью, работой с устройствами и удобством эксплуатации. В Inscale в основе — KVM/QEMU с доработками команды, а сервисы управления, сеть и протокол доставки рабочих столов — собственные.

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