Firecracker 是结合硬件虚拟化安全性与容器灵活性的虚拟化技术,适用在 Serverless 计算的安全快速微虚拟机(microVM),它在 Amazon Web Services 上开发的,旨在加快 AWS Lambda 和 AWS Fargate 等服务的速度和效率。Firecracker 是在 Apache 2.0 版下开源的,同时 Firecracker 公布了其开源原则。下面将向你介绍 Firecracker。
Firecracker 介绍 Firecracker 是一种专门用于创建和管理多租户容器和基于函数的服务的虚拟化技术。 使用 Rust 开发,旨在加快 AWS Lambda 和 AWS Fargate 等服务的速度和效率。它是一种虚拟化技术,提供 Serverless 操作模型,专门用于创建和管理多租户容器与基于函数的服务。Firecracker 在轻量级虚拟机中运行工作负载,AWS 将其称为 microVM,它结合了硬件虚拟化技术提供的安全性与隔离性和容器的速度与灵活性。 Firecracker 的主要组件是虚拟机监视器(VMM),它使用 Linux 内核虚拟机(KVM)来创建和运行 microVM。Firecracker 采用极简设计,它剔除了不必要的设备和面向客户的功能,以减少每个 microVM 的内存占用和攻击面积,这可以提高安全性、缩短启动时间并提高硬件利用率。 Firecracker 目前支持 Intel CPU、AMD 与 Arm,同时它还将与流行的容器运行时集成。
开发背景 谈及开发背景,AWS 表示这是为了应对虚拟化技术的新挑战。现在开发人员可以通过 AWS Fargate 将其代码打包为 Serverless 容器或通过 AWS Lambda 打包成 Serverless 函数,但是 AWS 意识到现有的虚拟化技术并不是为了优化这些工作负载中固有的事件驱动与短期性质而产生的,那么就需要构建专门为 Serverless 计算而设计的虚拟化技术,它将提供基于硬件虚拟化的虚拟机安全边界,同时保持轻量级与 Serverless 容器和函数的灵活性。
Firecracker 开源原则 1、内置安全性:提供计算安全隔离,以支持多租户工作负载,并且用户无法失误禁用。用户工作负载同时被视为具备神圣(不可触及)与恶意(应予以防备)两种属性。 2、轻量级虚拟化:专注于短期或无状态工作负载而不是长期运行或持久性工作负载。Firecracker 的硬件资源开销是已知且有保证的。 3、极简主义:如果任务没有明确要求,将不会创建。仅维护每个功能的单个实现。 4、计算资源超额订购:Firecracker 向用户公开的所有硬件计算资源都可以安全地超额订购。
功能介绍 Firecracker 包含一个微型虚拟机管理器进程,该进程在启动后向主机公开API端点。API 以 OpenAPI 格式指定。 API 端点可用于: 通过配置 microvm:设置 vCPU 的数量(默认值为1)、设置内存大小(默认值为 128 MiB)、选择 CPU 模板(目前,C3 和 T2 可用)。 将一个或多个网络接口添加到 microVM。 将一个或多个读写或只读磁盘添加到 microVM,每个磁盘由一个由文件支持的块设备表示。 在 guest 虚拟机运行时触发块设备重新扫描。这使客户操作系统能够获取块设备的后备文件的大小更改。 在 guest 虚拟机引导之前或之后更改块设备的后备文件。 为 virtio 设备配置速率限制器,可以限制带宽,每秒操作数或两者。 配置日志记录和度量标准系统。 [BETA]配置面向客户的元数据服务的数据树。如果配置了此资源,则该服务仅对 guest 虚拟机可用。 [实验]将一个或多个 vsock 套接字添加到 microVM。 使用给定的内核映像,根文件系统和引导参数启动 microVM。 停止 microVM。 内置功能: 默认情况下启用需求故障分页和 CPU 超额。 Jailer 在生产场景中启动 Firecracker 的过程,应用 cgroup/namespace/seccomp 规则隔离障碍,然后删除权限。
相关链接
Firecracker 入门 可以在任何运行 Docker 的系统上构建 Firecracker,获取和构建 Firecracker 的简单步骤是: git clone https://github.com/firecracker-microvm/firecracker cd firecracker tools/devtool build Firecracker 二进制文件将放置在 build/debug/firecracker 中。
相关主题 |