v0.23.0
firecracker-microvm/firecrackerv0.23.0Oct 27, 2020by alindima
AI Summary
Introduces General Availability support for AMD CPUs and Developer Preview snapshot functionality, along with extensive new metrics and API endpoints for state management.
Key Highlights
- Added full support for AMD CPUs (General Availability).
- Added snapshot-restore functionality (Developer preview).
- Added `PATCH /vm` API call for changing microVM state.
- Added `track_dirty_pages` field for incremental snapshots.
- Added metrics for throttling and snapshot duration.
New Features
- AMD CPU (General Availability)
- Snapshot-restore functionality
- Metrics for throttling and block events
- track_dirty_pages field
- PATCH /vm API call
- PUT /snapshot/create API call
- PUT /snapshot/load API call
- Jailer --cgroup command line argument
Full Release Notes
### Added - Added full support for AMD CPUs (General Availability). More details [here](README.md#supported-platforms). - Added snapshot-restore functionality (Developer preview). More details [here](docs/snapshotting/snapshot-support.md). - Added metric for throttled block device events. - Added metrics for counting rate limiter throttling events. - Added metric for counting MAC address updates. - Added metrics for counting TAP read and write errors. - Added metrics for counting RX and TX partial writes. - Added metrics that measure the duration of pausing and resuming the microVM, from the VMM perspective. - Added metric for measuring the duration of the last full snapshot created, from the VMM perspective. - Added metric for measuring the duration of loading a snapshot, from the VMM perspective. - Added metrics that measure the duration of pausing and resuming the microVM, from the API (user) perspective. - Added metric for measuring the duration of the last full snapshot created, from the API (user) perspective. - Added metric for measuring the duration of loading a snapshot, from the API (user) perspective. - Added `track_dirty_pages` field to `machine-config`. If enabled, Firecracker can create incremental guest memory snapshots by saving the dirty guest pages in a sparse file. - Added a new API call, `PATCH /vm`, for changing the microVM state (to `Paused` or `Resumed`). - Added a new API call, `PUT /snapshot/create`, for creating a full snapshot. - Added a new API call, `PUT /snapshot/load`, for loading a snapshot. - Added new jailer command line argument `--cgroup` which allow the user to specify the cgroups that are going to be set by the Jailer. ### Fixed - Boot time on AMD achieves the desired performance (i.e under 150ms). ### Changed - The logger `level` field is now case-insensitive. - Disabled boot timer device after restoring a snapshot. - Enabled boot timer device only when specifically requested, by using the `--boot-timer` dedicated cmdline parameter. - firecracker and jailer `--version` now gets updated on each devtool build to the output of `git describe --dirty`, if the git repo is available. - MicroVM process is only attached to the cgroups defined by using `--cgroups` or the ones defined indirectly by using `--node`.