StratoVirt
StratoVirt is an open-source lightweight virtualization technology based on Linux Kernel-based Virtual Machine (KVM). It reduces memory consumption and accelerates VM startup while maintaining the isolation and security capabilities of traditional virtualization technologies. StratoVirt can be applied in serverless scenarios such as microservices or function computing, and retains virtualization interfaces and designs for quickly importing more features to supplement general virtualization capabilities.
The core architecture of StratoVirt is divided into three layers from top to bottom. See Figure 1.
- External APIs: StratoVirt uses the QEMU Machine Protocol (QMP) to communicate with external systems, is compatible with OCI, and supports interconnection with libvirt.
- Bootloader: In lightweight scenarios, StratoVirt uses a simple bootloader to load kernel images, much faster than the traditional BIOS+GRUB boot method. In general-purpose virtualization scenarios, StratoVirt supports UEFI boot.
- Emulated mainboard – MicroVM: To improve performance and reduce the attack surface, StratoVirt minimizes the emulation of user-mode devices. With the emulation capability, KVM-based devices and paravirtualization devices are available, such as generic interrupt controller (GIC), serial, real-time clock (RTC), and virtio-mmio devices.
- General-purpose VMs: StratoVirt provides an advanced configuration and power interface (ACPI) table to implement UEFI boot. Virtio-pci and Virtual Function I/O (VFIO) passthrough devices can be added to further improve the VM I/O performance.
StratoVirt, iSulad, and Kubernetes combine to form a complete container solution, which processes serverless loads efficiently.
Parent topic: Basic Capabilities of openEuler
