Dopo sei mesi di sviluppo è stato pubblicato il rilascio dello strumento CRIU 4.1 (Checkpoint and Restore In Userspace), destinato a salvare e ripristinare i processi nello spazio utente. Lo strumento consente di salvare lo stato di uno o più processi e poi 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 con licenza GPLv2. CRIU è utilizzato in sistemi di gestione dei container come OpenVZ, LXC/LXD e Docker. Le modifiche necessarie per il funzionamento di CRIU sono incluse nel kernel Linux principale.
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:
- Aggiunta la supporto per l'architettura RISC-V.
- È stata aggiunta la supporto per il meccanismo PIDFD, che consente di utilizzare identificatori immutabili collegati ai processi originali (un PID normale può essere assegnato ad un altro processo dopo il completamento del processo corrente associato a quel PID).
- Per la piattaforma ARM64 è stata implementata la supporto per le estensioni per l'autenticazione dei puntatori (PAC Pointer Authentication Code), che forniscono la verifica degli indirizzi di ritorno tramite firme digitali archiviate nei bit superiori non utilizzati dello stesso puntatore.
- Sono state ampliate le capacità di salvataggio e ripristino dello stato delle applicazioni che utilizzano la tecnologia NVIDIA CUDA.
- È stata fornita la possibilità di scegliere il backend per il blocco della rete durante la fase di assemblaggio, senza la necessità di modificare il codice. Il backend può essere cambiato passando all'utilità make il parametro NETWORK_LOCK_DEFAULT, che accetta i valori «NETWORK_LOCK_IPTABLES», «NETWORK_LOCK_NFTABLES» e «NETWORK_LOCK_SKIP».
- È stata attivata la supporto per la generazione di file coredump per le architetture Aarch64 e ARM.
Fonte: opennet.ru
