StratoVirt——企业级虚拟化平台
整理 | 叶子
一、软件介绍
StratoVirt 是计算产业中面向云数据中心的企业级虚拟化平台,实现了一套架构统一支持虚拟机、容器、Serverless 三种场景。StratoVirt 在轻量低噪、软硬协同、Rust 语言级安全等方面具备关键技术竞争优势。
StratoVirt 在保留传统虚拟化的隔离能力和安全能力的同时,降低了内存资源消耗,提高了虚拟机的启动速度。StratoVirt 可应用于微服务或无服务器场景,如函数计算。
StratoVirt 预留了接口和设计来支持更多特性,未来甚至向标准虚拟化演进。
二、项目地址
https://gitee.com/openeuler/stratovirt
三、特性
基于硬件的高度隔离。
快速冷启动:得益于极简设计,StratoVirt可以在50ms内启动microVM。
低内存开销。StratoVirt 的内存占用只有 3MB。
IO 增强:StratoVirt 通过最小化的IO设备模拟提供正常的IO能力。
OCI兼容性:StratoVirt可与isula和kata容器一起使用,并且可以完美地集成到Kubernetes生态系统中。
多平台支持:全面支持Intel和Arm平台。
可扩展性:StratoVirt 为导入更多的功能保留了接口和设计,甚至扩展到标准的虚拟化支持。
四、架构
下图显示了 StratoVirt 的核心架构,从上到下共有三层。
OCI compatibility API: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。
往期推荐
2021-02-23
2021-02-05
2021-02-03
扫码关注最新动态
公众号ID:fosslab
我就知道你“在看”