? 项目描述:
StratoVirt是在openEuler社区发起的创新项目,作为计算产业中面向云数据中心的企业级虚拟化平台,实现了一套架构统一支持虚拟机、容器、Serverless三种场景。StratoVirt在轻量低噪、软硬协同、Rust语言级安全等方面具备关键技术竞争优势。
? 推荐人:
王志钢 @cellfaint openEuler TC成员 wangzhigang17@huawei.commailto:wangzhigang17@huawei.com 朱科潜 @kevinzhu1 openEuler Virt SIG maintainer zhukeqian1@huawei.commailto:zhukeqian1@huawei.com
汤中睿 @tzr openEuler 社区开发者 tangzhongrui@cmss.chinamobile.commailto: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首次对外发布https://matpool.com/blog/5f8e44b8505b8f0011ae9939 * openEuler submit 2021--品高云与iSula&StratoVirt最佳实践https://www.modb.pro/db/198834 * openEuler submit 2022--移动云天元轻量级Hypervisor与StratoVirt最佳实践https://mp.weixin.qq.com/s/v9BccDo2vA4mc1t-Y0J8_g * 联合高校出版《深入浅出系统虚拟化:原理与实践》-以StratoVirt作为实验案例融入书籍https://tcloud.sjtu.edu.cn/2021/11/04/New-Book/
1. 软件介绍
* StratoVirt 是一种基于 Linux 内核虚拟化(KVM)的开源轻量级虚拟化技术,在保持传统虚拟化的隔离能力和安全能力的同时,降低了内存资源消耗,提高了虚拟机启动速度。StratoVirt 作为计算产业中面向云数据中心的企业级虚拟化平台, 实现了一套架构统一支持虚拟机、容器、Serverless三种场景。 [cid:image002.jpg@01D9FBC6.7C4D5700] 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 保留接口和设计,用于导入更多特性,甚至扩展到标准虚拟化支持;