Dopo sei mesi di sviluppo, viene pubblicata la versione 4.1 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 poi riprendere l'attività 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 linguaggio C e distribuito sotto 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 le applicazioni della tecnologia CRIU si evidenzia il supporto per il riavvio del sistema operativo senza interrompere l'esecuzione di processi a lungo termine, la migrazione live di contenitori isolati, l'accelerazione dell'avvio di processi lenti (è possibile iniziare a lavorare dallo stato salvato dopo l'inizializzazione), l'aggiornamento del kernel senza dover riavviare i servizi, il salvataggio periodico dello stato di compiti computazionali prolungati per riprendere il lavoro in caso di arresto anomalo, il bilanciamento del carico sui nodi nei cluster, la duplicazione di processi su un'altra macchina (fork su un sistema remoto) e la creazione di snapshot di applicazioni utente durante l'esecuzione per analisi su un altro sistema o nel caso in cui sia necessario annullare ulteriori azioni nel programma.
Nel nuovo rilascio:
- Aggiunta la supporto per l'architettura RISC-V.
- Aggiunta la supporto per il meccanismo PIDFD, che consente di utilizzare identificatori invariabili legati ai processi originali (un normale PID può essere assegnato a un altro processo dopo la conclusione del processo attuale associato a quel PID).
- Per la piattaforma ARM64 è stata implementata la supporto per le estensioni di autenticazione dei puntatori (PAC Pointer Authentication Code), che consentono la verifica degli indirizzi di ritorno tramite firme digitali memorizzate nei bit superiori non utilizzati del puntatore stesso.
- Migliorate le funzionalità di salvataggio e ripristino dello stato delle applicazioni che utilizzano la tecnologia NVIDIA CUDA.
- È stata introdotta la possibilità di selezionare il backend di blocco della rete durante la fase di compilazione, 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".
- Supporto per la generazione di file coredump è stato incluso per le architetture Aarch64 e ARM.
Fonte: opennet.ru
