Project Icon

firecracker

开源虚拟化技术实现安全高效的多租户容器和函数服务

Firecracker是一种开源虚拟化技术,用于创建和管理安全、多租户的容器和函数服务。它通过轻量级虚拟机(microVM)运行工作负载,结合硬件虚拟化的安全性和容器的灵活性。Firecracker采用最小化设计,降低内存占用和攻击面,同时提高启动速度和硬件利用率。该技术已应用于AWS Lambda和AWS Fargate等服务,并可与多种容器运行时集成。

Firecracker 标志标题

我们的使命是实现安全、多租户、低开销的容器和函数工作负载执行。

这里阅读更多关于 Firecracker 章程的信息。

Firecracker 是什么?

Firecracker 是一个开源虚拟化技术,专为创建和管理安全、多租户的容器和基于函数的服务而设计,这些服务提供无服务器运营模式。Firecracker 在轻量级虚拟机(称为 microVM)中运行工作负载,结合了硬件虚拟化技术提供的安全性和隔离性,以及容器的速度和灵活性。

概述

Firecracker 的主要组件是一个虚拟机监视器(VMM),它使用 Linux 内核虚拟机(KVM)来创建和运行 microVM。Firecracker 采用极简设计,排除了不必要的设备和面向客户的功能,以减少每个 microVM 的内存占用和攻击面。这提高了安全性,缩短了启动时间,并提高了硬件利用率。Firecracker 还已集成到容器运行时中,例如 Kata ContainersFlintlock

Firecracker 由亚马逊网络服务开发,旨在加快 AWS LambdaAWS Fargate 等服务的速度和效率。Firecracker 根据 Apache 2.0 版本 开源。

要了解更多关于 Firecracker 的信息,请查看 firecracker-microvm.io

入门

要开始使用 Firecracker,请下载最新的发布版本二进制文件或从源代码构建。

你可以在任何运行 Docker(我们使用开发容器)并安装了 bash 的 Unix/Linux 系统上构建 Firecracker,如下所示:

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 的更多信息,请查看快速入门指南

Firecracker microVM 的整体安全性,包括满足安全多租户计算标准的能力,取决于配置良好的 Linux 主机操作系统。我们认为满足这一标准的配置包含在生产主机设置文档中。

贡献

Firecracker 已经在 AWS 内部运行生产工作负载,但在我们使命指引的旅程中,这仍然只是第一天。还有很多要构建的,我们欢迎所有的贡献。

要为 Firecracker 做出贡献,请查看入门指南中的开发设置部分,然后查看 Firecracker 贡献指南

发布

新的 Firecracker 版本通过 GitHub 仓库的发布页面发布,通常每两到三个月一次。变更历史记录在我们的更新日志中。

Firecracker 的发布政策详见此处

设计

Firecracker 的整体架构在设计文档中有描述。

特性与功能

Firecracker 由一个单一的微型虚拟机管理器进程组成,启动后向主机公开 API 端点。API 以 OpenAPI 格式指定。在 API 文档中了解更多信息。

API 端点可用于:

  • 通过以下方式配置 microvm:
    • 设置 vCPU 数量(默认为 1)。
    • 设置内存大小(默认为 128 MiB)。
    • 配置 CPU 模板
  • 向 microVM 添加一个或多个网络接口。
  • 向 microVM 添加一个或多个读写或只读磁盘,每个磁盘由文件支持的块设备表示。
  • 在客户机运行时触发块设备重新扫描。这使客户操作系统能够获取块设备后备文件的大小变化。
  • 在客户机启动前后更改块设备的后备文件。
  • 为 virtio 设备配置速率限制器,可以限制带宽、每秒操作数或两者兼有。
  • 配置日志和指标系统。
  • [测试版] 配置面向客户的元数据服务的数据树。只有在配置此资源时,服务才对客户可用。
  • 向 microVM 添加 vsock 套接字
  • 向 microVM 添加熵设备
  • 使用给定的内核镜像、根文件系统和启动参数启动 microVM。
  • [仅限 x86_64] 停止 microVM。

内置功能

  • 默认启用按需页面错误和 CPU 超额订阅。
  • 高级的、线程特定的 seccomp 过滤器,以增强安全性。
  • Jailer 进程用于在生产场景中启动 Firecracker;应用 cgroup/namespace 隔离屏障,然后放弃特权。

测试平台

我们测试以下所有组合:

实例主机操作系统和内核客户根文件系统客户内核
c5n.metalal2 linux_5.10ubuntu 22.04linux_4.14
m5n.metalal2023 linux_6.1linux_5.10
m6i.metal
m6a.metal
m6g.metal
m7g.metal

已知问题和限制

  • aarch64 上的 pl031 RTC 设备不支持中断,因此使用 RTC 闹钟的客户程序(如 hwclock)将无法工作。

性能

Firecracker 的性能特征作为规范文档的一部分列出。所有规范都是我们支持无服务器运营模式下的容器和函数工作负载的承诺的一部分,因此通过持续集成测试强制执行。

安全披露政策

Firecracker 的安全性是我们的首要任务。如果你怀疑发现了漏洞,请按照我们的安全政策文档中概述的方式私下联系我们;我们将立即优先处理你的披露。

常见问题解答和联系方式

常见问题解答收集在我们的 FAQ 文档中。

你可以通过以下方式与 Firecracker 社区联系:

在 Firecracker 社区内沟通时,请遵守我们的行为准则

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号