Rilascio di CRIU 4.3, sistema per il salvataggio e il ripristino dello stato dei processi in Linux

Dopo 11 mesi di sviluppo è stata pubblicata la versione 4.3 dello strumento CRIU (Checkpoint and Restore In Userspace), progettato per salvare e ripristinare processi nello spazio utente. Lo strumento consente di salvare lo stato di uno o più processi e successivamente riprendere il lavoro dalla posizione salvata, anche dopo un riavvio del sistema o su un altro server senza interrompere le connessioni di rete già stabilite. Il codice del progetto è scritto in C e distribuito sotto licenza GPLv2. CRIU è utilizzato in sistemi di gestione dei container come OpenVZ, LXC/LXD e Docker. Le modifiche necessarie per far funzionare CRIU sono state incluse nel core del kernel Linux.

Tra i campi di applicazione della tecnologia CRIU si segnala la possibilità di riavviare il sistema operativo senza interrompere l'esecuzione di processi di lunga durata, la migrazione in tempo reale di container isolati, l'accelerazione dell'avvio di processi lenti (è possibile iniziare a lavorare dallo stato salvato dopo l'inizializzazione), l'aggiornamento del kernel senza riavviare i servizi, il salvataggio periodico dello stato di attività computazionali di lunga durata per riprendere il lavoro in caso di conclusione anomala, il bilanciamento del carico sui nodi nei cluster, la duplicazione di processi su un'altra macchina (fork su un sistema remoto), la creazione di istantanee di applicazioni utente in esecuzione per analisi su un altro sistema o in caso fosse necessario annullare ulteriori azioni nel programma.

Nel nuovo rilascio:

  • Implementata la possibilità di comprimere blocchi e pagine di memoria utilizzando l'algoritmo LZ4 e la decompressione multi-thread.
  • Migliorata la performance grazie all'uso dell'input/output asincrono (AIO) durante il ripristino delle pagine VMA (Virtual Memory Area), a un nuovo metodo di arresto dei task senza l'uso di punti di arresto hardware e alla parallelizzazione del ripristino della memoria memfd e della memoria condivisa anonima.
  • Aggiunta la supporto per l'estensione ARM64 GCS (Guarded Control Stack), che fornisce una protezione hardware degli indirizzi di ritorno dalle funzioni. Dopo la cessione di controllo alla funzione, gli indirizzi di ritorno vengono salvati dal processore non solo nello stack normale, ma anche in uno stack ombra separato, che non può essere modificato direttamente. Prima dell'uscita dalla funzione, l'indirizzo di ritorno viene estratto dallo stack ombra e confrontato con l'indirizzo di ritorno nello stack principale.
  • Aggiunto un backend per salvare lo stato dell'API del driver NVIDIA CUDA.
  • Assicurato il ripristino del mapping GPU.
  • Per il driver amdgpu è stata implementata la salvataggio e il ripristino dello stato dei buffer del sottosistema DRM (Direct Rendering Manager) e dei descrittori di file DMA-BUF.
  • Aggiunte istruzioni per comprimere e decomprimere le immagini di memoria in modalità offline.
  • Aggiunto il supporto per salvare e ripristinare le informazioni sul binding degli identificatori UID ai socket di rete.
  • Aggiunta l'opzione "--image-io-mode" per la scrittura e la lettura delle immagini delle pagine di memoria in modalità O_DIRECT (saltando la cache delle pagine).

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS - ProHoster