La version 3.16 de l'outil CRIU (Checkpoint and Restore In Userspace) a été publiée, permettant la sauvegarde et la restauration des processus dans l'espace utilisateur. Cet outil permet de conserver l'état d'un ou plusieurs processus, puis de reprendre le travail à partir de cet état sauvegardé, même après un redémarrage du système ou sur un autre serveur sans interruption des connexions réseau établies. Le code du projet est distribué sous la licence GPLv2.
Parmi les applications de la technologie CRIU, on peut citer la possibilité de redémarrer le système d'exploitation sans interrompre l'exécution de processus de longue durée, la migration en direct de conteneurs isolés, l'accélération du démarrage de processus lents (il est possible de commencer à partir d'un état sauvegardé après l'initialisation), la mise à jour du noyau sans redémarrer les services, la sauvegarde périodique de l'état des tâches de calcul intensif afin de reprendre le travail en cas de crash, l'équilibrage de la charge sur les nœuds dans les clusters, la duplication de processus sur une autre machine (fork sur un système distant), et la création de snapshots d'applications utilisateur en cours d'exécution pour leur analyse sur un autre système ou au cas où il faudrait annuler les actions ultérieures dans le programme. CRIU est utilisé dans des systèmes de gestion de conteneurs tels qu'OpenVZ, LXC/LXD et Docker. Les modifications nécessaires au fonctionnement de CRIU sont intégrées dans le noyau Linux principal.
Dans cette nouvelle version :
- La commande criu-ns a été ajoutée, permettant de restaurer un instantané de processus sauvegardé avec un nouvel identifiant PID et dans un espace de noms de points de montage distinct. Le démarrage avec un autre PID peut être nécessaire, par exemple, si l'ancien PID est déjà utilisé dans le système.
- La possibilité de sauvegarder et de restaurer les instantanés d'état des profils imbriqués apparmor a été mise en œuvre.
- La verrouillage et le déverrouillage des ressources réseau basées sur nftables ont été réalisés.
- La prise en charge de la restauration des dispositifs veth préalablement créés a été ajoutée.
- L'assistance pour la restauration des conteneurs dans des pods existants a été améliorée.
- Pour les clients RPC, une fonctionnalité de réutilisation des PID a été ajoutée, mise en œuvre via le mécanisme pidfd.
- La licence de tous les fichiers proto dans le répertoire images/ a été changée en MIT.
Source : opennet.ru
