Гипервизор — это программная прослойка, которая позволяет запускать на одном физическом сервере несколько изолированных виртуальных машин со своими операционными системами. Именно гипервизор лежит в основе любой виртуализации — от ноутбука разработчика до облака на тысячи серверов. Разберём простыми словами, что такое гипервизор, какие бывают типы гипервизоров, как он работает и какие функции выполняет — и почему сам по себе гипервизор это ещё не платформа виртуализации.
Что такое гипервизор простыми словами
Если объяснять просто, гипервизор — это «диспетчер», который делит ресурсы одного физического компьютера — процессор, память, диски, сеть — между несколькими виртуальными машинами и следит, чтобы они не мешали друг другу. Каждая виртуальная машина считает, что работает на отдельном железе, хотя физически их несколько на одном сервере.
Второе название гипервизора — монитор виртуальных машин (Virtual Machine Monitor, VMM). Он создаёт виртуальные машины, выделяет им ресурсы, изолирует их друг от друга и от самого хоста. Благодаря этому на одном сервере уживаются, например, Windows-приложение, база данных на Linux и тестовый стенд — каждое в своей виртуальной машине.
Типы гипервизоров: 1 и 2
Все гипервизоры делят на два типа по тому, где они работают.
Гипервизор 1 типа (bare-metal) устанавливается прямо на голое железо, без операционной системы под ним. Он сам и есть тонкая ОС, управляющая виртуальными машинами. Это промышленный вариант для серверов и дата-центров. Примеры: VMware ESXi, Microsoft Hyper-V в серверной роли, KVM.
Гипервизор 2 типа (hosted) работает как обычное приложение поверх установленной ОС — Windows, macOS, Linux. Он удобен для разработки и тестов на персональном компьютере, но проигрывает по производительности. Примеры: VirtualBox, VMware Workstation.
Для корпоративной инфраструктуры используют гипервизор 1 типа: он даёт минимальные накладные расходы и прямой доступ к ресурсам сервера. AirCloud — платформа на гипервизоре первого типа (KVM): ставится на голое железо и может работать даже на одном узле без дорогой системы хранения — правда, без отказоустойчивости.
Как работает гипервизор
Гипервизор перехватывает обращения виртуальных машин к оборудованию и распределяет между ними реальные ресурсы хоста. Современные процессоры помогают ему аппаратно — через расширения виртуализации Intel VT-x и AMD-V, которые нужно включить в BIOS/UEFI. За счёт них виртуальные машины выполняют большинство инструкций напрямую на процессоре, а гипервизор вмешивается только там, где нужно, — это и обеспечивает почти «нативную» скорость.
Ключевая задача гипервизора — изоляция: сбой или компрометация одной виртуальной машины не должны затронуть соседние. Поэтому каждая машина работает в своём изолированном окружении с выделенной памятью и виртуальными устройствами.
Функции гипервизора
Базовые функции гипервизора выходят далеко за «запуск виртуалок»:
- создание, запуск и остановка виртуальных машин;
- распределение процессора, оперативной памяти, дисков и сети между машинами, в том числе с переподпиской;
- изоляция виртуальных машин друг от друга и от хоста;
- эмуляция и проброс устройств — диски, сеть, USB;
- снимки состояния (снапшоты) и клонирование машин;
- живая миграция — перенос работающей машины между серверами без остановки;
- основа для отказоустойчивости — перезапуск машины на другом узле при сбое.
Чем больше этих функций реализовано надёжно и управляется из единого интерфейса, тем ближе гипервизор к промышленному уровню.
Гипервизор в Windows: Hyper-V
Встроенный гипервизор Windows — это Hyper-V. В настольной Windows он включается как компонент системы и подходит для тестов и небольших задач; в Windows Server это полноценная роль первого типа. Для корпоративной виртуализации серверов и VDI Hyper-V обычно оказывается лишь частью решения: отказоустойчивый кластер входит в Windows Server, а управление парком (SCVMM) и доставка рабочих столов (RDS, CAL) требуют отдельных продуктов и лицензий. Как переехать с него на единую платформу — в гайде по миграции с Hyper-V.
KVM и виртуализация в Linux
KVM (Kernel-based Virtual Machine) — гипервизор 1 типа, встроенный прямо в ядро Linux. Он превращает ядро в bare-metal гипервизор и является одним из самых распространённых серверных гипервизоров: на KVM построены публичные облака и множество корпоративных платформ. Один из крупнейших производителей гиперконвергентных систем в мире тоже использует KVM — и это не мешает ему стоить миллиарды.
Почему так: писать ядро гипервизора с нуля экономически бессмысленно. Написать код — это 20% задачи. Остальные 80% — поддержка бесконечного парка серверного оборудования, сетевых карт, процессоров и систем хранения от сотен производителей. Сообщество и ИТ-гиганты полировали ядро KVM десятилетиями, оперативно закрывая уязвимости и добавляя поддержку новых инструкций процессоров. Воспроизвести этот стек в одиночку — инженерное безумие, за которое в итоге заплатил бы заказчик.
Что в AirCloud написано поверх ядра
Когда ИТ-директор выбирает платформу, один из первых вопросов к разработчику звучит так: «А что у вас под капотом? Очередной open-source с перерисованными логотипами или вы всё написали сами?» Ответим честно.
В основе слоя виртуализации AirCloud — KVM/QEMU с доработками команды под требования безопасности и производительности. Это ядро отвечает за низкоуровневые операции: работу с инструкциями процессора и виртуализацию памяти. Управление виртуальными машинами и всё, что выше, команда строит на собственных сервисах.
Поверх этого фундамента команда развивает собственные сервисы — около шестнадцати, в том числе:
- Центральный сервер управления. Собственная архитектура, работает в распределённом и геораспределённом режиме. Состояние управления хранится как журнал событий (Event Sourcing): история изменений инфраструктуры, синхронизация состояния между узлами управления, восстановление и аудит. Данные виртуальных машин защищаются отдельно — резервным копированием.
- Контроллер кластера. Собственная служба отказоустойчивости, живущая на уровне гипервизора. При отказе хоста она перезапускает его виртуальные машины на доступных узлах, в том числе когда центральный сервер управления недоступен. Поведение изолированного узла определяется кворумом и fencing.
- Управление устройствами и проброс. Механизмы подключения и изоляции, автообнаружение LUN в iSCSI и Fibre Channel, проброс USB — собственные разработки; платформа администрируется одинаково на поддерживаемом оборудовании (перечень — в документации).
- Протокол доставки рабочего стола и распределённый виртуальный свитч — тоже собственные.
Парадигма команды — владеть кодом ключевых сервисов: важны скорость поддержки и управляемость. Собственный код позволяет планировать доработки без ожидания внешнего сообщества; срок зависит от объёма и согласуется в проекте.
Гипервизор — это ещё не платформа виртуализации
Важно не путать гипервизор с платформой виртуализации. Гипервизор — это нижний слой, который запускает виртуальные машины. Но промышленная виртуализация — это целая экосистема поверх него: уровень управления и оркестрации, отказоустойчивость, балансировка нагрузки, программно-определяемые сети, мониторинг и безопасность. Именно зрелость этой обвязки, а не сам гипервизор, отличает готовую платформу от «сборки из репозитория».
Из чего состоит такая платформа и как её выбрать — в разборе системы виртуализации. Как из серверов с гипервизором собирается кластер, который переживает отказ узлов, — отдельно. А как гипервизор используется для рабочих столов сотрудников — в материале про VDI.
Итог
Гипервизор — это основа виртуализации: программа, которая делит один физический сервер на несколько изолированных виртуальных машин. Гипервизоры 1 типа ставятся на голое железо и используются в дата-центрах, гипервизоры 2 типа — для задач на ПК. Самый распространённый вариант для серверов — KVM; многие платформы берут его как фундамент и пишут поверх собственный управляющий слой, отказоустойчивость и безопасность. Сам по себе гипервизор — лишь фундамент: бизнес-задачи закрывает платформа, построенная вокруг него.
Хотите оценить платформу виртуализации на ядре KVM с доработками команды — запросите демо-доступ.