Line 1: |
Line 1: |
| 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. | | 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 == |
− | {{Status|in progress}}
| |
| | | |
− | Currently, vzctl supports CRIU for checkpoint/restore of upstream containers (i.e. when non-OpenVZ kernel is used). Commands <code>vzctl suspend</code> and <code>vzctl restore</code> fully work. Live migration doesn't work yet as it requires support for <code>vzctl suspend {--suspend, --dump, --kill, --restore}</code> which is not yet implemented as it requires a separate daemon to hold the state of a partially checkpointed container (or an ability from criu tool to do that).
| + | === Virtuozzo/OpenVZ === |
− | * [https://openvz.org Project homepage] | + | {{Status|ready}} |
− | * [http://git.openvz.org/?p=vzctl&a=search&h=HEAD&st=commit&s=CRIU%7Ccriu%7Ccrtools&sr=1 Relevant vzctl git commits] | + | |
| + | 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 == | + | === LXC/LXD === |
| {{Status|ready}} | | {{Status|ready}} |
| * [http://linuxcontainers.org Project homepage] | | * [http://linuxcontainers.org Project homepage] |
Line 14: |
Line 17: |
| * [https://linuxcontainers.org/lxc/manpages/man1/lxc-checkpoint.1.html lxc-checkpoint man page] | | * [https://linuxcontainers.org/lxc/manpages/man1/lxc-checkpoint.1.html lxc-checkpoint man page] |
| | | |
− | == [[Docker]] ==
| + | ''See also: [[LXC]]'' |
− | {{Status|in progress}} | + | |
| + | === 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/libcontainer/pull/479 Merged] into libcontainers | + | * [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]]'' |
| | | |
− | == CoreOS Rocket == | + | === Shell === |
| {{Status|not started}} | | {{Status|not started}} |
| | | |
− | == OpenMPI == | + | 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}} |
| + | |
| + | 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}} | | {{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 |
| | | |
− | == [[X applications|Wayland/Weston]] == | + | === Subgraph OS === |
| + | {{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}} | | {{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 | | * Ruslan Kuprieiev plans to [http://lists.openvz.org/pipermail/criu/2015-January/018875.html patch] Weston to let CRIU C/R graphical apps |
| | | |
− | == The <code>file</code> utility ==
| + | ''See also: [[X applications]] |
− | {{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]
| |
| | | |
− | == Systemd == | + | === Systemd === |
| {{Status|not started}} | | {{Status|not started}} |
− | Adrian suggested that
| |
| | | |
− | Migrating
| + | Adrian suggested that migrating |
− | processes from one system to another works, depending on the process,
| + | processes from one system to another works, depending on the process, |
− | pretty good. Migrating a process under systemd's control might be
| + | pretty good. Migrating a process under systemd's control might be |
− | possible by just killing the process on the source side but it cannot
| + | 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
| + | 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
| + | without systemd knowing how to restore a process and thus making it a |
− | child process of systemd (--restore-sibling).
| + | child process of systemd (--restore-sibling). |
| | | |
| [[Category:Plans]] | | [[Category:Plans]] |
| + | [[Category:Development]] |