2. 2
Goals
● Full support of Linux Containers
● Integration with other projects
– OpenVZ
– OpenMPI
– Systemd
– Docker
– LXC
● Support of ARM64 and i386
● RKU (seamless kernel update)
5. 5
What is new?
● All patches are in the upstream kernel
● Images deduplication in incremental dumps
● RPC, library
● Improve stability and reliability
● Improve performance
● Plugins
● In a queue
– Nested mount name-spaces (near future)
– User name-space
● Support new objects: tun; posix-timers; shared, slave mounts; btrfs and
nfs; inotify
7. 7
RPC and libcriu.so
● Easy to use from other languages
– The protocol is based on protobuf messages
● Allow to use CRIU for unprivileged processes
– CRIU still requires root privileges to run
– UNIX domain sockets support passing credentials
● Self-dump
– A process can request to dump itself
8. 8
In a Nutshell, CRIU...
.... has had 7,904 commits made by 31 contributors
representing 105,882 lines of code
... is mostly written in C
with a very low number of source code comments
... has a young, but established codebase
maintained by a large development team
with decreasing Y-O-Y commits
https://www.ohloh.net/p/criu#
9. 9
P.haul (process hauler) - Live migration using CRIU
Live migration using CRIU
● Iterative
● Optimal
● Customizable
#./p.haul ovz 100 10.30.25.213
Migration succeeded
total time is ~2.86 sec
frozen time is ~1.99 sec
( ['0.27', '0.18', '1.55'] )
restore time is ~0.86 sec
img sync time is ~0.32 sec
10. 10
Compel
- a foreign process to execute code blob provided
● extensible via plugins mechanism
● supplied with precompiled plugins
– system calls
– printf's
– unix SCM messages
● still in alfa stage