Difference between revisions of "Main Page"
m (add "Pid restore" entry to "Under the hood") |
MettaCrawler (talk | contribs) m (Grammar) |
||
(32 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{Download box|right}} | {{Download box|right}} | ||
__NOTOC__ | __NOTOC__ | ||
− | <big>Welcome to CRIU, a project to implement checkpoint/restore functionality for Linux | + | <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 | + | 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. |
− | + | CRIU started as a project of [https://virtuozzo.com/ Virtuozzo] and grew with tremendous help from the [[community]]. It is currently used by (integrated into) [https://openvz.org/ OpenVZ], [[LXC]]/LXD, [[Docker]], and [[Integration|other software]], and CRIU packages is included into many [[Packages|Linux distributions]]. | |
− | + | </big> | |
{{Like}} | {{Like}} | ||
<br clear="both"> | <br clear="both"> | ||
− | <div | + | <div class="m_right"> |
+ | {{News block 2}} | ||
+ | </div> | ||
+ | <div class="m_left"> | ||
== Using == | == Using == | ||
Line 19: | Line 22: | ||
</big> | </big> | ||
− | ;[[ | + | ;[[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) | ||
− | ;[[ | + | ;[[: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]] | ;[[What can change after C/R]] | ||
Line 36: | Line 39: | ||
;[[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 | + | <div class="m_center"> |
== Developing == | == Developing == | ||
− | If you're interested in CRIU development, please subscribe to the criu mailing list: | + | If you're interested in CRIU development, please subscribe to the criu mailing list: https://lists.openvz.org/mailman/listinfo/criu |
;[[Images]] | ;[[Images]] | ||
Line 64: | Line 70: | ||
: Current TODO list | : Current TODO list | ||
− | ;[[ | + | ;[[User namespace]] |
: Implementing user namespace support | : Implementing user namespace support | ||
Line 70: | Line 76: | ||
: What to keep in mind when writing new code | : What to keep in mind when writing new code | ||
− | ;[ | + | ;[https://coveralls.io/github/xemul/criu Code coverage results] |
: Shows how zdtm run covers the criu code paths | : Shows how zdtm run covers the criu code paths | ||
Line 76: | Line 82: | ||
: | : | ||
− | |||
− | |||
− | |||
− | |||
</div> | </div> | ||
<br clear="both"> | <br clear="both"> | ||
− | <div | + | <div class="m_left"> |
== Under the hood == | == Under the hood == | ||
− | |||
− | |||
* [[Checkpoint/Restore]] | * [[Checkpoint/Restore]] | ||
− | * [[ | + | * [[:Category:Under the hood]] |
− | * [[Files]] | + | * [[:Category:Network]] |
+ | * [[:Category:Files]] | ||
+ | * [[:Category:Memory]] | ||
* [[Pending signals]] | * [[Pending signals]] | ||
* [[Stages of restoring]] | * [[Stages of restoring]] | ||
− | |||
* [[Code blobs]] | * [[Code blobs]] | ||
* [[Comparison to other CR projects]] | * [[Comparison to other CR projects]] | ||
− | |||
− | |||
</div> | </div> | ||
− | <div | + | <div class="m_center"> |
== External links == | == External links == | ||
{{:Articles}} | {{:Articles}} | ||
</div> | </div> | ||
− | <div | + | <div class="m_right"> |
− | == | + | == Misc == |
+ | * [[Podcasts]] and other audio/video interviews | ||
* Project [[history]] | * Project [[history]] | ||
* [[Logo]] description | * [[Logo]] description | ||
* [[Events]] | * [[Events]] | ||
− | * | + | * [[CRIU acronym fun]] |
</div> | </div> |
Revision as of 10:07, 22 October 2017
|
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, and other software, and CRIU packages is included into many Linux distributions.
|
Using
- Getting packages for your distribution
- Or try manual installation to have CRIU on your system
- 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
Under the hood
External links
- 2024-04-22, Just-In-Time Checkpointing: Low Cost Error Recovery from Deep Learning Training Failures
- 2024-04-22, Pronghorn: Effective Checkpoint Orchestration for Serverless Hot-Starts
- 2024-01-29, Prebaking runtime environments to improve the FaaS cold start latency
- 2023-11-12, Checkpoint/Restart for CUDA Kernels
- 2023-10-23, Evicting for the greater good: The Case for Reactive Checkpointing in Serverless Computing
- 2023-04-20, A Dynamic Checkpoint Interval Decision Algorithm for Live Migration-Based Drone-Recovery System
- 2023-03-10, Forensic Container Analysis
- 2023-01-14, Async-fork: Mitigating Query Latency Spikes Incurred by the Fork-based Snapshot Mechanism from the OS Level
- 2022-12-05, Forensic container checkpointing in Kubernetes
Misc
- Podcasts and other audio/video interviews
- Project history
- Logo description
- Events
- CRIU acronym fun