Lansarea CRIU 4.0, sistemul pentru salvarea și restaurarea stării proceselor în Linux

A fost lansată versiunea 4.0 a instrumentului CRIU (Checkpoint and Restore In Userspace), destinat salvării și restaurării proceselor în spațiul utilizatorului. Instrumentul permite salvarea stării unui sau mai multor procese, apoi reluarea activității de la poziția salvată, inclusiv după repornirea sistemului sau pe un alt server, fără a întrerupe conexiunile de rețea deja stabilite. Codul proiectului este scris în limbajul C și este distribuit sub licența GPLv2. CRIU este utilizat în sisteme de gestionare a containerelor, cum ar fi OpenVZ, LXC/LXD și Docker. Modificările necesare pentru funcționarea CRIU sunt incluse în kernelul principal Linux.

Dintre domeniile de aplicare ale tehnologiei CRIU se remarcă asigurarea repornirii sistemului de operare fără a întrerupe continuitatea execuției proceselor care durează mult timp, migrarea live a containerelor izolate, accelerarea pornirii proceselor lente (se poate începe activitatea cu starea salvată după inițializare), efectuarea de actualizări ale kernelului fără a reporni serviciile, salvarea periodică a stării sarcinilor de calcul de lungă durată pentru a relua activitatea în caz de crash, balansarea sarcinii pe noduri în clustere, duplicarea proceselor pe o altă mașină (fork într-un sistem de la distanță), crearea de snapshots ale aplicațiilor utilizator în timpul execuției pentru analiză pe un alt sistem sau în caz că este necesară anularea acțiunilor ulterioare în program.

În noua versiune:

  • A fost adăugat un plugin CUDA, care permite salvarea și restaurarea stării aplicațiilor bazate pe tehnologia NVIDIA CUDA.
  • A fost adăugată suportul pentru mecanismul Shadow Stack, susținut începând cu kernelul Linux 6.6, care permite blocarea funcționării multor exploatări, folosind capacitățile hardware ale procesoarelor Intel (după transferul controlului la funcție, adresele de retur sunt salvate de procesor nu doar în stiva normală, ci și într-o „stivă umbroasă” separată, care nu poate fi modificată direct, iar înainte de ieșirea din funcție, adresa de retur este extrasă din stiva umbroasă și comparată cu adresa de retur din stiva principală).
  • A fost adăugat suport pentru comanda ioctl PAGEMAP_SCAN pentru a obține informații despre conținutul tabelelor de pagini ale memoriei, ceea ce, printre altele, permite, atunci când se utilizează împreună cu userfaultfd(), să se determine faptele scrierii într-o anumită zonă de memorie.
  • A fost implementată funcționalitatea de a restabili fluxul în cgroup v1 corect.

    Sursa: opennet.ro
Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster