11 hónapnyi 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 mentésére és visszaállítására szolgál. Az eszközkészlet lehetővé teszi egy vagy csoportos folyamat állapotának megmentését, majd a mentett állapot folytatását, beleértve a rendszer újraindítását vagy másik szerveren való működést az internetkapcsolatok megszakítása nélkül. A projekt kódját C nyelven írták, és GPLv2 licenc alatt terjesztik. A CRIU-t konténerkezelő rendszerekben, például az OpenVZ, LXC/LXD és Docker használják. A CRIU működéséhez szükséges változtatásokat beépítették a Linux kernel fő összetevőjébe.
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ósították a memória blokkok és oldalak tömörítésének lehetőségét LZ4 algoritmus használatával és többszálú kitömörítéssel.
- Növelték a teljesítményt az aszinkron bemenet/kimenet (AIO) használatával a VMA (Virtual Memory Area) oldalak helyreállításakor, új módszert alkalmaztak a feladatok leállítására hardveres megállási pontok nélkül, és párhuzamosították a memfd és az anonim 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ímek számára a funkciókból. A funkció vezérlésének átvétele után a visszatérési címeket a processzor nemcsak a szokásos veremben, hanem egy külön árnyékveremben is tárolja, amely nem módosítható közvetlenül. A funkcióból való kilépés előtt a visszatérési cím az árnyékveremből kerül ki, és összevetik a fő veremből származó visszatérési címmel.
- Hozzáadták a NVIDIA CUDA illesztőprogram állapotának mentésére szolgáló backendet.
- Biztosították a GPU leképezés helyreállítását.
- Az amdgpu illesztőprogram számára megvalósították a DRM (Direct Rendering Manager) alrendszer és a DMA-BUF fájlkezelők állapotának mentését és helyreállítását.
- Hozzáadtak utasításokat a memória képek offline tömörítésére és kitömörítésére.
- Hozzáadták a hálózati socketekhez való UID-azonosítók kötésének információinak mentését és helyreállítását.
- Hozzáadták a „—image-io-mode” opciót az oldalak memória képeinek O_DIRECT módban (a lap cache megkerülésével) történő írásához és olvasásához.
Forrás: opennet.ru
