CRIU 4.3 veröffentlicht, ein System zum Speichern und Wiederherstellen des Zustands von Prozessen in Linux

Nach 11 Monaten Entwicklung wurde die Version 4.3 des Tools CRIU (Checkpoint and Restore In Userspace) veröffentlicht, das zum Speichern und Wiederherstellen von Prozessen im Benutzerspeicher gedacht ist. Das Tool ermöglicht es, den Zustand eines oder mehrerer Prozesse zu speichern und anschließend von dieser gespeicherten Position aus fortzufahren, auch nach einem Neustart des Systems oder auf einem anderen Server, ohne die bereits bestehenden Netzwerkverbindungen zu unterbrechen. Der Code des Projekts ist in C geschrieben und wird unter der GPLv2-Lizenz verbreitet. CRIU wird in Containerverwaltungssystemen wie OpenVZ, LXC/LXD und Docker eingesetzt. Die erforderlichen Änderungen für die Funktion von CRIU sind in den Hauptbestand des Linux-Kernels integriert.

Zu den Anwendungsbereichen der CRIU-Technologie zählt die Bereitstellung eines Systemneustarts ohne Unterbrechung der Ausführung langlaufender Prozesse, Live-Migration isolierter Container, Beschleunigung des Starts langsamer Prozesse (es kann mit einem Zustand begonnen werden, der nach der Initialisierung gespeichert wurde), Durchführung von Kernel-Updates ohne Neustart der Dienste, regelmäßige Speicherung des Zustands langlaufender Berechnungsaufgaben zur Wiederaufnahme der Arbeit bei einem Absturz, Lastverteilung auf Knoten in Clustern, Duplizieren von Prozessen auf ein anderes Gerät (Fork auf ein entferntes System), und das Erstellen von Snapshots von Benutzeranwendungen während des Betriebs zur Analyse auf einem anderen System oder für den Fall, dass weitere Aktionen im Programm zurückgezogen werden müssen.

In der neuen Version:

  • Die Möglichkeit zur Kompression von Blöcken und Seiten im Speicher unter Verwendung des LZ4-Algorithmus und mehrerer Threads für die Dekompression wurde implementiert.
  • Die Leistung wurde durch den Einsatz von asynchronem Ein- und Ausgabe (AIO) beim Wiederherstellen von VMA-Seiten (Virtual Memory Area), einer neuen Methode zum Anhalten von Aufgaben ohne Verwendung von Hardware-Hälterpunkten sowie durch die Parallelisierung der Wiederherstellung von memfd und anonymer gemeinsam genutzter Speicher verbessert.
  • Die Unterstützung für die ARM64 GCS (Guarded Control Stack)-Erweiterung wurde hinzugefügt, die einen hardwareseitigen Schutz der Rückgabeverzeichnisse aus Funktionen ermöglicht. Nach der Übergabe der Kontrolle an die Funktion werden die Rückgabeverzeichnisse vom Prozessor nicht nur im normalen Stack, sondern auch in einem separaten Schattenstack gespeichert, der nicht direkt geändert werden kann. Vor dem Verlassen der Funktion wird das Rückgabeverzeichnis aus dem Schattenstack extrahiert und mit dem Rückgabeverzeichnis aus dem Hauptstack verglichen.
  • Ein Backend zum Speichern des Status des NVIDIA CUDA-Treibers wurde hinzugefügt.
  • Die Wiederherstellung der GPU-Zuordnung wurde sichergestellt.
  • Für den Treiber amdgpu wurde das Speichern und Wiederherstellen des Status der DRAM-Subsystempuffer (Direct Rendering Manager) und der DMA-BUF-Dateideskriptoren realisiert.
  • Befehle zum Komprimieren und Dekomprimieren von Speicherabbildern im Offline-Modus wurden hinzugefügt.
  • Die Unterstützung für das Speichern und Wiederherstellen von Informationen zur Bindung von UID-Identifikatoren an Netzwerksockets wurde hinzugefügt.
  • Eine Option "—image-io-mode" zum Schreiben und Lesen von Seitenbilddateien im O_DIRECT-Modus (umgehung des Seiten-Caches) wurde hinzugefügt.

Quelle: opennet.ru

Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server 🔥 Zuverlässiges Hosting für Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster