Line 1: |
Line 1: |
− | {{Download box|right}} | + | <div style="float: {{{1|right}}}"> |
| + | {{Download box|left}} |
| + | [[Image:3.19.jpg|right|340px]] |
| + | </div> |
| __NOTOC__ | | __NOTOC__ |
− | 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, 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 Linux software. It can freeze a running container (or an individual application) and checkpoint its state to disk. The data saved can be used to restore the application and run it exactly as it was during the time of the freeze. Using this functionality, application or container live migration, snapshots, remote debugging, and [[usage scenarios|many other things]] are now possible. |
| | | |
− | The project is currently under very active development. CRIU is a sub-project of <span class="plainlinks">[http://openvz.org OpenVZ].</span>
| + | CRIU started as a project of Virtuozzo, and grew with the 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]]. |
| + | </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 == |
| | | |
− | ;[[Installation]] | + | <big> |
− | : What to do to have CRIU on your system | + | ;Getting [[packages]] for your distribution |
| + | : Or try manual [[installation]] to have CRIU on your system |
| + | </big> |
| | | |
− | ;[[Usage]] | + | ;[[CLI]], [[RPC]] and [[C API]] |
− | : How to run the tool | + | : Three ways to start using the C/R functionality. [[:Category:API|More info]] about APIs. |
| | | |
| ;[[Usage scenarios]] | | ;[[Usage scenarios]] |
− | : Ideas how crtools can be used (some are crazy indeed) | + | : 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. |
| + | |
| + | ;[https://www.criu.org/index.php?title=FAQ 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 software is supported]] | + | ;[[What cannot be checkpointed]] |
− | : Describes TODO list in higher level terms | + | : What an application could do to make CRIU refuse to dump it. |
| | | |
− | ;[[LXC]] | + | ;[[Contacts]] |
− | : How to dump and restore an LXC container | + | : 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]] |
| : Description of image files format | | : Description of image files format |
| | | |
− | ;[[Commits]] | + | ;[[Plugins]] |
| + | : CRIU can call plugins provided by people |
| + | |
| + | ;[[Upstream kernel commits]] |
| : Mainline kernel commits tracker | | : Mainline kernel commits tracker |
| + | |
| + | ;[[Recent commits]] |
| + | : CRIU tool repository commits |
| | | |
| ;[[Manpages]] | | ;[[Manpages]] |
Line 48: |
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 crtools code paths | + | : Shows how zdtm run covers the criu code paths |
| | | |
− | ;[[How to submit patches into the CRIU]] | + | ;[[How to submit patches]] |
| : | | : |
| | | |
− | </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]] |
− | * [[Porting crtools to new kernel releases]] | + | * [[:Category:Network]] |
− | * [[Files]] | + | * [[:Category:Files]] |
| + | * [[:Category:Memory]] |
| * [[Pending signals]] | | * [[Pending signals]] |
| * [[Stages of restoring]] | | * [[Stages of restoring]] |
− | * [[COW]] | + | * [[Code blobs]] |
| * [[Comparison to other CR projects]] | | * [[Comparison to other CR projects]] |
| </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 == |
| + | * [[Academic Research]] |
| + | * [[Podcasts]] and other audio/video interviews |
| * Project [[history]] | | * Project [[history]] |
| * [[Logo]] description | | * [[Logo]] description |
| * [[Events]] | | * [[Events]] |
− | * Join the [[CRIU acronym fun]] | + | * [[CRIU acronym fun]] |
− | <hr>
| |
− | <center><small>CRIU is a sub-project of</small><br>
| |
− | <span class="plainlinks">[http://openvz.org http://static.openvz.org/wiki/openvz-logo.png]</span></center>
| |
| </div> | | </div> |