# 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 為每個容器或容器群組提供一個獨立且強化的虛擬化隔離層,從而結合了容器的效率和虛擬機的安全性。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up