Cong Wang, der die Verkehrskontrollsoftware (Traffic Control, TC) im Linux-Kernel begleitet und das Multikernel-Projekt entwickelt, hat eine neue Dateisystemoption namens DAXFS auf der Liste der Kernel-Entwickler vorgestellt. DAXFS nutzt den Hauptspeicher zur Datenspeicherung, arbeitet im Nur-Lese-Modus und erinnert in seiner Funktionalität an die abgespeckten Dateisysteme ramfs und tmpfs. Das Kernelmodul zur Umsetzung von DAXFS sowie das Werkzeug mkdaxfs zur Erstellung des Dateisystems sind unter der GPLv2-Lizenz veröffentlicht. Nach der Überprüfung wird die Möglichkeit einer Integration von DAXFS in den Hauptkernel in Betracht gezogen.
Ein zentrales Merkmal des neuen Dateisystems ist die Verwendung des DAX (Direct Access) Subsystems, um die Seiten-Caching zu umgehen und direkt auf den gemeinsam genutzten physischen Speicher zuzugreifen. In ramfs und tmpfs wird der Inhalt im Seiten-Cache gespeichert, was bei der Verwendung eines Dateisystems in mehreren Containern oder Kernen, die mit der Multikernel-Technologie gestartet wurden, zu mehreren Kopien von Daten im physischen Speicher führt. Zudem erfordert das Befüllen von ramfs und tmpfs zusätzliche Kopieroperationen, ohne dass ein Mapping des bestehenden Speicherbereichs möglich ist.
Der direkte Zugriff auf den Speicher in DAXFS ermöglicht es, überflüssige Kopieroperationen zu vermeiden und die Arbeit über den traditionellen Eingabe-/Ausgabestack auf blockbasierten Geräten und Puffermechanismen zu organisieren. Damit wird die Fragmentierung der Speicherausgabe bei der gemeinsamen Nutzung eines FS in verschiedenen Containern und Multikernel-Kernen vermieden. DAXFS arbeitet im Zero-Copy-Modus und gibt den Inhalt von Dateien direkt aus dem Speicher aus, ohne dass Daten im Seiten-Cache dupliziert werden müssen, und ermöglicht das Mapping kontinuierlicher physischer Speicherbereiche in jede Instanz von Containern oder Kernen. Darüber hinaus unterstützt es die Verwendung der API dma-buf für den Zugriff auf vom GPU, FPGA/SmartNIC oder CXL-Geräten exportierten Speicher.
Das FS arbeitet im Nur-Lesen-Modus und wird durch das Laden eines vorab vorbereiteten FS-Abbildes in den Speicher initialisiert, was die Implementierung vereinfacht, das Ausführen von Speicherzuweisungsoperationen während des Betriebs überflüssig macht und komplizierte Geräteverwaltungsmethoden ausschließt.
Ein Hauptanwendungsbereich von DAXFS ist der Einsatz in Verbindung mit der Multikernel-Technologie, die es ermöglicht, mehrere unabhängige Instanzen des Linux-Kernels auf einem physischen Computer auszuführen, die direkten Zugriff auf Hardware-Ressourcen haben und zur Ausführung mehrerer isolierter Systemumgebungen genutzt werden können.
DAXFS kann auch verwendet werden, um den gemeinsamen Zugriff mehrerer Container oder Kerne auf ein basales System-Image zu organisieren, das im gemeinsamen Speicher abgelegt ist; um die Overhead-Kosten beim Zugriff auf Informationen im Speicher von Hardware-Beschleunigern zu reduzieren; sowie um den Speicherzugriff von mehreren Hosts ohne Netzwerk-I/O oder auf persistenten Speicher unter Verwendung von CXL- (Compute Express Link) basierten Geräten zu ermöglichen.
Quelle: opennet.ru
