StratoVirt 企业级虚拟化平台开源项目

我要开发同款
白开水不加糖2020年09月28日
54阅读
开发技术Rust
所属分类虚拟机、服务器软件
授权协议MulanPSL-2.0

作品详情

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

StratoVirt在保留传统虚拟化的隔离能力和安全能力的同时,降低了内存资源消耗,提高了虚拟机的启动速度。StratoVirt可应用于微服务或无服务器场景,如函数计算。

StratoVirt预留了接口和设计来支持更多特性,未来甚至向标准虚拟化演进。

特性:

基于硬件的高度隔离。快速冷启动:得益于极简设计,StratoVirt可以在50ms内启动microVM。低内存开销。StratoVirt的内存占用只有3MB。IO增强:StratoVirt通过最小化的IO设备模拟提供正常的IO能力。OCI兼容性:StratoVirt可与isula和kata容器一起使用,并且可以完美地集成到Kubernetes生态系统中。多平台支持:全面支持Intel和Arm平台。可扩展性:StratoVirt为导入更多的功能保留了接口和设计,甚至扩展到标准的虚拟化支持。

架构

下图显示了StratoVirt的核心架构,从上到下共有三层。

OCIcompatibilityAPI:StratoVirt使用QMP协议与外部系统通信,并与OCI兼容。BootLoader:StratoVirt采用简单的BootLoader加载内核镜像,而不是传统繁琐的BIOS和Grub启动模式,实现快速启动。轻量化:为了提高性能,减少攻击面,StratoVirt尽量减少用户模式设备的模拟。采用KVM模拟设备和准虚拟化设备,如GIC、串口、RTC和virtio设备。

运行架构

StratoVirt虚拟机是Linux中的一个独立进程,该进程有两种类型的线程:主线程和VCPU线程。主线程是一个循环,用于异步收集和处理来自外部模块的事件,比如VCPU线程。每个VCPU都有一个线程来处理这个VCPU的陷阱事件。

限制条件

仅支持Linux操作系统。推荐的内核版本是4.19。仅支持Linux作为客户端操作系统,建议的内核版本为4.19。最多支持254个CPU。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论