Byl zveřejněn výstup nástroje CRIU 4.0 (Checkpoint and Restore In Userspace), určeného k ukládání a obnovování procesů v uživatelském prostoru. Tento nástroj umožňuje uložit stav jednoho nebo více procesů a poté je obnovit z uložené pozice, včetně obnovení po restartu systému nebo na jiném serveru bez přerušení již navázaných síťových spojení. Kód projektu je napsán v jazyce C a šíří se pod licencí GPLv2. CRIU se používá v systémových řízeních kontejnerů, jako jsou OpenVZ, LXC/LXD a Docker. Nezbytné změny pro práci CRIU jsou zahrnuty v jádře Linux.
Mezi oblasti použití technologie CRIU patří zajištění restartu OS bez narušení kontinuity dlouhodobě běžících procesů, live migrace izolovaných kontejnerů, urychlení spuštění pomalých procesů (je možné začít práci se stavem uloženým po inicializaci), provádění aktualizací jádra bez restartu služeb, periodické ukládání stavu dlouhotrvajících výpočetních úloh pro obnovení práce v případě pádu, vyvážení zátěže na uzlech v clusterech, duplicitní procesy na jiný stroj (fork na vzdálený systém), vytváření snapshotů uživatelských aplikací během jejich provozu pro analýzu na jiném systému nebo v případě nutnosti zrušit další kroky v programu.
V novém vydání:
- Byl přidán plugin CUDA, který umožňuje ukládání a obnovu stavu aplikací postavených na technologii NVIDIA CUDA.
- Byla přidána podpora mechanismu Shadow Stack, který je podporován od jádra Linux 6.6 a umožňuje blokaci mnoha exploitů pomocí hardwarových funkcí procesorů Intel (po předání kontroly funkci jsou adresy návratu uloženy procesorem nejen v běžném zásobníku, ale i v samostatném 'stínovém' zásobníku, který nelze přímo měnit; před opuštěním funkce je adresa návratu vytažena ze stínového zásobníku a porovnána s adresou návratu z hlavního zásobníku).
- Byla přidána podpora ioctl příkazu PAGEMAP_SCAN pro získání informací o obsahu tabulek stránek paměti, což mimo jiné při použití s userfaultfd() umožňuje určování zápisu do konkrétní oblasti paměti.
- Byla implementována možnost obnovení vlákna ve správné cgroup v1.
Zdroj: opennet.ru
