Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Changes in versioning of Firecracker snapshots#4137

bchalios started this conversation inGeneral
Discussion options

Firecracker provides a snapshotting feature, currently on Developer Preview. Users can take a snapshot of a running microVM and later use this snapshot to launch more microVMs, identical to the one they took the snapshot from. This feature removes the “overhead” of booting an entire Linux microVM from scratch. As a result, it allows services to reduce significantly the time it takes to start a microVM in a state in which it is ready perform its tasks.

Snapshot versions today

Snapshots come with versions which, today, are tightly coupled with Firecracker versions. When we first designed the snapshot feature we wanted to support both forward and backward snapshot compatibility that spanned as many Firecracker versions as possible. Backward compatibility refers to the ability to load snapshots created targeting an older version of Firecracker. Forward compatibility refers to the ability of a Firecracker process to create a snapshot targeting an older version of Firecracker. The intention was that we would allow users to easily migrate a fleet of microVMs to newer versions of Firecracker (backward compatibility) or roll it back to a previous version of Firecracker (forward compatibility).

Building on the experience of our users’ adoption of the snapshot feature in production, we observed that we never really use the forward compatibility functionality. Moreover, when migrating to new Firecracker versions, users typically start consuming new Firecracker features, which would not be available to a microVM if resumed from an older snapshot. As a result, even though it is possible to load older snapshot versions on new Firecracker versions, users typically don’t do it so that they take advantage of new functionality.

To support forwards and backwards compatibility spanning multiple minor/major versions, we increase code and testing complexity. According to the data we gathered during development preview, the (lack of) adoption of these features does not justify the maintenance cost. As a result, we have decided to change the versioning scheme of Firecracker snapshots and the version compatibility guarantees, taking into account the real Firecracker's users requirements of the snapshotting feature, improve code quality, and future-proofing maintainability.

Snapshot versions moving forward

We will drop completely support for snapshot forwards compatibility. This means that the field version
of the /snapshot/create PUT request will be deprecated, starting from version v1.5 and will be removed in a future release.

With version v1.6 we will introduce a new versioning scheme for Firecracker snapshots:

  1. Snapshot will have a version that follows semantic versioning and will be independent to Firecracker versions. We will start with version 1.0.0.
  2. Every time the snapshot format changes in a backwards compatible way, the minor version of the format will increase.
  3. Every time the snapshot format changes in a backwards-incompatible way the major version of the format will increase.
  4. Firecracker will never break the snapshot format across Firecracker patch releases.
  5. Firecracker will support backwards compatible snapshot changes in a best-effort manner.

Should you have any questions, concerns or suggestions, please feel free to ask in this discussion, by 10/10/2023

Sincerely,
The Firecracker team

You must be logged in to vote

Replies: 1 comment

Comment options

bchalios
Oct 30, 2023
Maintainer Author

Status update on this item. We have merged a PR that removes forward compatibility support:#4194. That means that Firecracker, starting with version 1.6, will not be able to create snapshots for older versions of Firecracker releases.

You must be logged in to vote
0 replies
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Category
General
Labels
None yet
1 participant
@bchalios

[8]ページ先頭

©2009-2025 Movatter.jp