Checkpoint/restore containerd

Prerequisites

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

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

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

  4. Ensure the daemon is running, see installation.

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

Basic

  1. Run a new containerd container, for example:

sudo ctr run docker.io/library/nginx:latest <container_id>
  1. Checkpoint:

cedana dump containerd <container_id> --dir <dump-dir>
  1. Restore is currently WIP. However, you can restore this container as a runc container, see checkpoint/restore runc.

Managed

  1. Run a new managed containerd container:

cedana run containerd --attach --jid <job_id> --image docker.io/library/nginx:latest
  1. Checkpoint:

cedana dump job <job_id>
  1. Restore is currently WIP.

GPU support

Just like for processes, as explained in checkpoint/restore with GPUs, GPU support is also available for managed containerd containers.

  1. Run a new managed containerd container with GPU support:

cedana run containerd --attach --gpu-enabled --jid <job_id> --image docker.io/library/nginx:latest
  1. Checkpoint:

cedana dump job <job_id>
  1. Restore is currently WIP.

Rootfs

To include the rootfs in the checkpoint, additionally set the --image flag with a new image name. For example:

cedana dump containerd <container_id> --dir <dump-dir> --image <new-image-name>

For checkpoint only the rootfs, set the --rootfs-only flag. For example:

cedana dump containerd <container_id> --dir <dump-dir> --image <new-image-name> --rootfs-only

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?