Die Neuerungen von Linux 2.6.31

Seite 3: Btrfs aufgebohrt

Inhaltsverzeichnis

Eine umfangreiche Änderung in Form eines zirka 350 KByte großen Btrfs-Patches soll die Performance des experimentellen Dateisystems durch den Einsatz von "Mixed back references" in vielen Bereichen erheblich steigern. Dazu haben die Entwickler allerdings die Dateisystemstruktur auf dem Speichermedium (On-disk Format) angepasst. Die nötige Umwandlung vom alten ins neue Format erledigen Kernel mit dem neuen Btrfs-Code beim ersten Einhängen automatisch – Linux-Versionen mit älteren Btrfs-Code können ein so verändertes Dateisystem anschließend allerdings nicht mehr mounten.

Durch weitere Änderungen soll Btrfs bei längerer, starker Belastung nicht mehr so verschwenderisch mit Arbeitsspeicher umgehen (u. a. 1, 2). Verbessert haben die Btrfs-Entwickler zudem die Unterstützung für den Einsatz auf SSDs (u. a. 1, 2)

Das Ext4-Dateisystem enthält jetzt Code zum Defragmentieren im laufenden Betrieb (Online Defrag). Komplett sei dieser aber noch nicht, wie Ext-Dateisystem-Entwickler Theodore Tso (tytso) kürzlich an anderer Stelle betonte. Weitere Patches für diese Funktion müssten vor der Aufnahme noch begutachtet werden; auch beim zugehörigen Userspace-Programm stehe noch Arbeit an.

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, da sich dort viele weitere Informationen zur jeweiligen Änderungen finden. Speziell der Commit-Kommentar im mittleren Bereich der vom Git-Web-Frontend angezeigten Webseite ist häufig eine überaus hilfreiche Quelle für weitere Informationen, denn dort erklärt der Autor des Patches normalerweise die Hintergründe der Änderungen und was sie bewirken sollen.

Im unteren Bereich des Git-Web-Frontends findet sich eine Auflistung der durch den Patch veränderten Dateien. Über den hinter dem Dateinamen zu findenden Link "diff" kann man sich anzeigen lassen, wie der Patch die jeweilige Datei verändert; wer den kompletten Patch in seiner Rohform sehen will, klickt auf den Link Commitdiff. Die Patches selbst sind auch ohne Programmierkenntnisse häufig eine gute Informationsquelle, denn sie enthalten auch Änderungen an der Dokumentation und an den Kommentaren im Code.

Der unter anderem durch seine Arbeit als Betreuer des Netzwerk-Subsystems und der Sparc-Unterstützung bekannte Kernel-Entwickler David Miller hat nun auch das IDE-Subsystem übernommen und löst damit Bartlomiej Zolnierkiewicz ab – vorangegangen war eine Meinungsverschiedenheit zwischen den beiden. Miller ließ durchblicken, in Zukunft keine größeren Änderungen im IDE-Subsystem vornehmen zu wollen ("I'm going to treat IDE as pure legacy [...]"). Damit dürfte die Zukunft jetzt definitiv den Ende 2006 bei Linux 2.6.19 aufgenommenen PATA-Treibern im Libata-Subsystem gehören. Dort ist der IDE/PATA-Treiber ata_piix für Intel-Controller angesiedelt, der fortan parallel nach Datenträgern scannt, was die Initialiserungszeit des Treiber auf dem Eeepc des Entwicklers halbieren soll.

Durch eine von vielen Änderungen im Block-Layer exportiert dieses nun etwa mit Hilfe der vom SCSI-Subsystem gelieferten Daten Informationen zur I/O-Topologie – dazu zählt unter anderem die dem Datenträger zugrunde liegende Sektorgröße. Das ist etwa für die Einteilung von Datenträgern mit Sektorgrößen ungleich 512 Byte oder die optimale Anordnung von Daten im RAID-Verbund von Interesse. Der Entwickler diese Codes erläutert einige Hintergründe in einem kürzlich veröffentlichten Vortrag (PDF, Seite 235 ff). Der für Software-RAIDs zuständige MD-Code kann die Topologie-Informationen bereits nutzen.