Skip to content

Commit c84f72b

Browse files
committed
snaps: reword doc around #snapsafe story
Signed-off-by: Diana Popa <dpopa@amazon.com>
1 parent ace0199 commit c84f72b

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

docs/snapshotting/snapshot-support.md

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
- [Overview](#overview)
99
- [Snapshot files management](#snapshot-files-management)
1010
- [Performance](#performance)
11-
- [Known issues](#known-issues)
11+
- [Developer preview status](#developer-preview-status)
12+
- [Limitations](#limitations)
1213
- [Firecracker Snapshotting characteristics](#firecracker-snapshotting-characteristics)
1314
- [Snapshot versioning](#snapshot-versioning)
1415
- [Snapshot API](#snapshot-api)
@@ -38,6 +39,7 @@ guest workload at that particular point in time.
3839

3940
The Firecracker snapshot feature is in [developer preview](../RELEASE_POLICY.md)
4041
on all CPU micro-architectures listed in [README](../../README.md#supported-platforms).
42+
See [this section](#developer-preview-status) for more info.
4143

4244
### Overview
4345

@@ -82,8 +84,6 @@ resumed microVM.
8284

8385
The Firecracker snapshot design offers a very simple interface to interact with
8486
snapshots but provides no functionality to package or manage them on the host.
85-
Using snapshots in production is currently not recommended as there are open
86-
[Known issues](#known-issues).
8787

8888
The [threat containment model](../design.md#threat-containment) states
8989
that the host, host/API communication and snapshot files are trusted by Firecracker.
@@ -96,7 +96,7 @@ example when provisioning them from a respository to a host over the network.
9696
Firecracker is optimized for fast load/resume, and it's designed to do some
9797
very basic sanity checks only on the vm state file. It only verifies integrity
9898
using a 64-bit CRC value embedded in the vm state file, but this is only
99-
as a partial measure to protect against accidental corruption, as the disk
99+
a partial measure to protect against accidental corruption, as the disk
100100
files and memory file need to be secured as well. It is important to note that
101101
CRC computation is validated before trying to load the snapshot. Should it
102102
encounter failure, an error will be shown to the user and the Firecracker
@@ -106,7 +106,7 @@ process will be terminated.
106106

107107
The Firecracker snapshot create/resume performance depends on the memory size,
108108
vCPU count and emulated devices count.
109-
The Firecracker CI runs snapshots tests on:
109+
The Firecracker CI runs snapshot tests on:
110110

111111
- AWS **m5d.metal** and **m6i.metal** instances for Intel
112112
- AWS **m6g.metal** for ARM
@@ -116,18 +116,26 @@ We are running nightly performance tests for all the enumerated platforms on
116116
all supported kernel versions.
117117
The baselines can be found in their [respective config file](../../tests/integration_tests/performance/configs/).
118118

119-
### Known issues
119+
### Developer preview status
120+
121+
The snapshot functionality is still in developer preview due to the following:
122+
123+
- Poor entropy and replayable randomness when resuming multiple microvms from
124+
the same snapshot. We do not recommend to use snapshotting in production if
125+
there is no mechanism to guarantee proper secrecy and uniqueness between
126+
guests.
127+
Please see [Snapshot security and uniqueness](#snapshot-security-and-uniqueness).
128+
129+
### Limitations
120130

121131
- High snapshot latency on 5.4+ host kernels due to cgroups V1. We
122-
- strongly recommend to deploy snapshots on cgroups V2 enabled hosts for the
123-
- implied kernel versions - [related issue](https://github.com/firecracker-microvm/firecracker/issues/2129).
132+
strongly recommend to deploy snapshots on cgroups V2 enabled hosts for the
133+
implied kernel versions - [related issue](https://github.com/firecracker-microvm/firecracker/issues/2129).
124134
- Guest network connectivity is not guaranteed to be preserved after resume.
125135
For recommendations related to guest network connectivity for clones please
126136
see [Network connectivity for clones](network-for-clones.md).
127137
- Vsock device does not have full snapshotting support.
128138
Please see [Vsock device limitation](#vsock-device-limitation).
129-
- Poor entropy and replayable randomness when resuming multiple microvms which
130-
deal with cryptographic secrets. Please see [Snapshot security and uniqueness](#snapshot-security-and-uniqueness).
131139
- Snapshotting on arm64 works for both GICv2 and GICv3 enabled guests.
132140
However, restoring between different GIC version is not possible.
133141

@@ -550,7 +558,7 @@ Boot microVM A -> ... -> Create snapshot S -> Resume -> ...
550558
-> Load S in microVM B -> Resume -> ...
551559
```
552560

553-
Here, both microVM A and B do work staring from the state stored in snapshot S.
561+
Here, both microVM A and B do work starting from the state stored in snapshot S.
554562
Unique identifiers, random numbers, and cryptographic tokens that are meant to
555563
be used once may be used twice. It doesn't matter if microVM A is terminated
556564
before microVM B resumes execution from snapshot S or not. In this example, we

0 commit comments

Comments
 (0)