Kernel-Log – Was 3.6 bringt (1): Dateisysteme und Storage

Linux 3.6 bringt Sicherheitsverbesserungen für das Temp-Verzeichnis sowie Quota- und Backup-Funktionen für Btrfs. Über neue Schnittstellen kann der Kernel im Betrieb von Kapazitätsänderungen verwendeter Partitionen erfahren.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 11 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Am Freitag vergangener Woche hat Linus Torvalds die zweite Vorabversion von Linux 3.6 veröffentlicht. Aufgrund seines Urlaubs erschien diese nicht wie gewohnt eine, sondern erst zwei Wochen nach der Freigabe der ersten Vorabversion. Die Menge der seitdem in den Hauptentwicklungszweig einfließenden Änderungen ist auf einem normalen Niveau.

Alle größeren Neuerungen für Linux 3.6 haben Torvalds und seine Mitstreiter wie üblich zu Beginn der Entwicklung aufgenommen; es ist selten, dass die Kernel-Entwickler in der jetzt laufenden Stabilisierungsphase noch größere Änderungen integrieren oder Neuerungen wieder entfernen.

Das Kernel-Log kann daher bereits jetzt einen umfassenden Überblick über die wichtigsten Neuerungen von Linux 3.6 geben. Der erfolgt wie gewohnt in einer Artikelserie, die nacheinander die verschiedenen Bereiche von Linux behandelt. Den Anfang macht die folgende Beschreibung der wichtigsten Neuerungen rund um Dateisysteme und die Unterstützung für Storage-Hardware; die später folgenden Artikel werden sich mit Grafiktreibern, Netzwerk-Unterstützung, Architektur-Code und Treibern für andere Hardware beschäftigen.

Das weiterhin experimentelle Btrfs-Dateisystem unterstützt nun Quotas für Subvolumes; für diese separierten Bereiche innerhalb des Dateisystems wird sich so reglementieren lassen, wie viel Platz sie maximal belegen dürfen (u. a. 1, 2). Eine weitere Btrfs-Neuerung ist "send/receive" (u. a. 1). Über diese Schnittstellen können Userspace-Programme die Unterschiede zwischen zwei Snapshots bestimmen und in einer Datei sichern beziehungsweise solche Sicherungen bei Bedarf zurückspielen; das ist vor allem für inkrementelle, atomare Backups interessant. Einige weitere Erläuterungen zu dieser auch von ZFS gebotenen Funktion liefert ein LWN.net-Artikel. Die Userspace-Werkzeuge zur Verwendung des Ganzen finden sich derzeit noch im Entwicklerzweig der Btrfs-Dateisystemtools; diesen und einige weitere Hinweise zu den Änderungen an Btrfs erläutert Btrfs-Maintainer Chris Mason in seinem Haupt-Git-Pull-Request.

Der Ext4-Code speichert Quota-Informationen laut Commit-Kommentar nicht mehr in sichtbaren Dateien, sondern als versteckte Inodes bei den Metadaten; dadurch werde der Quota-Support eine Funktion erster Klasse ("first class supported feature"). Eine andere Änderung am Ext4-Code kann die Performance beim Überschreiben von Dateien steigern, wie Theodore Ts'o erläutert.

Schon aus 1996 stammt die Grundidee zu einer mit Linux 3.6 umgesetzten Funktion, keinen Hard- und Softlinks in Verzeichnissen mit Sticky-Bit (etwa /tmp/) zu folgen, die in übergeordnete Verzeichnisse führen. Wie LWN.net in einem Artikel erläutert, unterbindet diese via Sysctl einschaltbare Funktion einen Trick, den Angreifer häufig einsetzen, um sich über als Root laufende Hintergrunddienste höhere Rechte zu verschaffen.

Über eine neue Schnittstelle können Userspace-Programme dem Kernel mitteilen, wenn sich die Größe einer verwendeten Partition ändert; dadurch kann der Kernel nun auch bei eingehängten oder anderweitig verwendeten Partitionen zur Laufzeit von Größenänderungen erfahren und die neuen Gegebenheiten fortan nutzen. Das Programm Resizepart wird die neue Kernel-Schnittstelle nutzen; es wurde in die zweite Vorabversion von Util-Linux 2.22-rc2 integriert, die kürzlich erschien.

Änderungen am Software-RAID-Code des MD-Subsystems sollen die Performance von RAIDs verbessern, bei denen einige oder alle Datenträger SSDs sind.

Der Device Mapper kann nun die RAID-10-Funktionen des MD-Subsystems verwenden.

Nach jahrelanger Entwicklung zog eine größere Patchsammlung in den Memory-Management- und Dateisystem-Code von Linux 3.6 ein, durch den das Ablegen von Swap-Dateien auf NFS-Freigaben nun zuverlässig funktionieren soll (u. a. 1); das ist etwa für Thin Clients ohne lokale Datenträger interessant.

Der seit Linux 3.4 zum Kernel gehörende Treiber virtio-scsi unterstützt nun Hotplug, wodurch sich Datenträger bei virtualisierten Systemen nun zur Laufzeit hinzufügen oder entfernen lassen.

Mehr als eine Woche nach Ende des Merge Windows hat Linus Torvalds noch den als Staging-Code markierten Fabric-Treiber tcm_vhost integriert, mit dem sich SCSI-Geräte eines Wirtssystems ohne viel Overhead in mit KVM virtualisierten Gastsystemen nutzen lassen; Nicholas A. Bellinger hat einige Messergebnisse zur Technik veröffentlicht.

Der Treiber aacraid, der unter anderem Storage-Adapter von Adaptec anspricht, unterstützt nun den "Async. (performance)"-Modus, den die Modelle der Serie 7 bieten.

Durch einige Umbauten am VFS (Virtual File System) und dem darauf aufbauenden Dateisystemcode konnten die Entwickler den Kernel-Daemon pdflush entfernen, der bislang alle fünf Sekunden das Schreiben der Superblocks ausgelöst hat, wenn es Änderungen an den dort gespeicherten Daten gab. Dieses regelmäßige Aufwachen war unter Stromsparaspekten ungeschickt.

Das "XFS status update for July 2012" erwähnt einige der in Linux 3.6 eingeflossenen Änderungen an XFS; darunter Performance-Verbesserungen für den Inode Allocator.