StratoVirt is an enterprise-level virtualization platform for cloud data centers in the computing industry. It implements a set of architecture that supports three scenarios: virtual machines, containers, and serverless computing.
StratoVirt has competitive advantages in light weight and low noise, software and hardware coordination, and Rust language-level security.
StratoVirt reserves interface and design for importing more features, even evaluates to standard virtualization.
Before building StratoVirt, make sure that Rust language and Cargo have already been installed. If not, you can find installation guidance via following link:
And it will get smaller memory overhead if you prepare musl toolchain for rust.
To build StratoVirt, clone the project and build it first:
$ git clone https://gitee.com/openeuler/stratovirt.git $ cd stratovirt $ cargo build --release
Now you can find StratoVirt binary in
To run StratoVirt quickly, requires
You can get kernel and rootfs image from the following link:
For standard_vm, firmware file of EDK2 which follows UEFI is required.
# If the socket of qmp exists, remove it first. # Start microvm $ ./target/release/stratovirt \ -machine microvm \ -kernel /path/to/kernel \ -append "console=ttyS0 root=/dev/vda reboot=k panic=1" \ -drive file=/path/to/rootfs,id=rootfs,readonly=off \ -device virtio-blk-device,drive=rootfs \ -qmp unix:/path/to/socket,server,nowait \ -serial stdio # Start standard_vm $ ./target/release/stratovirt \ -machine standard_vm \ -kernel /path/to/kernel \ -append "console=ttys0 root=/dev/vda reboot=k panic=1" \ -drive file=/path/to/firmware,if=pflash,unit=0,readonly=true \ -device pcie-root-port,port=0x0,addr=0x1.0x0,bus=pcie.0,id=pcie.1 \ -drive file=/path/to/rootfs,id=rootfs,readonly=off \ -device virtio-blk-pci,drive=rootfs,bus=pcie.1,addr=0x0.0x0 \ -qmp unix:/path/to/socket,server,nowait \ -serial stdio
The detailed guidance of making rootfs, compiling kernel and building StratoVirt can be found in StratoVirt QuickStart.
StratoVirt supports much more features, the detailed guidance can be found in Configuration Guidebook.
To get more details about StratoVirt's core architecture design, refer to StratoVirt design.
We welcome new contributors! And we are happy to provide guidance and help for new contributors. StratoVirt follows Rust formatting conventions, which can be found at:
You can get more information about StratoVirt at:
StratoVirt is licensed under the Mulan PSL v2.
：Code submit frequency
：React/respond to issue & PR etc.
：Well-balanced team members and collaboration
：Recent popularity of project
：Star counts, download counts etc.