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

Seite 2: Hot-Replace-Raid, Storage, kleine Perlen

Inhaltsverzeichnis

Der für Software-RAIDs zuständige MD-Code erhielt Funktionen (u. a. 1, 2), um Daten im Betrieb von einem Datenträger auf einen zweiten zu verschieben, um den ersten anschließend entfernen zu können. Dieser "Hot Replace" genannte Ansatz reduziert die Gefahr von Datenverlust beim Datenträgerwechsel, da es den bislang beim Austausch nötigten Rebuild vermeidet, bei dem die redundanten Daten auf einem neuen Datenträger frisch erzeugt werden. Dieser Rebuild ist nicht ohne Risiko, da dazu die Daten von den verbliebenen Datenträgern gelesen werden müssen, auf denen möglicherweise unbemerkt bereits beschädigte Bereiche entstanden sind; zudem besteht während des Rebuilds keine Redundanz, wenn es sich nicht um ein RAID 6 handelt. Der Kernel beherrscht "Hot Replace" bei den RAID-Level 1, 4, 5, 6 und 10. Aktuelle Mdadm-Versionen unterstützten die Technik noch nicht; einige Hinweise, wie man sie verwenden kann, finden sich zusammen mit Hintergrundinformationen zur Technik in zwei älteren Mails des MD- und Mdadm-Betreuers (1, 2).

Die Linux-Entwickler haben den Treiber ib_srpt integriert, durch die der Kernel nun auch über das SCSI RDMA Protocol (SRP) als Storage-Host agieren kann; der Code dahinter setzt auf das bei 2.6.38 integrierte Target-Framework LIO (Linux-Iscsi.Org) auf.

Dem Kernel liegt nun ein Treiber für NVM (Non-Volatile Memory) Express (NVMe) bei (u. a. 1, 2). Dabei handelt es sich um eine vor einem Jahr definierte Standardschnittstelle zum Zugriff auf SSDs, die via PCI oder PCIe angebunden sind; auch der designierte SATA-6G-Nachfolger SATA Express soll Konzepte von NVMe nutzen.

Zum Block-Layer stieß ferner ein Treiber für Microns PCIe-Flash-Karten RealSSD. Der Emulex-LightPulse-Fibre-Channel-SCSI-Treiber lpfc bietet nun Loopback-Unterstützung.

  • Einige Patches haben Grundfunktionen für Techniken gelegt, mit deren Hilfe man Prozesse auf einem Rechner einfrieren kann, um sie nach dem Transport auf ein anderes System fortzusetzen ("Checkpoint and Restart"; kurz "C/R"). Dazu gehören die Proc-Verzeichnisse /proc/<pid>/map_files/, über die sich alle Dateien und deren Bereiche auslesen lassen, die in den Speicher gemapt wurden.
  • Über die neuen Procfs-Mount-Optionen "hidepid=" und "gid=" kann der Systemadministrator den Zugriff auf bestimmte /proc/<PID>/-Verzeichnisse einschränken – "hidepid=1" etwa verhindert, dass ein Prozess Informationen von fremden Prozessen abgreift.
  • Änderungen am SCSI- und Device-Mapper-Code beseitigen eine Sicherheitslücke, über die KVM-Gastsysteme unter gewissen Umständen auf Datenträger des Wirts zugreifen konnten (u. a. 1, 2).
  • Über einen neuen Ioctl können Anwendungen abfragen, ob es sich um einen Datenträger mit rotierenden Bauteilen handelt; die schon länger mögliche Abfrage über Sysfs funktioniert weiter.
Mehr Infos

Die "Was Linux 3.3 bringt"-Serie

Das Kernel-Log kann bereits jetzt einen Überblick über die wichtigsten Neuerungen der Mitte März erwarteten Linux-Version 3.3 geben, da alle größeren Neuerungen bereits in den ersten zwei Entwicklungswochen integriert wurden. Kernel 3.3 befindet sich daher jetzt in der Stabilisierungsphase, in der es normalerweise keine größeren Änderungen mehr gibt.

Die Artikel zu den Neuerungen nehmen sich nach und nach den unterschiedlichen Funktionsbereichen des Kernels an:

In den kommenden Wochen folgen noch Artikel zu Architektur-Code, Infrastruktur sowie zu Treibern für sonstige Hardware.

Die folgenden Links führen zu einigen kleineren, aber keineswegs unbedeutende Änderungen:

Dateisysteme

Storage

Ein "C" im Bereich "[  ]" kennzeichnet Commits mit Änderungen an Kconfig-Dateien, welche die Konfigurationsoptionen samt der zugehörigen Hilfetexte enthalten. Mit "D" ausgezeichneten Patches verändern die dem Kernel beiliegende Dokumentation; Commits mit "N" legen neue Dateien an. Die Zahl vermittelt einen groben Eindruck zur Größe des Patches: eine "1" kennzeichnet Patches, die inklusive Kommentar zwischen 10 und 20 KByte groß sind; Änderungen ohne Zahl sind kleiner als 10 KByte, Patches mit einer "9" hingegen 90 KByte oder größer.

Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs auf heise open. Neue Ausgaben des Kernel-Logs werden auf den Identi.ca- und Twitter-Konten "@kernellog" erwähnt; die englischen, bei den Kollegen von "The H" erscheinenden Übersetzungen auf den Identi.ca- und Twitter-Konten "@kernellog2". Gelegentlich zwitschert der Autor des Kernel-Logs unabhängig davon über einige Kernel-Log-Themen bei Identi.ca und Twitter als "@kernellogauthor". (thl) (thl)