StratoVirt在x86

it2025-12-22  8

实验环境:

VMware WorkstationOS: Centos8.0 虚拟机Kernel: 4.18.0Arch: x86_64

1. StratoVirt简介

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

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

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

特性:

强安全性与隔离性 采用内存安全语言Rust编写, 保证语言级安全性; 基于硬件辅助虚拟化实现安全多租户隔离,并通过seccomp进一步约束非必要的系统调用,减小系统攻击面;轻量低噪 轻量化场景下冷启动时间<50ms,内存底噪<4M;高速稳定的IO能力 具有精简的设备模型,并提供了稳定高速的IO能力;资源伸缩 具有ms级别的设备伸缩时延,为轻量化负载提供灵活的资源伸缩能力;全场景支持 完美支持X86和Arm平台:X86支持VT,鲲鹏支持Kunpeng-V,实现多体系硬件加速; 可完美集成于容器生态,与Kubernetes生态完美对接,在虚拟机、容器和serverless场景有广阔的应用空间;扩展性 架构设计完备,各个组件可灵活地配置和拆分; 设备模型可扩展,可扩展PCIe等复杂设备规范,实现标准虚拟机演进;

架构:

OCI兼容接口:兼容qmp协议,具有完备的OCI兼容能力。BootLoader:抛弃传统的BIOS + GRUB启动模式, 实现了更轻更快的BootLoader,并达到极限启动时延。MicroVM:充分利用软硬协同能力;精简化设备模型;低时延资源伸缩能力;

2. VMware Workstation开启嵌套虚拟化

3. 下载并编译StratoVirt

# git clone https://gitee.com/openeuler/stratovirt.git # cd stratovirt # cargo build --release

4. 准备kernel及initrd

来源: /boot/vmlinuz-4.18.0-80.el8.x86_64 /boot/initramfs-4.18.0-80.el8.x86_64.img

或者

下载: x86_64内核kernel4.19.152编译的vmlinux

# dd if=/boot/vmlinuz-4.18.0-80.el8.x86_64 bs=1 skip=0018353 | zcat > vmlinux # 解压出 vmlinux # objcopy -O binary vmlinux vmlinux.bin # cp /boot/initramfs-4.18.0-80.el8.x86_64.img initramfs.img

解压 vmlinux skip=0018353参数的计算参考:将vmlinuz解压为vmlinux的方法

5. 运行

# [ -e socket ] && rm -f socket // 记得每次删除socket文件 # ./stratovirt \ -m 1G \ -kernel vmlinux.bin \ -append "rdinit=/bin/sh console=ttyS0 root=/dev/ram panic=1" \ -initrd initramfs.img \ -api-channel unix:socket \ -serial stdio [ 0.000000] Linux version 4.18.0-80.el8.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.2.1 20180905 (Red Hat 8.2.1-3) (GCC)) #1 SMP Tue Jun 4 09:19:46 UTC 2019 [ 0.000000] Command line: rdinit=/bin/sh console=ttyS0 root=/dev/ram panic=1 virtio_mmio.device=4K@0xd0000000:5 virtio_mmio.device=4K@0xd0001000:6 virtio_mmio.device=4K@0xd0002000:7 virtio_mmio.device=4K@0xd0003000:8 virtio_mmio.device=4K@0xd0004000:9 virtio_mmio.device=4K@0xd0005000:10 virtio_mmio.device=4K@0xd0006000:11 virtio_mmio.device=4K@0xd0007000:12 [ 0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers' [ 0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers' [ 0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers' [ 0.000000] x86/fpu: Supporting XSAVE feature 0x008: 'MPX bounds registers' [ 0.000000] x86/fpu: Supporting XSAVE feature 0x010: 'MPX CSR' [ 0.000000] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256 [ 0.000000] x86/fpu: xstate_offset[3]: 832, xstate_sizes[3]: 64 ...

参考: StratoVirt Gitee 企业级虚拟化平台 StratoVirt 下一代全场景虚拟化平台StratoVirt

最新回复(0)