Run Cloud Virtual Machines Securely and Efficiently

Cloud Hypervisor is an open source Virtual Machine Monitor (VMM) implemented in Rust that focuses on running modern, cloud workloads, with minimal hardware emulation.

Get Started

Get the source on GitHub

Secure 🔒

Minimal emulated devices and implemented in Rust to avoid many common security issues

Fast ⚡️

Boot to userspace in less than 100ms with direct kernel boot

🪟 & 🐧

Supports running modern Linux and Windows guests

Kata Containers

Supported by Kata Containers for running secure containerised workloads

Powerful REST API

Programmatically control the lifecyle of the VM using an HTTP API

Slim

Minimal memory overhead for dense deployments

Cross platform

Runs on both x86-64 and aarch64

Broad device support

Support for wide range of paravirtualised devices and physical device passthrough

Live migration

Migrate VMs from one host to another without interruption

Get Involved:

Cloud Hypervisor is governed openly as part of the Linux Foundation and supported by multiple organisations:

  • Alibaba
  • AMD
  • Ampere
  • ARM
  • ByteDance
  • Intel
  • Microsoft
  • Tencent Cloud

Join our Slack community: Invite

Check out and participate in our roadmap on GitHub

For full details of our governance model please see our community repository on GitHub and our founding charter.

For bug reports please use GitHub isssues; for broader community discussions please use our mailing list

Latest news from Cloud Hypervisor project:

Cloud Hypervisor v29.0 Released!

Posted January 14, 2023 by Cloud Hypervisor Team ‐ 2 min read

This release has been tracked in our roadmap project as iteration v29.0. The following user visible changes have been made:

Release Binary Supports Both MSHV and KVM

On x86-64 the binary included in releases supports both the KVM and MSHV hypervisor with runtime detection to identify the correct hypervisor to use.

Snapshot/Restore and Live Migration Improvements

Improvements have been made to the data structures used for both live migration and snapshot/restore. Unfortunately this has broken compatibility with older versions (support for migrating between major versions is not yet officially supported but has worked for some versions.)

Heap Allocation Improvements

Improvements have been made to the volume of heap allocations when running with virtio-block devices along with a reduction in the peak heap size.

ch-remote Improvements

Support for “pinging” the VMM and shutting the VMM down have been added to ch-remote.

AArch64 Documentation Integration

The documentation for AArch64 support has been integrated into the main README.

virtio-block Counters Enhancement

The counters for the virtio-block device has extended to include min/mean/max latency counters.

TCP Offload Control

The virtio-net device has gained support for controlling the enabling of checksum and offloading. This allows the device to be used in environments where the hardware lacks support for the offloading.

Notable Bug Fixes

  • Update dependencies including a version of linux-loader that addresses an infinite loop issue (details)
  • Fix bugs related to virtio-net including an integer overflow issue (#4924, #4949)
  • Use host cpuid information for L2 cache for older KVM on x86 (#4920)
  • Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016)
  • Fix QCOW2 refcount table size (#5034)
  • Fix unpause support on MSHV in dual binary (#5037)
  • Threads inside virtio devices are now shutdown on reboot (#5095)

Removals

No functionality has been removed in this release.

Deprecations

  • Support for specifying a directory with MemoryZoneConfig::file or MemoryConfig::file has been deprecated. This was originally used for supporting huge pages or shared memory backing which is now natively supported (#5085)

Contributors

Many thanks to everyone who has contributed to our release:

Download

See the GitHub Release for the release assets.