---
# System prepended metadata

title: Firecracker 專案總結

---

# Firecracker 專案總結

**[github](https://github.com/firecracker-microvm/firecracker)**


## 重點摘要

*   **專案名稱**：Firecracker
*   **專案宗旨**：實現安全、多租戶、低開銷的容器和函數工作負載執行。
*   **核心技術**：
    *   開源虛擬化技術，專為建立和管理安全的、多租戶的容器和函數服務而設計，提供無伺服器操作模型。
    *   在輕量級虛擬機器（microVMs）中運行工作負載，結合硬體虛擬化技術的安全性和隔離性與容器的速度和靈活性。
    *   主要組件是虛擬機器監視器 (VMM)，使用 Linux 核心虛擬機器 (KVM) 來建立和運行 microVMs。
    *   設計極簡，排除不必要的設備和面向客戶的功能，以減少每個 microVM 的記憶體佔用和攻擊面，從而提高安全性、縮短啟動時間並增加硬體利用率。
*   **起源與應用**：由 Amazon Web Services 開發，用於加速 AWS Lambda 和 AWS Fargate 等服務。
*   **主要功能與特性**：
    *   透過 API 端點配置 microVM，包括 vCPU 數量、記憶體大小、CPU 模板、網路介面、磁碟、速率限制器、日誌和度量系統等。
    *   內建功能包括按需分頁、CPU 超額訂閱、進階 seccomp 過濾器以及用於生產環境的 Jailer 程序。
    *   支援在多種 Intel、AMD 和 Graviton 處理器架構的實例上進行測試。
*   **安全與效能**：
    *   將安全性列為首要任務，鼓勵私下回報漏洞。
    *   效能特性詳載於規範文件中，並透過持續整合測試強制執行。
*   **開源與社群**：
    *   在 Apache 2.0 許可下開源。
    *   歡迎貢獻，提供詳細的開發和貢獻指南。
    *   透過 GitHub issues、Slack 工作區和電子郵件與社群互動。
*   **發佈週期**：新版本通常每兩到三個月透過 GitHub repository releases 頁面發佈。

## 總結

Firecracker 是一個由 Amazon Web Services 開發並開源的虛擬化技術，專為無伺服器運算環境中的容器和函數工作負載提供安全、快速且低開銷的微型虛擬機器 (microVMs)。它利用 Linux KVM 實現，並採用極簡設計以最大化安全性、縮短啟動時間並提高硬體利用率。Firecracker 透過一個可配置的 API 提供豐富的功能，允許用戶精細控制 microVM 的資源和行為。該專案強調安全性，並透過嚴格的測試確保效能符合承諾。作為一個活躍的開源專案，Firecracker 歡迎社群貢獻，並在 AWS 內部服務中得到廣泛應用，例如 AWS Lambda 和 AWS Fargate。

---


# Firecracker 輕量級虛擬化技術概述

**[firecracker-microvm.github.io](https://firecracker-microvm.github.io/)**

## 重點摘要

*   **Firecracker 是什麼？**
    *   Firecracker 是一個開源的虛擬化技術，專為建立和管理安全、多租戶的容器和函式型服務而設計。
    *   它部署工作負載於輕量級虛擬機（稱為 microVMs），提供比傳統虛擬機更強的安全性與工作負載隔離，同時具備容器的速度和資源效率。
    *   它是一個虛擬機監視器（VMM），利用 Linux Kernel-based Virtual Machine (KVM) 來創建和管理 microVMs。
    *   由 Amazon Web Services 開發，用於改進 AWS Lambda 和 AWS Fargate 等服務的客戶體驗。

*   **主要優勢：**
    *   **安全性：** 基於 KVM 的虛擬化提供增強的安全性，並採用最小化設備模型，減少攻擊面。
    *   **速度：** 加速核心加載和最小化的客體核心配置，實現快速啟動時間（低至 125 毫秒），每秒每個主機可創建高達 150 個 microVMs。
    *   **規模與效率：** 每個 microVM 的記憶體開銷小於 5 MiB，允許在單一伺服器上部署高密度的 microVMs，並內建速率限制器以優化網路和儲存資源共享。

*   **工作原理：**
    *   Firecracker 在使用者空間運行，並使用 KVM 創建 microVMs。
    *   透過 RESTful API 控制 Firecracker 進程，可配置 vCPU 數量、啟動機器、設定內建速率限制器以控制網路和儲存資源。
    *   提供元數據服務，安全地共享主機和客體作業系統之間的配置資訊。
    *   使用名為 "jailer" 的伴隨程式，進一步透過常見的 Linux 使用者空間安全屏障隔離每個 microVM。

*   **技術細節：**
    *   使用 Rust 編寫。
    *   支援 64 位 Intel、AMD 和 Arm 處理器，需具備硬體虛擬化支援。
    *   支援 Linux (核心版本 4.14 及以上) 和 OSv 客體作業系統。
    *   與 QEMU 不同，Firecracker 專為無伺服器函式和容器設計，提供最小的設備模型（僅 5 個模擬設備），減少記憶體佔用和啟動時間。

*   **開源資訊：**
    *   依據 Apache License, version 2.0 授權開源。
    *   鼓勵客戶和開發者社區貢獻。

## 總結

Firecracker 是一項由 AWS 開發的開源虛擬化技術，專為提升無伺服器運算和容器服務的安全性、速度與效率而生。它透過輕量級的 microVMs 提供強大的工作負載隔離，並以其極簡設計、基於 KVM 的虛擬化和高效能特性，成為部署高密度、安全多租戶服務的理想解決方案。該技術採用 Rust 編寫，支援多種主流處理器，並已整合至多個容器生態系統專案中，體現了其在現代雲端架構中的重要性。

---

### Q: 所以一台主機可以多個 microVMs 然後 microVMs 裡面可以多個 containers

### Answer:
一台主機可以運行多個 Firecracker microVMs，而每個 microVM 裡面可以運行一個或多個容器。

根據文章內容：

1.  **一台主機可以運行多個 microVMs**：
    *   「每個 Firecracker microVM 運行時的記憶體開銷小於 5 MiB，使得每台伺服器上可以部署高密度的 microVMs。」
    *   「每秒每個主機可創建高達 150 個 microVMs。」
    *   這清楚地表明一台主機可以同時運行數百甚至數千個 microVMs。

2.  **每個 microVM 裡面可以運行一個或多個容器**：
    *   「這表示每個函式、容器或容器群組都可以被虛擬機屏障封裝起來...」
    *   「Firecracker 是為建立和管理安全、多租戶的容器和函式型服務而設計。」
    *   「Firecracker 可以被視為一種在容器之上提供更強安全隔離的技術。它不是取代容器，而是為容器（或無伺服器函式）提供一個更安全、基於虛擬化的運行環境。」

這說明了 Firecracker 的核心價值：它利用輕量級的 microVMs 為每個容器或容器群組提供一個獨立且強化的虛擬化隔離層，從而結合了容器的效率和虛擬機的安全性。