A 11 hónapos fejlesztés után megjelent a CRIU 4.3 (Checkpoint and Restore In Userspace) eszközkészlet, amely a felhasználói térben lévő folyamatok állapotának 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 állapotból való folytatását, beleértve a rendszer újraindítása utáni vagy másik szerverre való átállás utáni folytatást is, anélkül hogy megszakadnának a már létrejött hálózati kapcsolatok. A projekt kódját C nyelven írták, és GPLv2 licenc alatt terjesztik. A CRIU olyan konténerkezelő rendszerekben alkalmazzák, mint az OpenVZ, LXC/LXD és Docker. A CRIU működéséhez szükséges változtatásokat a Linux kernel fő összetevői közé beépítették.
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:
- Megvalósult a memóriablokkok és lapok összenyomásának lehetősége az LZ4 algoritmus segítségével és többszálú kicsomagolással.
- Növelték a teljesítményt az AIO (asynchronous I/O) alkalmazásával a VMA (Virtual Memory Area) lapok helyreállításakor, új feladatleállítási módszert vezettek be hardveres megállási pontok nélkül, és párhuzamosították a memfd és a névtelen megosztott memória helyreállítását.
- Hozzáadták az ARM64 GCS (Guarded Control Stack) kiterjesztés támogatását, amely hardveres védelmet biztosít a visszatérési címekhez a funkciókból. A funkcióba való belépés után a visszatérési címeket a processzor nemcsak a normál veremben, hanem egy külön árnyékveremben is megőrzi, amelyet közvetlenül nem lehet módosítani. A funkcióból való kilépés előtt a visszatérési címet az árnyékveremből kihúzzák és összehasonlítják az alap veremből származó visszatérési címmel.
- Hozzáadták a NVIDIA CUDA illesztőprogram API állapotának mentésére szolgáló hátsó endpontot.
- Biztosítva lett a GPU-mapping helyreállítása.
- Az amdgpu illesztőprogram esetében megvalósították a DRM (Direct Rendering Manager) alrendszer állapotának és a DMA-BUF fájlleírók mentését és helyreállítását.
- Hozzáadták az offline módban történő memória képek tömörítésére és kicsomagolására szolgáló parancsokat.
- Hozzáadták az UID-azonosítók hálózati socketekhez való hozzárendelésével kapcsolatos információk mentésének és helyreállításának támogatását.
- Hozzáadták a «—image-io-mode» opciót a memória oldalak képeinek O_DIRECT módban (a lapkészlet megkerülésével) történő írásához és olvasásához.
Forrás: opennet.ru
