Projects STRLCPY criu Files
🤬
Documentation Loading last commit info...
compel
contrib
coredump
crit
criu
images
include/common
lib
scripts
soccr
test
.gitignore
.mailmap
.travis.yml
COPYING
CREDITS
INSTALL.md
Makefile
Makefile.compel
Makefile.config
Makefile.install
Makefile.versions
README.md
README.md

CRIU (Checkpoint and Restore in Userspace)

An utility to checkpoint/restore tasks. Using this tool, you can freeze a running application (or part of it) and checkpoint it to a hard drive as a collection of files. You can then use the files to restore and run the application from the point it was frozen at. The distinctive feature of the CRIU project is that it is mainly implemented in user space.

Also, CRIU provides a library for Live migration, and exposes two low-level core features as standalone libraries. Thes are libcompel for parasite code injection and libsoccr for TCP connections checkpoint-restore.

The project home is at http://criu.org.

Pages worth starting with are:

A video tour on basic CRIU features

CRIU introduction

Live migration

True live migration using CRIU is possible, but doing all the steps by hands might be complicated. The phaul sub-project provides a Go library that incapsulates most of the complexity.

Parasite code ijection

In order to get state of the running process CRIU needs to make this process execute some code, that would fetch the required information. To make this happen without killing the application itself, CRIU uses the parasite code injection technique, which is also available as a standalone library called libcompel.

TCP sockets checkpoint-restore

One of the CRIu features is the ability to save and restore state of a TCP socket without breaking the connection. This functionality is considered to be useful by tiself, and we have it available as the libsoccr library.

How to contribute

Licence

The project is licensed under GPLv2 (though files sitting in the lib/ directory are LGPLv2.1).

Please wait...
Page is in error, reload to recover