Po 11 mesiacoch vývoja bol uvoľnený nástroj CRIU 4.3 (Checkpoint and Restore In Userspace), ktorý slúži na ukladať a obnovovať procesy v užívateľskom priestore. Tento nástroj umožňuje uložiť stav jedného alebo viacerých procesov a potom pokračovať v práci zo zachovanej pozície, vrátane situáciu po reštartovaní systému alebo na inom serveri bez prerušenia už existujúcich sieťových spojení. Kód projektu je napísaný v jazyku C a je distribuovaný pod licenciou GPLv2. CRIU sa využíva v systémoch správy kontajnerov, ako sú OpenVZ, LXC/LXD a Docker. Potrebné úpravy na prácu CRIU sú zahrnuté v hlavnom jadre Linuxu.
Medzi oblasti využitia technológie CRIU patrí zabezpečenie reštartovania operačného systému bez narušenia kontinuity dlhodobo bežiacich procesov, live migrácia izolovaných kontajnerov, urýchlenie spúšťania pomalých procesov (je možné začať prácu zo stavu, ktorý bol zachovaný po inicializácii), vykonávanie aktualizácií jadra bez reštartu služieb, pravidelné ukladať stav dlhodobo bežiacich výpočtových úloh na obnovenie práce v prípade havarijného ukončenia, vyvažovanie zaťaženia na uzloch v klastroch, duplikovanie procesov na iný stroj (fork na vzdialený systém), tvorba snapshotov užívateľských aplikácií v priebehu práce na ich analýzu na inom systéme alebo v prípade, že bude potrebné zrušiť ďalšie kroky v programe.
V novom vydaní:
- Realizovaná možnosť kompresie blokov a strán pamäte pomocou algoritmu LZ4 a viacvláknovej dekompresie.
- Zvýšený výkon vďaka využitiu asynchrónneho vstupu/výstupu (AIO) pri obnove strán VMA (Virtual Memory Area), novej metóde zastavovania úloh bez použitia hardvérových bodov zastavenia a paralelizácii obnovy memfd a anonymnej zdieľanej pamäte.
- Pridaná podpora rozšírenia ARM64 GCS (Guarded Control Stack), ktoré poskytuje hardvérovú ochranu adries návratu z funkcií. Po prenose riadenia na funkciu procesor uchováva adresy návratu nielen v bežnej zásobníku, ale aj v samostatnej tieniacej zásobníku, ktorý nie je možné priamo meniť. Pred opustením funkcie sa adresa návratu vyberá z tieniacej zásobníku a porovnáva sa s adresou návratu z hlavného zásobníku.
- Pridaný backend na uchovávanie stavu API ovládača NVIDIA CUDA.
- Zabezpečené obnovenie mapovania GPU.
- Pre ovládač amdgpu bolo implementované uchovávanie a obnovenie stavu bufferov subsystému DRM (Direct Rendering Manager) a súborových popisovačov DMA-BUF.
- Pridané príkazy na kompresiu a dekompresiu obrazov pamäte v offline režime.
- Pridaná podpora uchovávania a obnovovania informácií o viazaní UID identifikátorov k sieťovým socketom.
- Pridaná možnosť «—image-io-mode» na zápis a čítanie obrazov strán pamäte v režime O_DIRECT (na obídenie stránkového cache).
Zdroj: opennet.ru
