Nach sechs Monaten Entwicklung wurde die Version 4.2 des Tools CRIU (Checkpoint and Restore In Userspace) veröffentlicht, das fĂŒr das Speichern und Wiederherstellen von Prozessen im Userspace konzipiert ist. Das Tool ermöglicht es, den Zustand eines oder mehrerer Prozesse zu speichern und dann die Arbeit von der gespeicherten Position fortzusetzen, selbst nach einem Systemneustart oder auf einem anderen Server, ohne unterbrochene Netzwerkverbindungen. Der Code des Projekts ist in C geschrieben und wird unter der GPLv2-Lizenz veröffentlicht. CRIU wird in Containerverwaltungssystemen wie OpenVZ, LXC/LXD und Docker eingesetzt. Die erforderlichen Ănderungen fĂŒr den Betrieb von CRIU sind in die Hauptversion des Linux-Kernels 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:
- Im amdgpu-Plugin wurde die Funktion zur Parallelisierung der Wiederherstellung des Status von Prozessen, die die GPU verwenden, implementiert.
- Die Option «âallow-uprobes» wurde hinzugefĂŒgt, die es ermöglicht, mit Prozessen zu arbeiten, die vma (Virtual Memory Area) bei der ProzessĂŒberwachung durch den uprobe-Mechanismus verwenden.
- In der Bibliothek libcriu wurde die Möglichkeit hinzugefĂŒgt, eine Konfigurationsdatei fĂŒr RPC festzulegen, die von Runtime-Containern verwendet wird, die diese Bibliothek nutzen, wie z.B. crun. Diese FunktionalitĂ€t kann nĂŒtzlich sein, um Optionen wie ââtcp-establishedâ ĂŒber die Datei /etc/criu/runc.conf fĂŒr Kubernetes zu konfigurieren.
- Probleme bei der Kompilierung auf ARM64-Systemen mit der C-Bibliothek musl wurden behoben.
- Ein ganzzahliges Ăberlaufproblem in der Funktion pagemap_len() wurde behoben.
- Probleme mit der Verwendung der getsockopt-Optionen SO_PASSCRED und SO_PASSSEC auf Systemen mit dem Linux-Kernel 6.16 wurden gelöst.
Quelle: opennet.ru
