Bolo zverejnené vydanie sady nástrojov CRIU 4.0 (Checkpoint and Restore In Userspace), ktorá je určená na ukladanie a obnovu procesov v používateľskom priestore. Sada nástrojov vám umožňuje uložiť stav jedného alebo skupiny procesov a potom pokračovať v práci z uloženej pozície, a to aj po reštarte systému alebo na inom serveri, bez prerušenia už vytvorených sieťových pripojení. Kód projektu je napísaný v jazyku C a distribuovaný pod licenciou GPLv2. CRIU sa používa v systémoch správy kontajnerov, ako sú OpenVZ, LXC/LXD a Docker. Zmeny potrebné na fungovanie CRIU sú zahrnuté v hlavnom linuxovom jadre.
Medzi oblasti použitia technológie CRIU patrí zabezpečenie reštartov OS bez narušenia kontinuity vykonávania dlho bežiacich procesov, Živá migrácia izolovaných kontajnerov, zrýchlenie spúšťania pomalých procesov (môžete začať pracovať zo stavu uloženého po inicializácii), vykonávanie jadra aktualizácie bez reštartovania služieb, periodické ukladanie stavu dlho bežiacich výpočtových úloh na obnovenie práce v prípade zlyhania, vyrovnávanie zaťaženia uzlov v klastroch, duplikovanie procesov na inom stroji (rozdvojka na vzdialený systém), vytváranie snímok. užívateľské aplikácie počas prevádzky na analýzu na inom systéme alebo v prípade, že je potrebné zrušiť ďalšie akcie v programe.
V novom vydaní:
- Pridaný doplnok CUDA, ktorý poskytuje možnosť ukladať a obnovovať stav aplikácií založených na technológii NVIDIA CUDA.
- Pridaná podpora mechanizmu Shadow Stack, ktorý je podporovaný už od linuxového jadra 6.6 a umožňuje blokovať činnosť mnohých exploitov pomocou hardvérových možností procesorov Intel (po prenose riadenia na funkciu sú návratové adresy ukladané procesorom nie len v bežnom zásobníku, ale aj v samostatnom „tieňovom“ zásobníku, ktorý nie je možné priamo zmeniť a pred ukončením funkcie sa návratová adresa vyberie zo zásobníka tieňov a porovná sa s návratovou adresou z hlavného zásobníka).
- Pridaná podpora pre príkaz PAGEMAP_SCAN ioctl na získanie informácií o obsahu tabuliek stránok pamäte, ktorá okrem iného pri použití s userfaultfd() umožňuje určiť fakty zápisu do konkrétnej oblasti pamäte.
- Implementovaná schopnosť obnoviť vlákno v správnej cgroup v1.
Zdroj: opennet.ru
