EnglishРусский Map

MicroVM

title
MicroVM
type
concept
summary
Виртуальная машина, урезанная до минимума для одной нагрузки: компактный VMM, мало эмулируемых устройств, быстрый запуск и изоляция на уровне железа
tags
virtualization, sandboxing, infrastructure
created
2026-05-03
updated
2026-07-29
lang
ru
translation_of
microvm
source_updated
2026-07-29
translated
2026-09-01
translator
lllm/antigravity/gemini-3.7-flash-medium

MicroVM - это аппаратно-виртуализированная VM, урезанная до компонентов, необходимых для запуска одной рабочей нагрузки: компактный VMM (обычно 80-110 тыс. строк на Rust вместо 1.7 млн строк C у QEMU), 4-5 эмулируемых устройств вместо десятков и гостевое ядро, выбранное ради скорости загрузки, а не универсальности. В итоге получается VM, которая стартует за ~125 мс с накладными расходами по памяти <5 МиБ, сохраняя при этом полноценную аппаратную границу изоляции KVM.

Категория получила название и рабочую эталонную реализацию в 2018 году, когда AWS открыла исходный код Firecracker, созданного для Lambda. К 2026 году это основной фундамент для изоляции AI-агентов - см. microvm-2026 с обзором индустрии и matryoshka-isolation о том, как microVM вкладываются в контейнеры.

Что значит "micro"

MicroVM компактна по пяти направлениям:

  • Размер VMM. У Firecracker ~83 тыс. строк на Rust, у Cloud Hypervisor - ~106 тыс. Оба на порядки меньше QEMU и обладают соответственно меньшей поверхностью атаки.
  • Количество эмулируемых устройств. Firecracker эмулирует ~5 устройств (virtio-net, virtio-block, virtio-vsock, serial, KVM clock). Никаких устаревших PCI, USB, звука или графики. Принцип простой: каждое устройство увеличивает поверхность атаки, поэтому лишнее не включают.
  • Время загрузки. ~125 мс холодного старта для Firecracker, ~28 мс при восстановлении из снапшота (snapshot-restore), <20 мс для оптимизированных сборок FreeBSD (Колин Персиваль / Colin Percival), ~200 мс для минимального ядра Linux 6.18. Для сравнения: традиционная VM стартует 30-60 с, а планирование пода в Kubernetes занимает 3-15 с.
  • Накладные расходы по памяти. <5 МиБ на одну VM, благодаря чему подход "отдельная VM на каждый запрос" или "VM на сессию агента" становится практичным, а не безумным.
  • Набор возможностей. Никакой вложенной виртуализации, проброса GPU, горячего подключения CPU (hotplug) и поддержки гостевой Windows - как минимум в каноническом Firecracker. Cloud Hypervisor возвращает эти возможности ценой увеличения кодовой базы и чуть более медленного старта, занимая нишу "швейцарского ножа".

В pullrun приводятся другие показатели загрузки для одного инструмента на трёх бэкендах: ~500 мс для холодного старта Firecracker против ~200 мс из настраиваемого прогретого пула (warm pool), а также ~160 мс для Apple Virtualization. Это собственные бенчмарки проекта, которые больше никто не воспроизводил, но прогретый пул решает ту же задачу, что и snapshot-restore: экземпляр собирается до прихода запроса, чтобы не платить задержкой холодного старта.

Зачем нужна аппаратная изоляция

Контейнеры (namespaces + cgroups + seccomp) делят ядро с хостом. Ядро Linux - это ~40 млн строк кода на C и 450+ системных вызовов, то есть постоянно обновляемая поверхность атаки. CVE с побегом из контейнера появляются регулярно (CVE-2024-21626 Leaky Vessels, CVE-2025-9074 Docker Desktop, CVE-2025-23266 NVIDIAScape, несколько уязвимостей в runc за 2025 год; таблица в microvm-2026 содержит их полный список).

MicroVM заменяет общую границу ядра на аппаратную границу. Гостевое ядро изолировано; эксплойту внутри нужно пробивать гипервизор через его CVE, что случается настолько редко, что рабочие эксплойты для гипервизоров продаются за $250K-$500K. Размен простой: реальная инженерная сложность в обмен на существенно меньшую и медленнее меняющуюся поверхность атаки.

Разделение между Firecracker и Cloud Hypervisor

Два эталонных VMM в 2026 году:

  • Firecracker (AWS) - "скальпель". Создан для Lambda. Пять устройств, без GPU, без вложенной виртуализации, без hotplug, без поддержки гостевой Windows. ~83 тыс. строк на Rust. Лучший выбор для короткоживущих специализированных задач.
  • Cloud Hypervisor (во главе с Intel, консорциум вендоров) - "швейцарский нож". Вложенный KVM (с декабря 2025 года), проброс устройств через VFIO, горячее подключение CPU/памяти, поддержка Windows в качестве гостя. ~106 тыс. строк на Rust. Чуть более медленный запуск, чуть больше поверхность атаки.

Критерии выбора из microvm-2026: Cloud Hypervisor нужен, если внутри VM требуется /dev/kvm (Docker-in-Docker, эмуляторы Android), Windows или сложное горячее подключение ресурсов. В остальных случаях выбирают Firecracker.

Оба используют экосистему крейтов rust-vmm - улучшения в vm-memory или virtio-queue идут на пользу обоим, а также libkrun, Dragonball, crosvm и другим.

Где используются microVM в 2026 году

  • AWS Lambda - каждый вызов функции с 2018 года работает внутри Firecracker
  • Fly.io Machines - Firecracker с 2020 года
  • Kata Containers - готовый OCI runtime, запускающий microVM для каждого пода Kubernetes (бэкенды QEMU/Cloud Hypervisor/Firecracker)
  • Spindle - self-hosted CI runner от Tangled: отдельная microVM на базе QEMU под каждый воркфлоу, NixOS, конфигурируемый из YAML воркфлоу, и гостевой агент на Rust через vsock
  • Песочницы для AI-агентов - Fly.io Sprites, E2B, Vercel Sandbox, AWS Bedrock AgentCore, Microsandbox, Docker Sandboxes (Desktop 4.58, январь 2026 года) и ещё около 10 решений (см. microvm-2026)
  • Chrome OS - crosvm запускает виртуальные машины Linux (Crostini) и Android на хромбуках
  • Lima (CNCF Incubating) - инструмент для запуска Linux-VM на macOS, 20K★, в 2026 году расширившийся в сферу изоляции агентов

Смежные технологии, не являющиеся microVM

  • Песочницы на уровне ядра приложения (gVisor, когда появится страница). Переписанное на Go ядро Linux в пространстве пользователя. Запуск за ~50 мс, меньший расход памяти, поддержка GPU через nvproxy. Нет гипервизора, нет гостевого ядра - другая точка на шкале между изоляцией и совместимостью.
  • Изоляты V8 (V8 isolates) (Cloudflare Workers). Запуск быстрее миллисекунды, но только для JS, без интерфейсов Linux. Другая категория.
  • Обычные контейнеры (runc, namespaces, cgroups). Другая модель безопасности - прямое сравнение см. в microvm-2026.

Эксплуатационные реалии

Реальная цена microVM - не накладные расходы на производительность (единицы процентов), а эксплуатация. Приходится обслуживать:

  • Гостевое ядро (сборка, подпись, доставка, патчи)
  • Образ rootfs (сборка, версионирование, дистрибуция)
  • VMM (развёртывание, мониторинг, изоляция самого гипервизора)
  • Сеть (TAP-устройства или virtio-net + мост), если только не используется прозрачная подмена сокетов в libkrun
  • Хранилище (virtio-block + формат бэкенда)

Это полноценная инженерная работа. Вывод статьи: оно того стоит, если вы запускаете недоверенный код, строите multi-tenant изоляцию или работаете в масштабе, где один побег из контейнера обойдётся дороже, чем эксплуатационные расходы на VMM.

Основные VMM и их назначение

  • rust-vmm - общая экосистема крейтов; практически все современные microVM базируются на ней
  • Firecracker - AWS, каноничный "компактный VMM для Lambda"
  • Cloud Hypervisor - проект нескольких вендоров; универсальный вариант с более широким набором возможностей
  • libkrun (Red Hat) - VMM в виде библиотеки, запуск быстрее 200 мс, прозрачная подмена сокетов, паравиртуализированный GPU на macOS; лежит в основе Microsandbox и crun
  • crosvm (Google) - VMM из Chrome OS, первое доказательство жизнеспособности rust-vmm
  • QEMU microvm - легковесный тип машины в QEMU (-M microvm): без PCI, без ACPI, только virtio-mmio, прошивка qboot, прямая загрузка ядра, завершение работы по triple-fault; старше и больше VMM на Rust, но обкатывает возможности, которые Firecracker добавлять не планирует, и служит эталонной C-реализацией той же архитектуры

См. также

  • microvm-2026 - индустриальный обзор Бегановича (Beganović), канонический источник
  • qemu-microvm - тип машины microvm в QEMU, эталонная C-реализация архитектуры
  • matryoshka-isolation - паттерн "контейнеры внутри VM", формирующийся в доминирующую архитектуру
  • rust-vmm - общая инфраструктура для всех этих проектов
  • sandboxing-ai-agents - более широкая классификация песочниц
  • virtual-machines-versatile-platforms - классификация Смита и Наира (Smith & Nair), базовый материал о том, почему "VM" обозначает и JVM, и гостевую систему Firecracker; книга написана до появления KVM, но разделение на уровни ISA, ОС и приложений объясняет сопоставление microVM, gVisor и изолятов V8 выше
  • superhq - оркестратор агентов, использующий microVM на Layer 1
  • pve-microvm - та же архитектура, упакованная для ноды Proxmox в домашней лаборатории: предоставляемое хостом ядро, универсальный OCI rootfs, старт быстрее 300 мс
Sub-pages