Nach sechsmonatiger Entwicklungszeit wurde die Version 4.1 des CRIU-Tools (Checkpoint and Restore In Userspace) veröffentlicht. Dieses Tool ermöglicht das Speichern und Wiederherstellen von Prozessen im Benutzermodus. Es erlaubt, den Zustand eines oder mehrerer Prozesse zu speichern und danach von diesem gespeicherten Punkt aus weiterzuarbeiten, selbst nach einem Neustart des Systems oder auf einem anderen Server, ohne bereits etablierte Netzwerkverbindungen zu unterbrechen. Der Code des Projekts ist in C geschrieben und wird unter der GPLv2-Lizenz vertrieben. CRIU wird in Container-Verwaltungssystemen wie OpenVZ, LXC/LXD und Docker eingesetzt. Die für den Betrieb von CRIU erforderlichen Änderungen sind in den Hauptkern von Linux integriert.
Die Anwendung der CRIU-Technologie umfasst die Möglichkeit, das Betriebssystem neu zu starten, ohne die Kontinuität lang laufender Prozesse zu stören, die Live-Migration isolierter Container, die Beschleunigung des Starts langsamer Prozesse (man kann mit einem Zustand beginnen, der nach der Initialisierung gespeichert wurde), das Durchführen von Kernel-Updates ohne Neustart der Dienste, das regelmäßige Speichern des Status lang laufender rechenintensiver Aufgaben zur Wiederaufnahme im Falle eines unerwarteten Abbruchs, die Lastverteilung auf Knoten in Clustern, die Duplikation von Prozessen auf eine andere Maschine (Fork auf ein entferntes System) und das Erstellen von Snapshots von Benutzeranwendungen während des Betriebs zur Analyse auf einem anderen System oder zur Möglichkeit, künftige Aktionen im Programm rückgängig zu machen.
In der neuen Version:
- Die Unterstützung für die RISC-V-Architektur wurde hinzugefügt.
- Die Unterstützung des PIDFD-Mechanismus wurde hinzugefügt, der die Verwendung unveränderlicher Identifikatoren ermöglicht, die mit den ursprünglichen Prozessen verknüpft sind (ein normaler PID kann einem anderen Prozess zugewiesen werden, nachdem der aktuelle Prozess, der mit diesem PID assoziiert ist, beendet wurde).
- Für die ARM64-Plattform wurde Unterstützung für Pointer Authentication Code (PAC) Erweiterungen implementiert, die die Überprüfung von Rückgabeadressen mithilfe digitaler Signaturen ermöglichen, die in den nicht verwendeten oberen Bits des Zeigers gespeichert sind.
- Die Möglichkeiten zur Speicherung und Wiederherstellung des Zustands von Anwendungen, die die NVIDIA CUDA-Technologie nutzen, wurden erweitert.
- Es besteht die Möglichkeit, das Netzwerk-Sperr-Backend während des Builds auszuwählen, ohne die Notwendigkeit, den Code zu ändern. Das Backend kann durch Übergeben des Parameters NETWORK_LOCK_DEFAULT an das Make-Tool geändert werden, wobei die Werte "NETWORK_LOCK_IPTABLES", "NETWORK_LOCK_NFTABLES" und "NETWORK_LOCK_SKIP" erlaubt sind.
- Die Unterstützung für die Generierung von Coredump-Dateien für die Aarch64- und ARM-Architekturen wurde hinzugefügt.
Quelle: opennet.ru
