Ø 项目描述:
StratoVirt 是在 openEuler 社区发起的创新项目,作为计算产业中面向云数据中心的企业级虚拟化平台,实现了一套架构统一支持虚拟机、容器、 Serverless 三种场景。 StratoVirt 在轻量低噪、软硬协同、 Rust 语言级安全等方面具备关键技术竞争优势。
Ø 推荐人 :
王志钢 @cellfaint openEuler TC 成员 wangzhigang17@huawei.com 朱科潜 @kevinzhu1 openEuler Virt SIG maintainer zhukeqian1@huawei.com
汤中睿 @tzr openEuler 社区开发者 tangzhongrui@cmss.chinamobile.com
Ø 社区地址 : https://gitee.com/openeuler/stratovirt
Ø 推荐奖项 : openEuler 年度优秀项目
开源开放 项目采用木兰开源协议,代码托管在 openEuler 行业影响 已联合品高、移动苏研、电信天翼等厂商完成 POC ;项目已于今年 8 月加入 CNCF (云原生计算基金会);今年持续推进上游 kata 社区对接,融入上游社区容器生态。 技术创新 StratoVirt 作为计算产业中面向云数据中心的企业级虚拟化平台,实现了一套架构统一支持虚拟机、容器、 Serverless 三种场景。 StratoVirt 在轻量低噪、软硬协同、 Rust 语言级安全等方面具备关键技术竞争优势。 社区活跃 社区开发者 60+ ,来源广泛,包括高校、公司、个人开发者等,月均代码提交 20+ ,合入 PR 1000+ 。 高质量开发和运营 代码严格按照 Rust 社区规范,至少两名社区 committer 检视合入,社区代码质量高,文档完整(承载在 wiki 和代码主页 docs 目录上)。
Ø 社区事记
openEuler 首个创新版本20.09 发布 StratoVirt 首次对外发布 openEuler submit 2021-- 品高云与iSula&StratoVirt 最佳实践 openEuler submit 2022-- 移动云天元轻量级Hypervisor 与StratoVirt 最佳实践 联合高校出版《深入浅出系统虚拟化:原理与实践》- 以StratoVirt 作为实验案例融入书籍
1. 软件介绍
StratoVirt 是一种基于 Linux 内核虚拟化( KVM )的开源轻量级虚拟化技术,在保持传统虚拟化的隔离能力和安全能力的同时,降低了内存资源消耗,提高了虚拟机启动速度。 StratoVirt 作为计算产业中面向云数据中心的企业级虚拟化平台, 实现了一套架构统一支持虚拟机、容器、 Serverless 三种场景。
2. 架构
StratoVirt 的核心架构如下图所示,从上到下分为三层:
外部 API: StratoVirt 使用 QMP 协议与外部系统通信,兼容 OCI ,同时支持对接 libvirt ; BootLoader: 轻量化场景下使用简单的 BootLoader 加载内核镜像,而不像传统的繁琐的 BIOS 和 Grub 引导方式,实现快速启动;标准虚拟化场景下,支持 UEFI 启动; 模拟主板 :
microvm :为了提高性能和减少攻击面, StratoVirt 最小化了用户态设备的模拟。模拟实现了 KVM 仿真设备和半虚拟化设备,如 GIC 、串行、 RTC 和 virtio-mmio 设备; 标准机型:提供 ACPI 表实现 UEFI 启动,支持添加 virtio-pci 以及 VFIO 直通设备等,极大提高虚拟机的 I/O 性能。
基于硬件的高隔离能力; 快速冷启动:得益于极简设计, StratoVirt 可以在 50ms 内启动 microvm 机型; 低内存开销: StratoVirt 的内存占用为 4MB ; IO 增强: StratoVirt 提供普通 IO 能力与极简 IO 设备仿真; OCI 兼容性: StratoVirt 与 isula 和 kata 容器配合使用,可以完美融入 Kubernetes 生态系统; 多平台支持:全面支持 Intel 和 ARM 平台; 可扩展性: StratoVirt 保留接口和设计,用于导入更多特性,甚至扩展到标准虚拟化支持;