A snapshot is an conceptual “picture” of an instance at some instant in time, which can be used to restore the instance to what it was at that instant. To achieve this, a snapshot records all mutable properties of an instance, that is, all the properties that can change through interaction with Multipass. These include disk contents and size, the number of CPUs, the amount of memory, and mounts. Aliases are not considered part of the instance and are not recorded.
Snapshots can be taken with the
snapshot command and restored with the
restore command. For the time being, taking and restoring a snapshot requires the instance to be stopped. Available snapshots can be listed with
list --snapshots (see
list) and a snapshot’s full details can be interrogated with
info <instance>.<snapshot> (see
delete command can be used to delete snapshots.
An instance’s disk contents are recorded by snapshots in layers: each new snapshot records changes with respect to its parent snapshot. A snapshot’s parent is the snapshot that was last taken or restored when the new snapshot is taken. Parent and children snapshots of a deleted snapshot retain a consistent record of the instance. Multipass provides information of snapshots’ parent/child relations to help identify their role or contents.
- Long chains of snapshots have a detrimental effect on performance. Since they rely on layers of disk diffs, the more snapshots there are in a sequence, the more hops are necessary to read data that is recorded by the most ancient layers.
- While snapshots are useful to save and recover instance states, their utility as safe backups is limited. Since they are stored in the same medium as the original images, they are as likely to be affected by disk failures.