Checkpoint/restore streamer

The Cedana daemon supports checkpoint/restore via low-overhead streaming. It's powered by the streamer plugin, which is a fork of CRIU's image streamer.

Real benefit of streaming is realized when checkpointing and restoring to/from a remote location. See Remoting.

Prerequisites

  1. Create an account with Cedana, to get access to the streamer plugin. See authentication.

  2. Set the Cedana URL & authentication token in the configuration.

  3. Install the streamer plugin with sudo cedana plugin install streamer.

  4. Ensure the daemon is running, see installation.

  5. Do a health check to ensure the plugin is ready, see health checks.

Checkpoint

The cedana dump subcommand supports a --stream <n> flag, where n is the number of parallel streams to use. For example:

cedana dump process <pid> --stream 4

This will directly stream the checkpoint to a directory, using 4 parallel streams. You will notice that the checkpoint directory contains 4 separate image files:

-rw-r--r-- 1 root root 145K Feb 19 15:13 img-0
-rw-r--r-- 1 root root  17K Feb 19 15:13 img-1
-rw-r--r-- 1 root root 209K Feb 19 15:13 img-2
-rw-r--r-- 1 root root 188K Feb 19 15:13 img-3

Restore

Similarly, the cedana restore subcommand supports a --stream <n> flag, where n is the number of parallel streams to use. For example:

cedana restore process --stream 4 --path <path-to-dump>

Note that, here you must pass in 4 as the number of parallel streams, as the checkpoint directory contains 4 separate image files, since the checkpoint was taken with 4 parallel streams.

Compression

All compression algorithms supported for basic checkpoint/restore are supported. See compression for more information.

Remoting

The daemon simply reads/writes from the filesystem. This is also the case for streaming, with the additional requirement that the underlying filesystem must be POSIX-compliant.

To checkpoint/restore to/from a remote directory, you can use a FUSE-based filesystem mount backed by your network storage. For Amazon's S3, check out s3fs-fuse.

Enable by default

To enable streaming by default, set the Checkpoint.Stream field in the configuration to the desired number of parallel streams. Zero means no streaming.

For all available CLI options, see CLI reference. Directly interacting with daemon is also possible through gRPC, see API reference.

Last updated

Was this helpful?