Die Neuerungen von Linux 4.5

Seite 2: Dateisysteme und Storage

Inhaltsverzeichnis

Programme wie cp können das Kopieren von Daten jetzt an den Kernel delegieren. Das kann den Kopiervorgang erheblich beschleunigen – ob das der Fall ist, hängt vorerst vom eingesetzten Dateisystem ab.

Btrfs etwa kann selbst große Datenmengen in Sekundenbruchteilen kopieren. Das gelingt, weil es lediglich eine neue Referenz auf die Daten zu erzeugen braucht. Das Vervielfältigen der Nutzdaten kann sich Btrfs sparen, weil es mit Copy-on-Write (COW) arbeitet; eine spätere Änderung an Original-Datei oder Kopie wirkt sich daher auf das jeweils andere nicht aus. Btrfs bietet daher schon länger eine von cp --reflink direkt unterstützte Funktion, um beim Kopiervorgang ein Duplizieren der Daten zu vermeiden.

Aus der dazu verwendeten Btrfs-Funktion haben die Kernel-Programmierer eine generische Schnittstelle entwickelt, die sich universell über das Virtual File System (VFS) nutzen lässt ( 1, 2, 3). Der NFS-Server des Kernels unterstützt sie bereits. Gerade für Netzwerkdateisysteme ist diese Funktion interessant, denn dadurch können sie Daten direkt auf dem Server kopieren, statt sie zum Client und wieder zurück übertragen zu müssen. Details dazu liefert ein Artikel bei LWN.net.

Die neue Funktion soll auch ein Delegieren des Kopiervorgangs an Storage-Controller ermöglichen, die Daten selbst duplizieren können; das entlastet Prozessor und Hauptspeicher, weil die vervielfältigten Daten den Controller gar nicht verlassen müssen.

Die Btrfs-Entwickler gehen mit 4.5 ein Problem an, das bei mehreren Terabyte großen Dateisystemen hin und wieder zu störenden Wartezeiten führt. Diese Latenzen entstehen durch einen Cache, in dem Btrfs die Lage ungenutzter Speicherbereiche verzeichnet. Ein komplett neuer Cache hat das Problem nicht und soll darüber hinaus auch noch schneller arbeiten. Er ist aber optional, denn er gilt noch nicht als produktionsreif; das wollen die Entwickler in den kommenden Monaten ändern.

Das Ext4-Dateisystem unterstützt neben User- und Gruppen-Quotas nun auch Projekt-Quotas. Mit dieser Funktion lässt sich die Menge der Daten begrenzen, die einem "Projekt" zugeordnete Dateien belegen dürfen. Das Feature lässt sich nutzen, um einzelne Verzeichnishierarchien zu limitieren; alternativ kann man darüber auch den Platz begrenzen, den über mehrere Verzeichnisse verstreute Dateien belegen dürfen.

Hintergründe zur der nur spärlich dokumentierten Funktion finden Sie in zwei der Mail-Diskussionen, in der die Entwickler ihre Lösung zur Begutachtung vorgelegt haben (1, 2). Das Ganze funktioniert offenbar ähnlich wie die Projekt-Quotas von XFS. Das Interface zum Setzen und Abfragen der Projekt-Attribute hat Ext4 sogar von XFS übernommen, daher ist es kompatibel. Ob eine Datei Projekt-Quotas unterliegt, wird in ihrer Inode gespeichert.

Das Overlay-Dateisystem kennt jetzt die Mount-Option default_permissions, mit der sich Verzeichnisse über per NFS angesprochene Freigaben schichten lassen.

Die Lseek-Implementation von Fuse implementiert nun auch SEEK_HOLE und SEEK_DATA; das verspricht die Performance beim Zugriff auf Images virtueller Maschinen zu steigern, die in einem per Fuse eingehängten Dateisystem (etwa GlusterFS) liegen.

XFS prüft jetzt die Checksummen der im Dateisystem-Log gespeicherten Daten, damit es beim Recovery nach einem Absturz keine beschädigten Metadaten ins Dateisystem schreibt.