Checkpoint/restore streamer

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

Real benefits of streaming are realized only when checkpointing and restoring to/from a remote location. See remote storage.

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

The cedana restore will automatically detect if the checkpoint was taken with streaming, and will use the same number of streams to restore. For example:

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

Compression

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

Remote storage

Cedana supports streaming to/from remote storage, through storage plugins. Check out the following guides for specific remote storage:

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 also 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?