Login
Newsletter
Werbung

Do, 4. September 2014, 17:20

Software::Kernel

Linux: Unterstützung für Dateisysteme in persistentem Speicher kommt

Persistenter Speicher, auf den so schnell zugegriffen werden kann wie auf RAM, ist bisher noch nicht in Größen verfügbar, bei denen man sich Gedanken über die Geschwindigkeit machen muss. Doch Speicher, die mit Festplatten konkurrieren können, rücken immer näher. Die Linux-Entwickler sind dabei, die Dateisysteme für diese Hardware fit zu machen.

Larry Ewing

Neben Flash entwickelt die Industrie weitere Arten von nichtflüchtigem Speicher. Dieser Speicher (NV-RAM) kann bei entsprechender Konfiguration der CPU direkt adressiert werden wie RAM, wenn er auch vielleicht nicht die Geschwindigkeit von RAM erreicht. Doch der entscheidende Unterschied zum RAM ist eben die Eigenschaft, die Daten zu halten, auch wenn das Gerät ausgeschaltet ist. Damit ist die geeignetste Methode, diesen Speicher zu nutzen, aus ihm ein Blockgerät zu machen und ein Dateisystem darauf zu legen. Flash-Geräte, die auf diese Art funktionieren, existieren heute bereits, doch meist in begrenzter Größe, während in einigen Jahren, möglicherweise mit neuen Technologien, mit Geräten in Terabyte-Größe zu rechnen ist.

Wenn Linux solche Geräte als einfache Blockgeräte nutzt, funktioniert das zwar, doch würden wie bei Dateisystemen üblich alle Daten in den Seiten-Cache des Kernels kopiert. Die Geräte könnten damit bei weitem nicht mit der maximalen Geschwindigkeit betrieben werden. Besser wäre es, ein Dateisystem mit dem sogenannten Execute-in-Place (XIP)-Mechanismus zu verwenden. Eines der wenigen Dateisysteme unter Linux, die das unterstützen, ist ext2, doch scheint die im Jahr 2005 hinzugefügte XIP-Unterstützung veraltet und nicht zur Übertragung auf andere Dateisysteme geeignet zu sein. Das stellte jedenfalls Matthew Wilcox fest, als er mit dieser Arbeit begann. Seine Konsequenz daraus war, einen Ersatz für XIP zu entwickeln. Seine Arbeit resultierte in einer Serie von 21 Patches, die ein neues Subsystem namens DAX einführen.

DAX wird sich voraussichtlich noch ein wenig ändern, wenn andere Kernel-Entwickler diese Arbeit begutachten. DAX ist kein neues Dateisystem, sondern ein Mechanismus, der den meisten vorhandenen Dateisystemen hinzugefügt werden kann. Ext4 ist das erste Dateisystem, das diese Erweiterung enthält. DAX ist somit Dateisystem-unabhängig und wird in die Schnittstelle der virtuellen Dateisystemebene eingebaut.

Es hat gute Gründe, warum die Entwickler kein für RAM entwickeltes Dateisystem wie ramfs oder tmpfs für die Verwendung mit nichtflüchtigem RAM anpassen. RAM-Dateisysteme müssen keine Daten über einen Reboot hinaus speichern, an nichtflüchtigen Speicher werden dagegen ganz andere Anforderungen gestellt. Solche Dateisysteme müssen die gleichen Werkzeuge zum Prüfen und Reparieren besitzen wie normale Dateisysteme. Sie müssen viel größere Dateisysteme ermöglichen als RAM-Dateisysteme. Und ihre Datenstrukturen, die im Dateisystem gespeichert werden, müssen unabhängig von der Kernel-Version sein - die aktuellen RAM-Dateisysteme dagegen nutzen Kernel-Datenstrukturen, die sich von einer Version zur anderen ändern können, direkt.

Daher scheint DAX, das sich in alle relevanten Dateisysteme wie ext4 oder XFS integrieren lässt, sinnvoller zu sein, als eine Neuimplementation eines RAM-Dateisystems. Die Zukunft liegt also offenbar in Journal-Dateisystemen mit der Geschwindigkeit von RAM-Disks, und sie könnte durchaus früher kommen, als man sich derzeit vorstellen kann.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung