È stata pubblicata la versione 3.16 dello strumento CRIU (Checkpoint and Restore In Userspace), progettato per il salvataggio e il ripristino dei processi nello spazio utente. Lo strumento consente di salvare lo stato di uno o più processi e successivamente riprendere l'esecuzione 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 è distribuito con licenza GPLv2.
Tra gli ambiti di applicazione della tecnologia CRIU si segnala il supporto per il riavvio del sistema operativo senza compromettere la continuità di esecuzione dei processi a lungo termine, la migrazione live di contenitori isolati, l'accelerazione dell'avvio di processi lenti (è possibile avviare il lavoro da uno stato salvato dopo l'inizializzazione), l'esecuzione di aggiornamenti del kernel senza riavviare i servizi, il salvataggio periodico dello stato delle attività computazionali a lungo termine per riprendere il lavoro in caso di crash, il bilanciamento del carico sui nodi nei cluster, la duplicazione dei processi su un'altra macchina (fork su un sistema remoto), la creazione di snapshot delle applicazioni utente in esecuzione per la loro analisi su un altro sistema o nel caso in cui si renda necessaria l'annullamento delle azioni successive nel programma. CRIU è utilizzato in sistemi di gestione dei contenitori come OpenVZ, LXC/LXD e Docker. Le modifiche necessarie per il funzionamento di CRIU sono incluse nel nucleo principale di Linux.
Nel nuovo rilascio:
- È stato aggiunto il comando criu-ns, che consente di ripristinare un'istantanea salvata di un processo con un nuovo identificatore PID e in uno spazio dei nomi di montaggio (mount namespace) separato. L'esecuzione con un PID diverso può essere necessaria, ad esempio, nel caso in cui il vecchio PID sia già utilizzato nel sistema.
- È stata implementata la possibilità di salvare e ripristinare le istantanee dello stato dei profili nidificati di AppArmor.
- È stata implementata la bloccatura e sbloccatura delle risorse di rete basate su nftables.
- È stata aggiunta la supporto per il ripristino di dispositivi veth precedentemente creati.
- È stato migliorato il supporto per il ripristino dei contenitori in pod esistenti.
- Per i client RPC è stata aggiunta la possibilità di determinare il riutilizzo del PID, implementata tramite il meccanismo pidfd.
- La licenza per tutti i file proto nella directory images/ è stata cambiata in MIT.
Fonte: opennet.ru
