Hat hónapos fejlesztés után megjelent a CRIU 4.2 (Checkpoint and Restore In Userspace) eszközkészlet, amely a felhasználói térben folyamatok megőrzésére és helyreállítására szolgál. Az eszközkészlet lehetővé teszi egy vagy több folyamat állapotának megőrzését, majd a megőrzött helyről való folytatását, beleértve a rendszer újraindítása utáni vagy másik szerverre történő folytatást, anélkül, hogy megszakadnának a már létrehozott hálózati kapcsolatok. A projekt kódja C nyelven íródott, és GPLv2 licenc alatt terjesztik. A CRIU-t olyan tartálykezelő rendszerekben használják, mint az OpenVZ, LXC/LXD és Docker. A CRIU működéséhez szükséges változtatásokat beépítették a Linux kernel fő összetevőibe.
A CRIU technológiájának alkalmazási területei között szerepel az operációs rendszer újraindítása anélkül, hogy megszakadnának a hosszú távú folyamatok, az elszigetelt konténerek élő migrálása, a lassú folyamatok indításának gyorsítása (a munkát el lehet kezdeni a inicializálás után elmentett állapottal), kernelfrissítések végrehajtása a szolgáltatások újraindítása nélkül, hosszú ideig futó számítási feladatok állapotának periódikus megőrzése a munkamenet folytatása érdekében meghibásodás esetén, terheléskiegyenlítés a klaszterekben lévő csomópontok között, folyamatok más gépre történő duplikálása (fork egy távoli rendszerre), a felhasználói alkalmazások működése során készített pillanatfelvételek létrehozása azok elemzése céljából egy másik rendszeren, vagy ha szükséges, a további lépések visszavonására a programban.
Az új kiadásban:
- Az amdgpu pluginben megvalósították a GPU-t használó folyamatok állapotának helyreállításának párhuzamosítási lehetőségét.
- Hozzáadva az '—allow-uprobes' opció, amely lehetővé teszi a vma-t (Virtual Memory Area) használó folyamatokkal való munkát a uprobe mechanizmus révén történő folyamatok nyomozásakor.
- A libcriu könyvtárban hozzáadták az RPC konfigurációs fájl megadásának lehetőségét a runtime tartályok számára, amelyek ezt a könyvtárat használják, mint például a crun. Például a megvalósított lehetőség hasznos lehet opciók beállításához, mint az '—tcp-established', az /etc/criu/runc.conf fájlban a Kubernetes számára.
- Megoldották a problémákat ARM64 rendszereken a musl C könyvtárral való fordítással.
- A pagemap_len() függvényben lévő egész számok túlfutását kijavították.
- Megoldották a getsockopt opciók, mint a SO_PASSCRED és SO_PASSSEC használati problémáit a Linux 6.16 kernelű rendszereken.
Forrás: opennet.ru
