After six months of development, the release of CRIU 4.2 (Checkpoint and Restore In Userspace) has been published, designed for saving and restoring processes in user space. The tool allows the state of a single or multiple processes to be saved and then resumed from the saved position, including after a system reboot or on another server without breaking established network connections. The project code is written in C and distributed under the GPLv2 license. CRIU is used in container management systems such as OpenVZ, LXC/LXD, and Docker. Necessary changes for CRIU to work are included in the main Linux kernel.
The areas of application for CRIU technology include ensuring OS reboot without disrupting the continuity of long-running processes, live migration of isolated containers, speeding up the start of slow processes (you can begin work from a state saved after initialization), performing kernel updates without restarting services, periodically saving the state of long-running computational tasks for resuming work in case of crashes, load balancing on nodes in clusters, duplicating processes to another machine (fork to a remote system), and creating snapshots of user applications during operation for analysis on another system or in case further actions in the program need to be undone.
In the new release:
- The amdgpu plugin has implemented the ability to parallelize the restoration of the state of processes using the GPU.
- An option ‘—allow-uprobes’ has been added, allowing work with processes that use vma (Virtual Memory Area) when tracing processes through the uprobe mechanism.
- The libcriu library has added the ability to specify an RPC configuration file for runtime containers using this library, such as crun. For example, this implemented feature can be useful for setting options like ‘—tcp-established’ through the file /etc/criu/runc.conf for Kubernetes.
- Issues with compilation on ARM64 systems using the musl C library have been resolved.
- An integer overflow in the function pagemap_len() has been fixed.
- Issues with using getsockopt options SO_PASSCRED and SO_PASSSEC on systems with the Linux 6.16 kernel have been resolved.
Source: opennet.ru
