写点什么

openEuler 开源下一代全场景虚拟化平台 StratoVirt

用户头像
openEuler
关注
发布于: 2020 年 10 月 27 日

近期 openEuler 开源了一枚重磅利器 ——StratoVirt,StratoVirt 是计算产业中面向云数据中心的企业级虚拟化平台,实现了一套架构统一支持虚拟机、容器、Serverless 三种场景。StratoVirt 在轻量低噪、软硬协同、Rust 语言级安全等方面具备关键技术竞争优势。


为什么叫 StratoVirt?


Strato, 取自 stratosphere ,意指地球大气层中的平流层,寓意为保护 openEuler 平台上业务平稳运行的轻薄保护层。Strato 承载了项目的愿景与未来: 轻量、灵活、 安全和完整的保护能力。以 Strato 入名,同样代表着 openEuler 对推进下一代全场景虚拟化技术的繁荣、构建虚拟化关键技术竞争力,有着必胜的信心!


为何要做 StratoVirt? 


说起虚拟化,openEuler 平台目前已经集成了业界成熟的 qemu-kvm 解决方案,那么 StratoVirt 又期望构 建一个怎么不一样的解决方案呢?

 

  • Insight 1: QEMU 的演进历史


提到虚拟化,咱们不得不提到 qemu。qemu-kvm 是整个虚拟化产业发展的基石和主线,但是在多年的 发展历史中,也积累了庞大的代码基线和繁多的历史设备。按照我们的统计,现在 qemu 已经有 157 万代码,而且其中又有很大一部分代码是用来支持 legacy 特性 或者设备的,功能和设备严重耦合在一起,导致无法轻装上阵。

另外一个 insight 就是 CVE,我们分析统计了过去十几年中 QEMU 的 CVE 问题,其中有将近一半是因为内 存问题导致的。做过基础设施的兄弟都应该都深有感触,碰到 CVE,加班熬夜通宵都不是事,而且搞不好还是加了班还 背锅,因此我们也在积极探寻一条自我救赎的道路。

我们期望这个答案是 Rust。


  • Insight 2:资源隔离方案演进


还有一个 insight 就是如何进行资源隔离。大家都知道,一台服务器上的资源太大了,肯定要分开了用或 者分开卖。咱们手里的两个有力的武器是 container 和虚拟机,都可以实现资源的分割。当然,从管理 面上咱们可以看到 K8S,openstack,libvirt 这些东西。 container 这玩意非常好,但是就是不够安全,所以咱们又搞了一条新的路,用虚拟机套容器(其实也 就是所谓的安全容器)。安全性的问题解决了,但是又带来一个新的问题,虚拟机太重了,对于一些常驻的业务还好,对一些轻量的业务(比如 serverless),那就真是要命了。向左走,还是向右走?咱们 的解决方案是啥,microvm。

在轻量化场景下,openEuler 在开源的解决方案做了很多探索,也尝试来解题。 第一个发现是 docker 太重了,对每个 vm 的管理开销接近 100MB,因此我们有了 isula。同时我们发现 qemu 也太重了,因此有了 stratovirt。 


StratoVirt 的架构设计原理是什么? 


从顶层架构上看,当前 StratoVirt 在软件栈中所处的位置和 qemu、Firecracker 类似:向下借助 KVM 模 块实现硬件加速,例如 X86 的 VT 和鲲鹏平台的 Kunpeng-V;向上通过容器引擎 isula 或 docker 对接容器生 态,通过虚拟机引擎 libvirt 对接虚拟机生态,以此实现对端、边、云中多种应用场景的支持。

就 StratoVirt 本身而言,相比于 Rust-VMM 最大的架构特征就是组件化、可灵活配置:例如在 StratoVirt 中引入了 device model 的概念,基于此实现了 CPU、扁平内存、堆叠内存、virtio 设备 PCI 设备等多种公 共组件;

针对轻量化场景,我们可以选用轻量机型主板并在此基础上增加 CPU、扁平内存、Virtio 设备等必要组 件;

针对标准化场景不,我们可以选用标准机型主板并增加 CPU、堆叠内存模型、PCI 系统、Virtio 设备等组 件,这样便可以灵活应对各种场景的需求。 



StratoVirt 未来

StratoVirt 的发展路标为, 通过一套架构,支持轻量虚拟机和标准虚拟机两种模式:

  • 轻量虚拟机模式下,单虚机内存底噪小于 4MB,启动时间小于 50ms,且支持 ms 级时延的设备极速伸缩能力,当前已经开发完毕,2020 年 9 月已经在 openEuler 社区开源;

  • 标准虚拟机模式下,可支持完整的机器模型,启动标准内核镜像,可以达成 Qemu 的能力,同时在代码规模和安全性上有较大优势。

欢迎加入

目前 StratoVirt 已经在 openEuler 社区开源,期待你的围观和加入!

项目地址:https://gitee.com/openeuler/stratovirt


openEuler 社区近期每周二晚 8 点通过 B 站直播深入解读 StratoVirt,欢迎来直播间和 StratoVirt 项目贡献者交流!直播间地址: http://live.bilibili.com/22290444

  • 2020.10.27 20:00  如何安装并使用 StratoVirt

  • 2020.11.03 20:00  StatoVirt 之 CPU 子系统剖析

  • 2020.11.10 20:00  StatoVirt 之内存子系统剖析

  • 2020.11.17 20:00  StatoVirt 之 IO 子系统剖析

  • 2020.11.24 20:00  StatoVirt 技术规划和展望


用户头像

openEuler

关注

还未添加个人签名 2020.09.30 加入

开源操作系统

评论

发布
暂无评论
openEuler开源下一代全场景虚拟化平台StratoVirt