Difference between revisions of "Integration"

From CRIU
Jump to navigation Jump to search
(Created page with "CRIU is quite hard to uses alone. This tool does is best when integrated with some other. == OpenVZ == * [https://openvz.org Project homepage] == LXC/LXD == * [http://linuxc...")
 
m
 
(43 intermediate revisions by 6 users not shown)
Line 1: Line 1:
CRIU is quite hard to uses alone. This tool does is best when integrated with some other.
+
CRIU is not so easy to be used as a standalone tool -- it works best integrated into other software. This page lists such software and provides details about the current status.
  
== OpenVZ ==
+
== Container platforms ==
* [https://openvz.org Project homepage]
 
  
== LXC/LXD ==
+
=== Virtuozzo/OpenVZ ===
 +
{{Status|ready}}
 +
 
 +
As of Virtuozzo/OpenVZ 7, CRIU is fully integrated and supported. Older OpenVZ releases used in-kernel checkpoint/restore functionality, now superseded by CRIU.
 +
 
 +
* [https://openvz.org/ OpenVZ]
 +
* [https://virtuozzo.com/ Virtuozzo]
 +
 
 +
=== LXC/LXD ===
 +
{{Status|ready}}
 
* [http://linuxcontainers.org Project homepage]
 
* [http://linuxcontainers.org Project homepage]
 
* The tools version 1.1.0 fully supports CRIU to C/R LXC containers
 
* The tools version 1.1.0 fully supports CRIU to C/R LXC containers
 +
* [https://linuxcontainers.org/lxc/manpages/man1/lxc-checkpoint.1.html lxc-checkpoint man page]
  
== Docker ==
+
''See also: [[LXC]]''
 +
 
 +
=== Docker ===
 +
{{Status|ready}}
 
* [https://docker.io Project homepage]
 
* [https://docker.io Project homepage]
* Integration [https://github.com/docker/libcontainer/pull/204 efforts] done by Saied Kazemi from Google
+
* [https://github.com/docker/libcontainer/pull/479 Merged] into libcontainer/runc
 +
* [https://github.com/docker/docker/pull/22049 Merged] into Docker itself
 +
* Preparations [https://github.com/docker/libcontainer/pull/204 efforts] done by Saied Kazemi
 +
 
 +
''See also: [[Docker]] C/R''
 +
 
 +
== Podman ==
 +
{{Status|ready}}
 +
* [https://podman.io/ Project homepage]
 +
* [https://podman.io/blogs/2018/10/10/checkpoint-restore.html Blog entry about adding the support]
 +
 
 +
== Tools and utilities ==
 +
 
 +
=== The <code>file</code> utility ===
 +
{{Status|ready}}
 +
* Starting from v1.6 new images (v1.1) will be generated
 +
* File utility starting from 5.23 [https://github.com/file/file/commit/0d76d756c5d7d5bbd4df6390b21b080f32665fd6 will support these]
 +
 
 +
=== Screen/TMUX ===
 +
{{Status|stalled}}
 +
 
 +
* Jerome [https://github.com/jpetazzo/critmux did] this some time ago
 +
 
 +
''See also: [[Screen]]''
 +
 
 +
=== Shell ===
 +
{{Status|not started}}
 +
 
 +
It would be nice to have bash (or other shell) to launch criu with <code>--restore-sibling</code> option and get new kid processes from it. Right now we workaround it with "[[shell jobs]]".
 +
 
 +
''See also: [[Shell jobs]]''
 +
 
 +
== Other ==
 +
 
 +
=== OpenJDK ===
 +
{{Status|started}}
  
== OpenMPI ==
+
The [https://openjdk.java.net/projects/crac/ CRaC] (Coordinated Restore at Checkpoint) Project researches coordination of Java programs with mechanisms to checkpoint (make an image of, snapshot) a Java instance while it is executing. Restoring from the image could be a solution to some of the problems with the start-up and warm-up times. The primary aim of the Project is to develop a new standard mechanism-agnostic API to notify Java programs about the checkpoint and restore events. Other research activities will include, but will not be limited to, integration with existing checkpoint/restore mechanisms and development of new ones, changes to JVM and JDK to make images smaller and ensure they are correct.
 +
 
 +
* [https://openjdk.java.net/projects/crac/index.html OpenJDK: CRaC Project]
 +
* [https://wiki.openjdk.java.net/display/crac CRaC Wiki]
 +
* [https://github.com/openjdk/crac CRaC Repository]
 +
 
 +
=== OpenMPI ===
 +
{{Status|stalled}}
 
* Adrian Reber [https://lisas.de/~adrian/open-mpi.git/ did] first version of patches
 
* Adrian Reber [https://lisas.de/~adrian/open-mpi.git/ did] first version of patches
  
== Wayland/Weston ==
+
=== Subgraph OS ===
* Ruslan Kuprieiev plans to [http://lists.openvz.org/pipermail/criu/2015-January/018875.html patch] the X-server to let CRIU C/R graphical apps
+
{{Status|not started}}
 +
 
 +
* [https://subgraph.com/sgos/index.en.html Subgraph OS] is a desktop operation system uses containers for users applications.
 +
 
 +
=== SLURM workload manager ===
 +
{{Status|ready}}
 +
 
 +
* Project homepage [http://slurm.schedmd.com/slurm.html here]
 +
* Integration code [https://github.com/supermanue/slurm/commits/criuPlugin on the github]
 +
 
 +
=== Wayland/Weston ===
 +
{{Status|stalled}}
 +
* Ruslan Kuprieiev plans to [http://lists.openvz.org/pipermail/criu/2015-January/018875.html patch] Weston to let CRIU C/R graphical apps
 +
 
 +
''See also: [[X applications]]
 +
 
 +
=== Systemd ===
 +
{{Status|not started}}
 +
 
 +
Adrian suggested that migrating
 +
processes from one system to another works, depending on the process,
 +
pretty good. Migrating a process under systemd's control might be
 +
possible by just killing the process on the source side but it cannot
 +
become a child process of systemd on the destination of the migration
 +
without systemd knowing how to restore a process and thus making it a
 +
child process of systemd (--restore-sibling).
 +
 
 +
[[Category:Plans]]
 +
[[Category:Development]]

Latest revision as of 10:13, 17 September 2021

CRIU is not so easy to be used as a standalone tool -- it works best integrated into other software. This page lists such software and provides details about the current status.

Container platforms[edit]

Virtuozzo/OpenVZ[edit]

Status: ready

As of Virtuozzo/OpenVZ 7, CRIU is fully integrated and supported. Older OpenVZ releases used in-kernel checkpoint/restore functionality, now superseded by CRIU.

LXC/LXD[edit]

Status: ready

See also: LXC

Docker[edit]

Status: ready

See also: Docker C/R

Podman[edit]

Status: ready

Tools and utilities[edit]

The file utility[edit]

Status: ready

  • Starting from v1.6 new images (v1.1) will be generated
  • File utility starting from 5.23 will support these

Screen/TMUX[edit]

Status: stalled

  • Jerome did this some time ago

See also: Screen

Shell[edit]

Status: not started

It would be nice to have bash (or other shell) to launch criu with --restore-sibling option and get new kid processes from it. Right now we workaround it with "shell jobs".

See also: Shell jobs

Other[edit]

OpenJDK[edit]

Status: started

The CRaC (Coordinated Restore at Checkpoint) Project researches coordination of Java programs with mechanisms to checkpoint (make an image of, snapshot) a Java instance while it is executing. Restoring from the image could be a solution to some of the problems with the start-up and warm-up times. The primary aim of the Project is to develop a new standard mechanism-agnostic API to notify Java programs about the checkpoint and restore events. Other research activities will include, but will not be limited to, integration with existing checkpoint/restore mechanisms and development of new ones, changes to JVM and JDK to make images smaller and ensure they are correct.

OpenMPI[edit]

Status: stalled

  • Adrian Reber did first version of patches

Subgraph OS[edit]

Status: not started

  • Subgraph OS is a desktop operation system uses containers for users applications.

SLURM workload manager[edit]

Status: ready

Wayland/Weston[edit]

Status: stalled

  • Ruslan Kuprieiev plans to patch Weston to let CRIU C/R graphical apps

See also: X applications

Systemd[edit]

Status: not started

Adrian suggested that migrating processes from one system to another works, depending on the process, pretty good. Migrating a process under systemd's control might be possible by just killing the process on the source side but it cannot become a child process of systemd on the destination of the migration without systemd knowing how to restore a process and thus making it a child process of systemd (--restore-sibling).