Kernel-Log – Was 3.3 bringt (2): Dateisysteme und Storage
Seite 2: Hot-Replace-Raid, Storage, kleine Perlen
Umverteilen: Mdadm
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).
Storage-Treiber
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.
Verschiedenes
- 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.
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 kleinen Perlen
Die folgenden Links führen zu einigen kleineren, aber keineswegs unbedeutende Änderungen:
Dateisysteme
- [
   2] audit: dynamically allocate audit_names when not enough space is in the names array - [
   Â] Btrfs: add allocator tracepoints - [
  NÂ] Btrfs: generic data structure to build unique lists - [
   Â] Btrfs: revamp clustered allocation logic - [
 D Â] ceph: enable/disable dentry complete flags via mount option - [
CÂ Â Â]Â [CIFS] ACL and FSCACHE support no longer EXPERIMENTAL - [
 D Â] configfs: convert to umode_t - [
   1] epoll: limit paths - [
   Â] ext4: optimize ext4_find_delalloc_range() in nodelalloc mode - [
   Â] fuse: support ioctl on directories - [
   Â] GFS2: Add readahead to sequential directory traversal - [
   4] GFS2: dlm based recovery coordination - [
CÂ Â Â]Â move fs/partitions to block/ - [
CÂ NÂ]Â NFSD: Added fault injection - [
 DNÂ] NFSD: Added fault injection documentation - [
   Â] NFS: Retry mounting NFSROOT - [
 D Â] NFSv4: Change the default setting of the nfs4_disable_idmapping parameter - [
   Â] proc: clean up and fix /proc/<pid>/mem handling - [
   Â] procfs: parse mount options - [
   1] reiserfs: Properly display mount options in /proc/mounts - [
 D Â] Squashfs: Update documentation to include xattrs - [
 D 3] switch ->create() to umode_t - [
 D 2] switch debugfs to umode_t - [
 D 2] switch ->mknod() to umode_t - [
 D 3] switch vfs_mkdir() and ->mkdir() to umode_t - [
 D Â] sysfs: propagate umode_t - [
 D 2] vfs: switch ->show_options() to struct dentry * - [
   Â] xfs: replace i_flock with a sleeping bitlock
Storage
- [
   1] mlx4_core: Added FW commands and their wrappers for supporting SRIOV - [
   2] mlx4_core: initial header-file changes for SRIOV support - [
   1] mlx4_core: mtt modifications for SRIOV - [
   Â] SCSI: bfa: Implement LUN Masking feature using the SCSI Slave Callouts. - [
   Â] SCSI: isci: enable wide port targets - [
   1] SCSI: isci, firmware: Remove isci fallback parameter blob and generator - [
   Â] SCSI: isci: oem parameter format v1.3 (cable select) - [
   Â] SCSI: isci: performance-fix, shorten default "no outbound task" timeout - [
CÂ Â Â]Â SCSI: isci: update version to 1.1 - [
   1] SCSI: lpfc 8.3.28: Add support for ABTS failure handling - [
   3] SCSI: lpfc 8.3.28: Critical Miscellaneous fixes - [
   3] SCSI: lpfc 8.3.28: Miscellaneous fixes in sysfs and mgmt interfaces - [
   2] SCSI: lpfc 8.3.28: SLI fixes and added SLI4 support - [
   Â] SCSI: lpfc 8.3.28: Update driver version to 8.3.28 - [
   Â] SCSI: MAINTAINERS: pvscsi maintainers update - [
 D Â] SCSI: megaraid_sas: Version and Changelog update - [
   Â] SCSI: mpt2sas: Bump driver version to 11.100.00.00 - [
   Â] SCSI: mpt2sas: Increase max transfer support from 4MB to 16MB - [
   Â] SCSI: mpt2sas: Support for greater than 2TB capacity WarpDrive - [
   Â] SCSI: mptsas: Add device ID for SAS1068_820XELP. - [
   Â] SCSI: qla2xxx: Implement FCP priority tagging for 82xx adapters. - [
   3] SCSI: qla2xxx: Update to dynamic logging. - [
   Â] SCSI: qla4xxx: Update driver version to 5.02.00-k10 - [
   Â] SCSI: qla4xxx: Update driver version to 5.02.00-k11 - [
   Â] SCSI: qla4xxx: Update driver version to 5.02.00-k12 - [
   Â] target: use n as a separator for configuration
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)