diff --git a/Cargo.lock b/Cargo.lock index f0199100b..d72fa81ee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -172,7 +172,7 @@ dependencies = [ [[package]] name = "cloud-hypervisor" -version = "0.6.0" +version = "0.7.0" dependencies = [ "arc-swap", "clap", diff --git a/Cargo.toml b/Cargo.toml index 02e3328d6..8705f3f82 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cloud-hypervisor" -version = "0.6.0" +version = "0.7.0" authors = ["The Cloud Hypervisor Authors"] edition = "2018" default-run = "cloud-hypervisor" diff --git a/release-notes.md b/release-notes.md index a7175d7da..e389ec866 100644 --- a/release-notes.md +++ b/release-notes.md @@ -1,10 +1,20 @@ +- [v0.7.0](#v070) + - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug) + - [Alternative `libc` Support](#alternative-libc-support) + - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends) + - [Initial RamFS Support](#initial-ramfs-support) + - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem) + - [`Seccomp` Sandboxing](#seccomp-sandboxing) + - [Updated Distribution Support](#updated-distribution-support) + - [Command Line and API Changes](#command-line-and-api-changes) + - [Contributors](#contributors) - [v0.6.0](#v060) - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug) - [Shared Filesystem Improvements](#shared-filesystem-improvements) - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading) - [Command Line Interface](#command-line-interface) - [PVH Boot](#pvh-boot) - - [Contributors](#contributors) + - [Contributors](#contributors-1) - [v0.5.1](#v051) - [v0.5.0](#v050) - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing) @@ -12,7 +22,7 @@ - [New Interrupt Management Framework](#new-interrupt-management-framework) - [Development Tools](#development-tools) - [Kata Containers Integration](#kata-containers-integration) - - [Contributors](#contributors) + - [Contributors](#contributors-2) - [v0.4.0](#v040) - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition) - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation) @@ -21,7 +31,7 @@ - [Userspace IOAPIC by default](#userspace-ioapic-by-default) - [PCI BAR reprogramming](#pci-bar-reprogramming) - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization) - - [Contributors](#contributors-1) + - [Contributors](#contributors-3) - [v0.3.0](#v030) - [Block device offloading](#block-device-offloading) - [Network device backend](#network-device-backend) @@ -48,6 +58,105 @@ - [Unit testing](#unit-testing) - [Integration tests parallelization](#integration-tests-parallelization) +# v0.7.0 + +This release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7). + +Highlights for `cloud-hypervisor` version 0.7.0 include: + +### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug + +Further to our effort to support modifying a running guest we now support +hotplug and unplug of the following virtio backed devices: block, network, +pmem, virtio-fs and vsock. This functionality is available on the (default) PCI +based tranport and is exposed through the HTTP API. The `ch-remote` utility +provides a CLI for adding or removing these device types after the VM has +booted. User can use the `id` parameter on the devices to choose names for +devices to ease their removal. + +### Alternative `libc` Support + +Cloud Hypervisor can now be compiled with the `musl` C library and this release +contains a static binary compiled using that toolchain. + +### Multithreaded Multi Queued `vhost-user` Backends + +The `vhost-user` backends for network and block support that are shipped by +Cloud Hypervisor have been enhanced to support multiple threads and queues to +improve throughput. These backends are used automatically if `vhost_user=true` +is passed when the devices are created. + +### Initial RamFS Support + +By passing the `--initramfs` command line option the user can specify a file to +be loaded into the guest memory to be used as the kernel initial filesystem. +This is usually used to allow the loading of drivers needed to be able to +access the real root filesystem but it can also be used standalone for a very +minimal image. + +### Alternative Memory Hotplug: `virtio-mem` + +As well as supporting ACPI based hotplug Cloud Hypervisor now supports using +the `virtio-mem` hotplug alternative. This can be controlled by the +`hotplug_method` parameter on the `--memory` command line option. It currently +requires kernel patches to be able to support it. + +### `Seccomp` Sandboxing + +Cloud Hypervisor now has support for restricting the system calls that the +process can use via the `seccomp` security API. This on by default and is +controlled by the `--seccomp` command line option. + +### Updated Distribution Support + +With the release of Ubuntu 20.04 we have added that to the list of supported +distributions and is part of our regular testing programme. + +### Command Line and API Changes + +This is non exhaustive list of HTTP API and command line changes + +* New `id` fields added for devices to allow them to be named to ease removal. + If no name is specified the VMM chooses one. +* Use `--memory`'s `shared` and `hugepages` controls for determining backing + memory instead of providing a path. +* The `--vsock` parameter only takes one device as the Linux kernel only + supports a single Vsock device. The REST API has removed the vector for this + option and replaced it with a single optional field. +* There is enhanced validation of the command line and API provided + configurations to ensure that the provided options are compatible e.g. that + shared memory is in use if any attempt is made to used a `vhost-user` backed + device. +* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and + `add-vsock` subcommands. For removal `remove-device` is used. The REST API + has appropriate new HTTP endpoints too. +* Specifying a `size` with `--pmem` is no longer required and instead the size + will be obtained from the file. A `discard_writes` option has also been added + to provide the equivalent of a read-only file. +* The parameters to `--block-backend` have been changed to more closely align + with those used by `--disk`. + +### Contributors + +Many thanks to everyone who has contributed to our 0.7.0 release including some new faces. + +* Alejandro Jimenez +* Bo Chen +* Cathy Zhang +* Damjan Georgievski +* Dean Sheather +* Eryu Guan +* Hui Zhu +* Jose Carlos Venegas Munoz +* Martin Xu +* Muminul Islam +* Rob Bradford +* Samuel Ortiz +* Sebastien Boeuf +* Sergio Lopez +* Yang Zhong +* Yi Sun + # v0.6.0 This release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).