Po šesti měsících vývoje byl vydán nástroj CRIU 4.2 (Checkpoint and Restore In Userspace), který je určen k ukládání a obnovování procesů v uživatelském prostoru. Nástroj umožňuje uložit stav jednotlivého nebo skupiny procesů a následně pokračovat s uložené pozice, včetně situací 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 programovacím jazyce C a je distribuován pod licencí GPLv2. CRIU je používán v systémech správy kontejnerů, jako jsou OpenVZ, LXC/LXD a Docker. Nezbytné změny pro fungování CRIU jsou zahrnuty v hlavní sestavě jádra Linux.
Z oblastí použití technologie CRIU se uvádí zajištění restartu OS bez narušení kontinuity výkonu dlouhodobě běžících procesů, live migrace izolovaných kontejnerů, zrychlení spuštění pomalých procesů (lze zahájit práci ze stavu uloženého po inicializaci), provádění aktualizací jádra bez restartu služeb, periodické ukládání stavu dlouhodobě prováděných výpočetních úloh pro obnovení činnosti v případě havarijního ukončení, vyvažování zátěže na uzlech v clusterech, duplikování procesů na jiný stroj (fork na vzdálený systém), vytváření snapshotů uživatelských aplikací v průběhu práce pro jejich analýzu na jiném systému nebo pro případ, kdy bude třeba zrušit další akce v programu.
V novém vydání:
- V plug-inu amdgpu byla implementována možnost paralelního obnovení stavů procesů využívajících GPU.
- Byla přidána možnost „—allow-uprobes“, která umožňuje spolupracovat s procesy využívajícími vma (Virtual Memory Area) při trasování procesů prostřednictvím mechanismu uprobe.
- V knihovně libcriu byla přidána možnost nastavit konfigurační soubor RPC pro runtime kontejnery, které tuto knihovnu používají, jako je crun. Například implementovaná možnost může být užitečná pro nastavení voleb, jako je „—tcp-established“, prostřednictvím souboru /etc/criu/runc.conf pro Kubernetes.
- Byly vyřešeny problémy s kompilací na systémech ARM64 s C knihovnou musl.
- Byla odstraněna problém s celočíselným přetečením v funkci pagemap_len().
- Byly vyřešeny problémy s použitím getsockopt voleb SO_PASSCRED a SO_PASSSEC na systémech s jádrem Linux 6.16.
Zdroj: opennet.ru
