Die Neuerungen von Linux 2.6.32

Seite 2: Dateisysteme, Block-Layer, Devtmpfs

Inhaltsverzeichnis

Btrfs, das noch experimentelle "Next Generation File System for Linux", soll auf schneller Hardware nun mehr als 1 Gigabyte Daten pro Sekunde schreiben können. Auf einem für Test herangezogenen Server liegt es dadurch nun auf dem Niveau von XFS – zuvor hatte Btrfs nur rund 400 Megabyte Daten pro Sekunde übertragen, da es die CPU voll auslastete. Btrfs reserveriert bei Delayed Allocations jetzt zuverlässig ausreichend Speicherplatz für die zu erwartenden Metadaten. Neu dabei ist noch experimenteller Code für "Discard-Operationen", über die das Dateisystem SSDs langfristig mitteilen soll, welche Blöcke durch das Löschen von Dateien frei wurden – die dazu nötige Unterstützung in den SCSI- und Libata-Subsystemen ist allerdings noch in Arbeit, könnte aber bei 2.6.33 in den Kernel einziehen

Über Theodore Ts'o fanden zahlreiche Änderungen an Ext3 und Ext4 den Weg in den Hauptentwicklungszweig (1, 2). Eine von ihnen soll den Benchmark "fs_mark" in bestimmten Konfigurationen um fünfzig Prozent beschleunigen. Den seit längerem in Entwicklung befindlichen Betriebsmodus "data=guarded" für das Ext3-Dateisystem ließen die Kernel-Hacker aber auch diesmal außen vor.

Mehr Infos

Informationsquelle Quellcodeverwaltung

Viele der Links im Artikel verweisen auf den für die Neuerung jeweils relevanten Commit im Web-Frontend des von Linus Torvalds mit Git verwalteten Linux-Quellcodes. Dort finden sich viele weitere Informationen zur jeweiligen Änderungen – speziell der Commit-Kommentar im oberen Bereich der vom Git-Web-Frontend angezeigten Webseite ist häufig eine überaus ergiebige Quelle für weitere Informationen, denn dort erklärt der Autor des Patches normalerweise die Hintergründe der Änderungen und deren (erhoffte) Auswirkung. Gelegentlich finden sich dort auch Benchmark-Ergebnisse oder Verweise auf weitere Informationsquellen.

Auf den Commit-Kommentar folgt eine Auflistung der durch den Patch veränderten Dateien. Über den hinter dem Dateinamen zu findenden Link "patch" kann man sich anzeigen lassen, wie der Commit die Datei verändert; "history" zeigt frühere Änderungen der Datei an. Unter der Auflistung finden sich alle im Rahmen des Commits durchgeführten Änderungen im Unified-diff-Format. Dabei handelt es sich Größtenteils um Quellcode-Modifikationen – es sind aber nicht selten auch Anpassungen an Dokumentation oder Code-Kommentaren darunter, daher sind finden dort auch Anwender oder Programmierkenntnisse viele hilfreiche Informationen.

Der VFAT-Code des Kernels bindet FAT-Datenträger zukünftig nicht mehr mit dem bislang durch die Mount-Option "shortname=lower" aktivierten Verhalten ein, sondern verwendet stattdessen nun "shortname=mixed". Dadurch soll sich die Groß-/Kleinschreibung von Dateinamen beim Kopieren mit Linux nicht mehr wie bisher verändern.

Der von vielen Distributionen verwendende I/O-Scheduler CFQ (Completely Fair Queuing) optimiert die Anfragen nun für kurze Reaktionszeiten. Dadurch sollen Desktop-Anwendungen nicht mehr so stark von im Hintergrund laufenden Programmen, die größere Mengen Daten verarbeiten, abgebremst werden und sich so schneller anfühlen. Manche Zugriffsmuster arbeiten durch das neue Verhalten aber etwas langsamer, daher kann man den Low-Latency-Mode von CFQ via Sysfs deaktivieren.

Der für den Block-Layer zuständige Jens Axboe brachte zudem eine größere, über Monate erarbeitete Überarbeitung der Writeback-Infrastruktur ein. Durch sie kümmert sich nun um jeden Datenträger ein eigener Thread. Durch diese und andere Änderungen soll der Datendurchsatz bei Writeback-lastigen Zugriffsszenarien deutlich steigen und gleichmäßiger verlaufen, was der Entwickler mit zwei Benchmark-Grafiken und einigen Messwerten im Commit-Kommentar unterstreicht. Das neu aufgenommene blk-iopoll soll ferner den maximalen Datendurchsatz durch das Reduzieren von IRQs mit einen NAPI-ähnlichen Ansatz steigern.

Nach längeren Diskussionen im Sommer schaffte das gelegentlich als "Devfs 2.0" verspottete devtmpfs den Sprung in den Kernel. Mit seiner Hilfe kann der Kernel beim Start eine mit einem Device-Dateisystem bestückte RAM-Disk nun selbst anlegen und einbinden – das kann den Systemstart beschleunigen und ermöglicht das Booten ohne eine mit Udev bestückte Initrd.

Das sind aber nur einige der Vorteile des in einem älteren LWN.net-Artikel näher erläuterten devtmps, das von manchen Kernel-Entwicklern allerdings heftig kritisiert wurde. Torvalds gefiel an dem Konzept jedoch, dass der Kernel nun alles zum Systemstart Benötige selbst erledigen kann.