v0.24.0

firecracker-microvm/firecrackerv0.24.0Dec 23, 2020by sandreim

AI Summary

A significant feature release introducing snapshot capabilities, including incremental snapshots and aarch64 support, alongside new device support and API improvements.

Key Highlights

  • Added support for incremental guest memory snapshots and aarch64 snapshotting.
  • Added virtio traditional memory ballooning device support.
  • Added optional `resume_vm` field to `/snapshot/load` API call.
  • Increased maximum number of virtio devices from 11 to 19.
  • Removed deprecated jailer `--extra-args` parameter.

Breaking Changes

  • Removed the jailer `--extra-args` parameter.

New Features

  • Incremental guest memory snapshot support
  • aarch64 snapshot support
  • virtio traditional memory ballooning device
  • Optional `resume_vm` field in snapshot/load API
  • Block rate limiter PATCH support
  • devtool cpuset confinement flags
  • UART non-blocking serial write behavior

Full Release Notes

### Added

- Added optional `resume_vm` field to `/snapshot/load` API call.
- Added support for block rate limiter PATCH.
- Added devtool test `-c|--cpuset-cpus` flag for cpus confinement when tests
  run.
- Added devtool test `-m|--cpuset-mems` flag for memory confinement when tests
  run.
- Added the virtio traditional memory ballooning device.
- Added a mechanism to handle vCPU/VMM errors that result in process termination.
- Added incremental guest memory snapshot support.
- Added aarch64 snapshot support.

### Changed

- Change the information provided in `DescribeInstance` command to provide microVM
  state information (Not started/Running/Paused) instead of whether it's started or not.
- Removed the jailer `--extra-args` parameter. It was a noop, having been
  replaced by the `--` separator for extra arguments.
- Changed the output of the `--version` command line parameter to include a list
  of supported snapshot data format versions for the firecracker binary.
- Increased the maximum number of virtio devices from 11 to 19.
- Added a new check that prevents creating v0.23 snapshots when more than 11
  devices are attached.
- If the stdout buffer is full and non-blocking, the serial writes no longer block.
  Any new bytes will be lost, until the buffer is freed. The device also logs these
  errors and increments the `uart.error_count` metric for each lost byte.

### Fixed

- Fixed inconsistency in YAML file InstanceInfo definition