Kernel-Log – Was 3.5 bringt (2): Dateisysteme und Storage

Linux 3.5 beherrscht nun den von Mac bekannten "FireWire Target Disk Mode". Btrfs führt Buch über Datenfehler und ermöglicht so die Erkennung unzuverlässiger Datenträger. Prüfsummen sollen die Konsistenz der Ext4-Metadaten sichern.

In Pocket speichern vorlesen Druckansicht 26 Kommentare lesen
Lesezeit: 8 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Mit dem neuen FireWire Fabric Module SBP-2 kann Linux 3.5 nun zusammen mit der Target-Infrastruktur-Software von Linux-Iscsi.org (LIO) Datenträger per FireWire exportieren, sodass andere Systeme sie wie einen FireWire-Datenträger einbinden können. Viele Apple-Systeme beherrschen solch einen "FireWire target disk mode" schon länger; wie ein Screenshot eines beteiligten Linux-Entwicklers zeigt, kann auch MacOS X einen Datenträger einbinden, den ein Linux-System über das neue Firewire-Fabric-Modul offeriert.

Über das neue Fabric-Modul TCM_QLA2XXX und passende Unterstützung im Treiber Qla2xxx kann Linux mit den Fibre-Channel-Controllern aus QLogics Serien 2400, 2500 und 2600 als SCSI Target arbeiten; Selbiges gelingt über das USB Gadget Target Fabric Module nun auch per UASP (USB Attached SCSI Protocol), wenn der USB-Controller entsprechende "Gadget"-Funktionen zum Betrieb als USB Master beherrscht.

Mehr Infos

Entwicklungsstand

In der Nacht von Samstag auf Sonntag hat Linus Torvalds die fünfte Vorabversion von Linux 3.5 veröffentlicht. Er erklärte dabei, der RC5 enthalte nichts wirklich beunruhigendes; zudem forderte er dazu auf, ihn und die LKML über Fehler zu informieren, die frühere Versionen nicht gezeigt hätten.

Beim weiterhin experimentellen Dateisystem Btrfs gab es eine größere Änderung am Writeback-Handling; das soll Latenzspitzen beseitigen, die gelegentlich beim Schreiben von Metadaten auftreten, wie Chris Mason in der Mail mit seinem Haupt-Git-Pull-Request für Linux 3.5 schreibt. Dort erwähnt er auch, Probleme am Btrfs-Code für RAID 5 und 6 gefunden zu haben, der sich derzeit in Entwicklung befindet; er habe diese Erweiterungen daher fürs Erste zurückgestellt .

Integriert hat Mason hingegen Funktionen, um die von Btrfs erkannten Datenfehler zu zählen (failure tracking), damit der Systemadministrator unzuverlässige Datenträger frühzeitig erkennen und gegebenenfalls austauschen kann (u. a. 1, 2, 3). Der Dateisystem-Code erhielt zudem einige Grundlagen, um Btrfs Send/Receive und Subvolume Quotas zu unterstützen; an diesen Funktionen wird allerdings noch gearbeitet.

Das Ext4-Dateisystem kann viele seiner Metadaten nun mit CRC32-Prüfsummen versehen (u. a. 1, 2, 3, 4, 5). Falls die Checksummen Verfälschungen an den Ext4-Interna aufzeigen, verweigert der Kernel gegebenenfalls das Einbinden eines Dateisystems, um nicht versehentlich Nutzdaten zu zerstören; fallen Verfälschungen im Betrieb auf, hängt der Kernel das Dateisystem notfalls schreibgeschützt ein. Wie Ext4-Entwickler Theodore "tytso" Ts'o erläutert, lässt sich die Checksummen-Funktion derzeit nur mit einer Entwicklerversion der Ext-Werkzeugsammung E2fsprogs nutzen, daher rät er Anwendern noch nicht zum Einsatz dieser Technik. Die Checksummen-Sicherung soll sich per Tune2fs nachträglich einschalten oder direkt beim Formatieren mit Mkfs.ext4 aktivieren lassen; ältere Kernel können solche Ext4-Dateisysteme nur lesend einbinden.

  • Der Software-RAID-Code des MD-Subsystems kann für die bei RAID 5 benötige XOR-Verknüpfung nun die AVX-Instruktionen neuerer Prozessoren nutzen. Zudem beherrscht der MD-Code Reshaping jetzt auch bei RAID 10, sodass sich auch bei solch einem Verbund die Zahl der am RAID beteiligten Datenträger ändern lässt.
  • Die Kernel-Entwickler haben einige Timing-Probleme im Floppy-Treiber korrigiert, die sich mit Virtualisierungs-Software häufiger zeigten, weil deren emulierte Disketten-Laufwerke schneller arbeiten als echte.
  • Die Unterstützung für HFS-Dateisysteme mit Dateisystemeinträgen in einer regions-spezifischen Codierung wurde verbessert (u. a. 1, 2).
  • Der Device-Mapper kann dem Userspace nun Zugriff auf die Metadaten von Pools gewähren, die Thin Provisioning nutzen; das kann für inkrementelle Backups, Pool-Migration, das Mergen von Snapshots oder asynchrone Replikation genutzt werden, wie der Commit-Kommentar erläutert.
  • Über die neue Procfs-Dateien /proc/<pid>/task/<tid>/children lassen sich die Kindprozesse eines Prozesses erkennen; diese Funktion soll zusammen mit anderen Erweiterungen die Grundlagen schaffen, um mittelfristig den Umzug von Linux-Containern auf andere Wirte im Betrieb zu ermöglichen (Checkpoint und Restart; kurz C/R).
  • Die Entwickler des CIFS-Client-Codes haben einige Grundlagen zur Unterstützung des mit Windows Vista eingeführten Protokolls Server Message Block 2 (SMB2) eingebracht; der Support ist aber noch unvollständig und daher als "Broken" markiert (1, 2).
  • FUSE beherrscht nun die via Fallocate nutzbare Funktion "punch hole", über die Programme dem Dateisystem mitteilen können, wenn Bereiche innerhalb einer Datei keine Daten mehr enthalten. Diese etwa zum Kleinhalten von Sparse-Datein interessante Funktion wird auch von Tmpfs unterstützt, das jetzt Preallocation via Fallocate sowie SEEK_DATA und SEEK_HOLE beherrscht.
  • Der "XFS status update for May 2012" erwähnt einige Neuerungen rund um XFS. Änderungen an anderen Bereichen finden sich in den Haupt-Git-Pull-Requests für Block I/O Core, Ceph, Infiniband, NFS-Server und der Target-Infrastruktur .