Difference between revisions of "Main Page"

From CRIU
Jump to navigation Jump to search
(+ plugins)
(No external links in main page project description)
(42 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{Download box|right}}
+
<div style="float: {{{1|right}}}">
 +
{{Download box|left}}
 +
[[Image:Criu311.png|right|178px]]
 +
</div>
 
__NOTOC__
 
__NOTOC__
<big>Welcome to CRIU, a project to implement checkpoint/restore functionality for Linux in userspace.
+
<big>Welcome to CRIU, a project to implement checkpoint/restore functionality for Linux.
  
Checkpoint/Restore In Userspace, or CRIU (pronounced kree-oo, IPA: /krɪʊ/, Russian: криу), is a software tool for Linux operating system. 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.
+
Checkpoint/Restore In Userspace, or CRIU (pronounced kree-oo, IPA: /krɪʊ/, Russian: криу), is a software tool for the Linux operating system. Using this tool, you can freeze a running application (or part of it) and checkpoint it as a collection of files on disk. You can then use the files to restore the application and run it exactly as it was during the time of the freeze. With this feature, application live migration, snapshots, remote debugging, and [[usage scenarios|many other things]] are possible.
  
<div style="background-color: #f6f6f6; padding: 1em; text-align: left;" class="plainlinks">
+
CRIU started as a project of Virtuozzo, and grew with tremendous help from the [[community]]. It is currently used by (integrated into) OpenVZ, [[LXC]]/LXD, [[Docker]], Podman, and [[Integration|other software]], and [[packages|packaged for many Linux distributions]].
[http://criu.org http://static.openvz.org/criu_88x31.gif] is a project of [https://openvz.org http://static.openvz.org/openvz_88x31.gif] and is sponsored and supported by [http://www.parallels.com http://static.openvz.org/parallels_88x31.gif]</div></big>
+
</big>
 
{{Like}}
 
{{Like}}
 
<br clear="both">
 
<br clear="both">
  
<div style="float:left; width: 33%">
+
<div class="m_right">
 +
{{News block 2}}
 +
</div>
  
 +
<div class="m_left">
 
== Using ==
 
== Using ==
  
 
<big>
 
<big>
;[[Installation]]
+
;Getting [[packages]] for your distribution
: What to do to have CRIU on your system
+
: Or try manual [[installation]] to have CRIU on your system
 
</big>
 
</big>
  
;[[Usage|CLI]], [[RPC]] and [[C API]]
+
;[[CLI]], [[RPC]] and [[C API]]
: Three ways to start using the C/R functionality
+
: Three ways to start using the C/R functionality.  [[:Category:API|More info]] about APIs.
  
 
;[[Usage scenarios]]
 
;[[Usage scenarios]]
 
: Ideas how criu can be used (some are crazy indeed)
 
: Ideas how criu can be used (some are crazy indeed)
  
;[[What software is supported]]
+
;[[:Category:HOWTO]]
: Describes TODO list in higher level terms
+
: Collection of real world examples of how to use CRIU. Some are complex, some are not. HOW TO dump a [[simple loop]] might be the best one to start with. Also a set of [[asciinema]] records for real-life examples.
  
;[[:Category:HOWTO]]
+
;[[FAQ]] & [[When C/R fails]]
: Collection of real world examples of how to use CRIU. Some are complex, some are not. HOW TO dump a [[simple loop]] might be the best one to start with.
+
: A sort of troubleshooting guide
  
 
;[[What can change after C/R]]
 
;[[What can change after C/R]]
Line 36: Line 42:
 
;[[What cannot be checkpointed]]
 
;[[What cannot be checkpointed]]
 
: What an application could do to make CRIU refuse to dump it.
 
: What an application could do to make CRIU refuse to dump it.
 +
 +
;[[Contacts]]
 +
: Ways to communicate with CRIU community
  
 
</div>
 
</div>
  
<div style="float:left; width: 33%; margin-left: 0.5%;">
+
<div class="m_center">
 
== Developing ==
 
== Developing ==
If you're interested in CRIU development, please subscribe to the criu mailing list: http://lists.openvz.org/mailman/listinfo/criu
+
If you're interested in CRIU development, please subscribe to the criu mailing list: https://lists.openvz.org/mailman/listinfo/criu
  
 
;[[Images]]
 
;[[Images]]
Line 63: Line 72:
 
;[[Todo|TODO]]
 
;[[Todo|TODO]]
 
: Current TODO list
 
: Current TODO list
 +
 +
;[[User namespace]]
 +
: Implementing user namespace support
  
 
;[[Postulates]]
 
;[[Postulates]]
 
: What to keep in mind when writing new code
 
: What to keep in mind when writing new code
  
;[http://criu.org/cov/ Code coverage results]
+
;[https://coveralls.io/github/checkpoint-restore/criu Code coverage results]
 
: Shows how zdtm run covers the criu code paths
 
: Shows how zdtm run covers the criu code paths
  
Line 73: Line 85:
 
:
 
:
  
</div>
 
 
<div style="float:right; width: 33%">
 
{{News block 2}}
 
 
</div>
 
</div>
  
 
<br clear="both">
 
<br clear="both">
<div style="float:left; width: 33%">
+
<div class="m_left">
 
== Under the hood ==
 
== Under the hood ==
* [[Sockets]]
 
* [[Memory dumping and restoring]]
 
 
* [[Checkpoint/Restore]]
 
* [[Checkpoint/Restore]]
* [[TCP connection]]
+
* [[:Category:Under the hood]]
* [[Files]]
+
* [[:Category:Network]]
 +
* [[:Category:Files]]
 +
* [[:Category:Memory]]
 
* [[Pending signals]]
 
* [[Pending signals]]
 
* [[Stages of restoring]]
 
* [[Stages of restoring]]
* [[COW]]
 
 
* [[Code blobs]]
 
* [[Code blobs]]
 
* [[Comparison to other CR projects]]
 
* [[Comparison to other CR projects]]
* [[Memory changes tracking]]
 
 
</div>
 
</div>
  
<div style="float:left; width: 33%; margin-left: 0.5%;">
+
<div class="m_center">
 
== External links ==
 
== External links ==
 
{{:Articles}}
 
{{:Articles}}
 
</div>
 
</div>
  
<div style="float:right; width: 33%;">
+
<div class="m_right">
== Other ==
+
== Misc ==
 +
* [[Podcasts]] and other audio/video interviews
 
* Project [[history]]
 
* Project [[history]]
 
* [[Logo]] description
 
* [[Logo]] description
 
* [[Events]]
 
* [[Events]]
* Join the [[CRIU acronym fun]]
+
* [[CRIU acronym fun]]
 
</div>
 
</div>

Revision as of 17:49, 13 March 2019

Download
Tarball: criu-3.19.tar.gz
Version: 3.19 "Bronze Peacock"
Released: 27 Nov 2023
GIT tag: v3.19
InstallationUsage
Releases
Criu311.png

Welcome to CRIU, a project to implement checkpoint/restore functionality for Linux.

Checkpoint/Restore In Userspace, or CRIU (pronounced kree-oo, IPA: /krɪʊ/, Russian: криу), is a software tool for the Linux operating system. Using this tool, you can freeze a running application (or part of it) and checkpoint it as a collection of files on disk. You can then use the files to restore the application and run it exactly as it was during the time of the freeze. With this feature, application live migration, snapshots, remote debugging, and many other things are possible.

CRIU started as a project of Virtuozzo, and grew with tremendous help from the community. It is currently used by (integrated into) OpenVZ, LXC/LXD, Docker, Podman, and other software, and packaged for many Linux distributions.


Using

Getting packages for your distribution
Or try manual installation to have CRIU on your system

CLI, RPC and C API
Three ways to start using the C/R functionality. More info about APIs.
Usage scenarios
Ideas how criu can be used (some are crazy indeed)
Category:HOWTO
Collection of real world examples of how to use CRIU. Some are complex, some are not. HOW TO dump a simple loop might be the best one to start with. Also a set of asciinema records for real-life examples.
FAQ & When C/R fails
A sort of troubleshooting guide
What can change after C/R
CRIU cannot (yet) save and restore every single bit of tasks' state. This page describes what bits visible through standard kernel API are such.
What cannot be checkpointed
What an application could do to make CRIU refuse to dump it.
Contacts
Ways to communicate with CRIU community

Developing

If you're interested in CRIU development, please subscribe to the criu mailing list: https://lists.openvz.org/mailman/listinfo/criu

Images
Description of image files format
Plugins
CRIU can call plugins provided by people
Upstream kernel commits
Mainline kernel commits tracker
Recent commits
CRIU tool repository commits
Manpages
Kernel's manpages commits tracker
ZDTM Test Suite
Zero downtime test suite
TODO
Current TODO list
User namespace
Implementing user namespace support
Postulates
What to keep in mind when writing new code
Code coverage results
Shows how zdtm run covers the criu code paths
How to submit patches


Misc