Difference between revisions of "Main Page"
m |
|||
(140 intermediate revisions by 14 users not shown) | |||
Line 1: | Line 1: | ||
− | Welcome to CRIU, a project to implement checkpoint/restore functionality for Linux | + | <div style="float: {{{1|right}}}"> |
+ | {{Download box|left}} | ||
+ | [[Image:4.0.c.jpg|right|340px]] | ||
+ | </div> | ||
+ | __NOTOC__ | ||
+ | <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 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. | |
− | + | 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}} | ||
+ | <br clear="both"> | ||
− | ;[[ | + | <div class="m_right"> |
+ | {{News block 2}} | ||
+ | </div> | ||
+ | |||
+ | <div class="m_left"> | ||
+ | == Using == | ||
+ | |||
+ | <big> | ||
+ | ;Getting [[packages]] for your distribution | ||
+ | : Or try manual [[installation]] to have CRIU on your system | ||
+ | </big> | ||
+ | |||
+ | ;[[CLI]], [[RPC]] and [[C API]] | ||
+ | : Three ways to start using the C/R functionality. [[:Category:API|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. | ||
+ | |||
+ | ;[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 cannot be checkpointed]] | ||
+ | : What an application could do to make CRIU refuse to dump it. | ||
+ | |||
+ | ;[[Contacts]] | ||
+ | : Ways to communicate with CRIU community | ||
+ | |||
+ | </div> | ||
+ | |||
+ | <div class="m_center"> | ||
+ | == 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 | : Zero downtime test suite | ||
− | ;[[Todo | TODO]] | + | ;[[Todo|TODO]] |
: Current TODO list | : Current TODO list | ||
− | ;[[ | + | ;[[User namespace]] |
− | : | + | : Implementing user namespace support |
+ | |||
+ | ;[[Postulates]] | ||
+ | : What to keep in mind when writing new code | ||
+ | |||
+ | ;[https://coveralls.io/github/checkpoint-restore/criu Code coverage results] | ||
+ | : Shows how zdtm run covers the criu code paths | ||
+ | |||
+ | ;[[How to submit patches]] | ||
+ | : | ||
+ | |||
+ | </div> | ||
+ | |||
+ | <br clear="both"> | ||
+ | <div class="m_left"> | ||
+ | == Under the hood == | ||
+ | * [[Checkpoint/Restore]] | ||
+ | * [[:Category:Under the hood]] | ||
+ | * [[:Category:Network]] | ||
+ | * [[:Category:Files]] | ||
+ | * [[:Category:Memory]] | ||
+ | * [[Pending signals]] | ||
+ | * [[Stages of restoring]] | ||
+ | * [[Code blobs]] | ||
+ | * [[Comparison to other CR projects]] | ||
+ | </div> | ||
+ | |||
+ | <div class="m_center"> | ||
+ | == External links == | ||
+ | {{:Articles}} | ||
+ | </div> | ||
+ | |||
+ | <div class="m_right"> | ||
+ | == Misc == | ||
+ | * [[Academic Research]] | ||
+ | * [[Podcasts]] and other audio/video interviews | ||
+ | * Project [[history]] | ||
+ | * [[Logo]] description | ||
+ | * [[Events]] | ||
+ | * [[CRIU acronym fun]] | ||
+ | </div> |
Latest revision as of 14:12, 2 October 2024
|
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 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 many other things are now possible.
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 other software, and packaged for 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-09-06, Live Migration of Multi-Container Kubernetes Pods in Multi-Cluster Serverless Edge Systems
- 2024-09-04, Towards Efficient End-to-End Encryption for Container Checkpointing Systems
- 2024-08-04, Custom Page Fault Handling With eBPF
- 2024-08-03, Software-based Live Migration for Containerized RDMA
- 2024-07-30, Packet Buffering to Minimize Service Downtime and Packet Loss During Redundancy Switchover
- 2024-07-30, Don't, Stop, Drop, Pause: Forensics of CONtainer CheckPOINTs (ConPoint)
- 2024-07-25, MDB-KCP: persistence framework of in-memory database with CRIU-based container checkpoint in Kubernetes
- 2024-07-23, Dapper: A Lightweight and Extensible Framework for Live Program State Rewriting
- 2024-07-07, FastMig: Leveraging FastFreeze to Establish Robust Service Liquidity in Cloud 2.0
Misc
- Academic Research
- Podcasts and other audio/video interviews
- Project history
- Logo description
- Events
- CRIU acronym fun