Uscita di CRIU 4.2, un sistema per il salvataggio e il ripristino dello stato dei processi in Linux

Dopo sei mesi di sviluppo, è stato pubblicato il rilascio dello strumento CRIU 4.2 (Checkpoint and Restore In Userspace), destinato a salvare e ripristinare i processi nello spazio utente. Lo strumento consente di salvare lo stato di un singolo processo o di un gruppo di 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 C e distribuito con licenza GPLv2. CRIU viene utilizzato in sistemi di gestione dei contenitori come OpenVZ, LXC/LXD e Docker. Le modifiche necessarie per il funzionamento di CRIU sono incluse nel kernel di 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:

  • Nel plugin amdgpu è stata implementata la possibilità di parallelizzare il ripristino dello stato dei processi che utilizzano la GPU.
  • È stata aggiunta l'opzione "—allow-uprobes", che consente di lavorare con processi che utilizzano vma (Virtual Memory Area) durante il tracciamento dei processi tramite il meccanismo uprobe.
  • Nella libreria libcriu è stata aggiunta la possibilità di specificare un file di configurazione RPC per i contenitori runtime che utilizzano questa libreria, come crun. Ad esempio, la funzionalità implementata potrebbe essere utile per impostare opzioni come "—tcp-established" tramite il file /etc/criu/runc.conf per Kubernetes.
  • Risolti problemi di compilazione su sistemi ARM64 con la libreria C musl.
  • Corretto il problema di overflow intero nella funzione pagemap_len().
  • Risolti problemi legati all'uso delle opzioni getsockopt SO_PASSCRED e SO_PASSSEC su sistemi con kernel Linux 6.16.

Fonte: opennet.ru

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