Назад к обновлениям
New releaseSep 12, 2026

firecracker v1.17.0

Безопасные и быстрые микроВМ для бессерверных вычислений.

Поделиться
Firecracker Logo Title

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

Подробнее о Хартии Firecracker читайте здесь.

Что такое Firecracker?

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

Обзор

Основным компонентом Firecracker является монитор виртуальных машин (VMM), который использует Linux Kernel Virtual Machine (KVM) для создания и запуска microVM. Firecracker имеет минималистичный дизайн. Он исключает ненужные устройства и гостевую функциональность, чтобы уменьшить объем памяти и площадь атаки каждой microVM. Это повышает безопасность, сокращает время запуска и увеличивает загрузку оборудования. Firecracker также интегрирован в контейнерные рантаймы, например Kata Containers и Flintlock.

Firecracker был разработан в Amazon Web Services для ускорения скорости и эффективности таких сервисов, как AWS Lambda и AWS Fargate. Firecracker распространяется с открытым исходным кодом под лицензией Apache версии 2.0.

Чтобы узнать больше о Firecracker, посетите firecracker-microvm.io.

Начало работы

Чтобы начать работу с Firecracker, загрузите последние релизные бинарные файлы или соберите его из исходного кода.

Вы можете собрать Firecracker в любой Unix/Linux-системе, где запущен Docker (мы используем контейнер для разработки) и установлен bash, следующим образом:

git clone https://github.com/firecracker-microvm/firecracker
cd firecracker
tools/devtool build
toolchain="$(uname -m)-unknown-linux-musl"

Бинарный файл Firecracker будет размещен по адресу build/cargo_target/${toolchain}/debug/firecracker. Для получения дополнительной информации о сборке, тестировании и запуске Firecracker перейдите к краткому руководству.

Общая безопасность microVM Firecracker, включая способность соответствовать критериям безопасных мультитенантных вычислений, зависит от правильно настроенной хост-операционной системы Linux. Конфигурация, которая, по нашему мнению, соответствует этим требованиям, включена в документ по настройке производственного хоста.

Участие в разработке

Firecracker уже запускает производственные рабочие нагрузки в AWS, но это всё ещё первый день на пути, определяемом нашей миссией. Нам предстоит ещё многое построить, и мы приветствуем любой вклад.

Чтобы внести вклад в Firecracker, ознакомьтесь с разделом о настройке среды разработки в кратком руководстве, а затем с рекомендациями по участию в разработке Firecracker.

Релизы

Новые версии Firecracker выпускаются через страницу релизов репозитория GitHub, как правило, каждые два или три месяца. История изменений записана в нашем журнале изменений.

Политика выпуска версий Firecracker подробно описана здесь.

Дизайн

Общая архитектура Firecracker описана в документе о дизайне.

Возможности и характеристики

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

Конечная точка API может использоваться для:

  • Настройки microVM путем:
    • Установки количества vCPU (по умолчанию — 1).
    • Установки размера памяти (по умолчанию — 128 МиБ).
    • Настройки шаблона CPU.
  • Добавления одного или нескольких сетевых интерфейсов к microVM.
  • Добавления одного или нескольких дисков с чтением-записью или только для чтения к microVM, каждый из которых представлен блочным устройством на основе файла.
  • Запуска повторного сканирования блочного устройства во время работы гостевой системы. Это позволяет гостевой ОС подхватывать изменения размера файла, лежащего в основе блочного устройства.
  • Изменения файла, лежащего в основе блочного устройства, до или после загрузки гостевой системы.
  • Настройки ограничителей скорости для virtio-устройств, которые могут ограничивать пропускную способность, количество операций в секунду или оба параметра.
  • Настройки системы журналирования и метрик.
  • [BETA] Настройки дерева данных гостевого сервиса метаданных. Сервис доступен гостевой системе только в том случае, если этот ресурс настроен.
  • Добавления vsock-сокета к microVM.
  • Добавления устройства энтропии к microVM.
  • Добавления pmem-устройства к microVM.
  • Настройки и управления горячим подключением памяти.
  • [Developer Preview] Горячее подключение и отключение virtio PCI-устройств во время работы ВМ.
  • Запуска microVM с использованием заданного образа ядра, корневой файловой системы и аргументов загрузки.
  • [Только x86_64] Остановки microVM.

Встроенные возможности:

  • Страничный обмен по требованию и оверсабскрипция CPU, включенные по умолчанию.
  • Расширенные, специфичные для потоков фильтры seccomp для повышенной безопасности.
  • Процесс Jailer для запуска Firecracker в производственных сценариях; применяет барьер изоляции cgroup/namespace, а затем сбрасывает привилегии.

Протестированные платформы

Мы тестируем все комбинации:

ИнстансХостовая ОС и ядроГостевая корневая ФСГостевое ядро
m5n.metal (Intel Cascade Lake)al2 linux_5.10ubuntu 24.04linux_5.10
m6i.metal (Intel Ice Lake)al2023 linux_6.1linux_6.1
al2023 linux_6.18
m7i.metal-24xl (Intel Sapphire Rapids)
m7i.metal-48xl (Intel Sapphire Rapids)
m8i.metal-48xl (Intel Granite Rapids)*
m8i.metal-96xl (Intel Granite Rapids)*
m6a.metal (AMD Milan)
m7a.metal-48xl (AMD Genoa)
m6g.metal (Graviton 2)
m7g.metal (Graviton 3)
m8g.metal-24xl (Graviton 4)
m8g.metal-48xl (Graviton 4)
m9g.metal-48xl (Graviton 5)

*: Мы поддерживаем только инстансы AWS EC2 8-го поколения Intel (*8i) с хост-ядром 6.1 или 6.18. Это связано с плохой поддержкой ядром процессоров Granite Rapids на версии 5.10.

Известные проблемы и ограничения

  • Устройство RTC pl031 на aarch64 не поддерживает прерывания, поэтому гостевые программы, использующие будильник RTC (например, hwclock), не будут работать.

Производительность

Характеристики производительности Firecracker перечислены в рамках документации по спецификациям. Все спецификации являются частью нашего обязательства по поддержке контейнерных и функциональных рабочих нагрузок в серверless-моделях эксплуатации и поэтому обеспечиваются через непрерывное интеграционное тестирование.

Политика раскрытия информации о безопасности

Безопасность Firecracker — наш главный приоритет. Если вы подозреваете, что обнаружили уязвимость, свяжитесь с нами конфиденциально, как описано в нашем документе о политике безопасности; мы немедленно рассмотрим ваше сообщение.

FAQ и контакты

Часто задаваемые вопросы собраны в нашем документе FAQ.

Вы можете связаться с сообществом Firecracker следующими способами:

При общении в сообществе Firecracker, пожалуйста, соблюдайте наш кодекс поведения.

Категории