MicroVM
- title
- MicroVM
- type
- concept
- summary
- Виртуальная машина, урезанная до минимума для одной нагрузки: компактный VMM, мало эмулируемых устройств, быстрый запуск и изоляция на уровне железа
- tags
- virtualization, sandboxing, infrastructure
- sources
- qemu-microvm-docs
- 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 мс
- Virtual Machines: Versatile Platforms for Systems and Processes
- kanbots
- pullrun
- pve-microvm
- tilde-run
- Building a Consumer-Parts Homelab Server
- emirb.github.io
- VMs Won't Contain Cyber-Capable Agents
- Matryoshka Isolation (Containers Inside VMs)
- Your Container Is Not a Sandbox — MicroVM Isolation in 2026
- Planned Pages
- QEMU microvm machine type
- We Reverse-Engineered Docker Sandbox's Undocumented MicroVM API
- rust-vmm
- Sandboxing AI Agents
- Spindle — QEMU microVM CI engine for Tangled
- Tangled