Skip to content

Commit c1a7f2c

Browse files
committed
doc: clarify cross-kernel snapshot compatibility
Simplify by just making the statement that we do not recommend it, and it generally doesnt work except for one limited case. Simplify the table by only listing what's working, an by having the first column directly refer to instance types (instead of cpu architectures, which we later map to instance types in the text). While we're at it, also update the table of contents at the top to include two sections it was missing. Closes #4912 Signed-off-by: Patrick Roy <roypat@amazon.co.uk>
1 parent f6bd4b6 commit c1a7f2c

File tree

1 file changed

+15
-22
lines changed

1 file changed

+15
-22
lines changed

docs/snapshotting/snapshot-support.md

+15-22
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
- [Secure and insecure usage examples](#usage-examples)
2626
- [Reusing snapshotted states securely](#reusing-snapshotted-states-securely)
2727
- [Vsock device limitation](#vsock-device-limitation)
28+
- [VMGenID device limitation](#vmgenid-device-limitation)
29+
- [Where can I resume my snapshots?](#where-can-i-resume-my-snapshots)
2830

2931
## About microVM snapshotting
3032

@@ -638,28 +640,19 @@ might not be able to handle the injected notification and crash. We suggest to
638640
users that they take snapshots only after the guest kernel has completed
639641
booting, to avoid this issue.
640642

641-
## Snapshot compatibility across kernel versions
643+
## Where can I resume my snapshots?
642644

643-
We have a mechanism in place to experiment with snapshot compatibility across
644-
supported host kernel versions by generating snapshot artifacts through
645-
[this test](../../tests/integration_tests/functional/test_snapshot_phase1.py)
646-
and checking devices' functionality using
647-
[this test](../../tests/integration_tests/functional/test_snapshot_restore_cross_kernel.py).
648-
The test restores the snapshot and ensures that all the devices set-up (network
649-
devices, disk, vsock, balloon and MMDS) are operational post-load.
645+
Snapshots must be resumed on an software and hardware configuration which is
646+
identical to what they were generated on. However, in limited cases, snapshots
647+
can be resumed on identical hardware instances where they were taken on, but
648+
using newer host kernel versions. While we do not provide any guarantees on this
649+
setup (and do not recommend doing this in production), we are currently aware of
650+
the compatibility table reported below:
650651

651-
In those tests the instance is fixed, except some combinations where we also
652-
test across the same CPU family (Intel x86, Gravitons). In general cross-CPU
653-
snapshots [are not supported](./versioning.md#cpu-model)
652+
| .metal instance type | taken on host kernel | restored on host kernel |
653+
| -------------------- | -------------------- | ----------------------- |
654+
| {c5n,m5n,m6i,m6a} | 5.10 | 6.1 |
654655

655-
The tables below reflect the snapshot compatibility observed on the AWS
656-
instances we support.
657-
658-
**all** means all currently supported Intel/AMD/ARM metal instances (m6g, m7g,
659-
m5n, c5n, m6i, m6a). It does not mean cross-instance, i.e. a snapshot taken on
660-
m6i won't work on an m6g instance.
661-
662-
| *CPU family* | *taken on host kernel* | *restored on host kernel* | *working?* |
663-
| ------------ | ---------------------- | ------------------------- | ---------- |
664-
| **x86_64** | 5.10 | 6.1 | Y |
665-
| **x86_64** | 6.1 | 5.10 | N |
656+
For example, a snapshot taken on a m6i.metal host running a 5.10 host kernel can
657+
be restored on a different m6i.metal host running a 6.1 host kernel (but not
658+
vice versa), but could not be restored on a c5n.metal host.

0 commit comments

Comments
 (0)