Kernel-Log – Was 2.6.30 bringt (3): RAID-Verbesserungen, optimierter CFQ-Scheduler, SAS-Treiber

Die nächste Kernel-Version soll alles Nötige mitbringen, um etwa ein RAID 5 in ein RAID 6 und zurück zu verwandeln. Änderungen am Block Layer sollen die Geschwindigkeit steigern und neue und überarbeitete Treiber verbessern die SAS-Unterstützung.

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

Mit der vor einigen Tagen erfolgten Freigabe der fünften Vorabversion von Linux 2.6.30 schreitet die Entwicklung der nächsten Kernel-Version der Hauptentwicklungslinie weiter voran. Wie Torvalds in der Freigabe-Mail andeutet, nehmen Zahl und Umfang der Änderungen langsam ab, wie es an diesem Punkt der Entwicklung üblich ist.

Da es in jedem Entwicklungszyklus zumeist acht oder neun der häufig im Wochentakt erscheinenden Vorabversion gibt, wird es sicher noch einige Wochen dauern, bis Torvalds Linux 2.6.30 veröffentlicht. Nichtsdestotrotz will das Kernel-Log die Berichterstattung über die größten Änderungen von Linux 2.6.30 mit der folgenden Übersicht über die Neuerungen rund um die Storage-Infrastruktur und -Treiber fortsetzen.

Im Code für Software-RAID mit MD (Multiple Device) gab es allerlei Änderungen (siehe Liste am Ende des Artikels), durch die sich nun die Zahl der Datenträger in einem RAID 5 auch verringern lässt. Dadurch kann sich ein RAID-5-Verbund nun in ein RAID 6 und wieder zurück verwandeln lassen; zudem kann der Kernel ein RAID 1 in ein RAID 5 umbauen. Das Userland-Werkzeug mdadm beherrscht diese tief greifenden Umbauarbeiten in der derzeit aktuellen Version allerdings nicht.

Der MD-Code bietet nun auch Unterstützung für den bei 2.6.27 aufgenommenen "Data integrity support", sofern alle Datenträger eines MD-Verbunds und deren Controller das können. Das gleiche gilt durch einige Änderungen auch für den Device Mapper (DM), der Barriers besser als zuvor unterstützt (1, 2).

Am Block Layer und den zugehörigen I/O-Scheduler CFQ gab es zahlreiche Änderungen, nachdem die Kernel-Entwickler bei Tests im Rahmen der länglichen Diskussionen rund um Ext3 und Ext4 einige Performance-Probleme in diesem Bereich gefunden hatten – diese waren teilweise so groß, dass Torvalds drohte, einen anderen I/O-Scheduler zum Standard zu erheben. Die Ursachen konnten aber gefunden und beseitigt werden, was sich in Einzelfällen wohl in einem nicht nur messbaren, sondern auch spürbaren Geschwindigkeitszuwachs niederschlagen kann (siehe auch LWN.net-Artikel "Solving the ext3 latency problem").

Mehr Infos

Storage

Relevante Git-Pull-Requests:

  • Block Layer 1, 2, 3, 4
  • Device Mapper (DM): 1, 2
  • IDE: 1, 2, 3, 4
  • SCSI: 1, 2

Wie bereits in zweiten Teil der Kernel-Log-Mini-Serie "Was 2.6.30 bringt" erwähnt, bietet das SCSI-Subsystem nun Unterstützung für die eher exotischen OSDs (Object-Based Storage Devices) (u. a. 1, 2, Dokumentation). Erstmals beim Kernel dabei ist der SCSI-Treiber mpt2sas für die SAS-2.0-Controller SAS2004, SAS2008, SAS2108 und SAS2116 von LSI. Der Treiber stex unterstützt nun ebenfalls einige SAS-6G-Controller von Promise. Die bei 2.6.29 neue Unterstützung für Fibre Channel over Ethernet beherrscht nun auch FIP (FCoE Initialization Protocol) zum Finden und Einbinden von Fibre-Channel Forwarders (FCFs). Nachdem die Kernel-Entwickler bereits bei 2.6.27, .28 und .29 den Firmware-Code zahlreicher SCSI-Treiber in separate Dateien auslagerten, wurden für 2.6.30 nochmal einige weitere Treiber dieser Spaltung unterzogen.

Bartlomiej Zolnierkiewicz hatte vor einigen Wochen angekündigt, alle von ihm geplanten Umbauarbeiten am alten IDE-Subsystem abgeschlossen zu haben und sich fortan im Wesentlichen auf die Pflege und kleinere Erweiterungen zu konzentrieren. Das zeigte sich bereits bei der Entwicklung von 2.6.30, denn nach den teils umfangreichen Änderungen am IDE-Code der vorangegangenen Kernel-Versionen ging es diesmal deutlich ruhiger zu. Auch im Libata-Subsystem, dessen PATA-Treiber bei den meisten Mainstream-Distributionen bevorzugt für IDE-Adapter eingesetzt werden, gab es verhältnismäßig wenig bedeutsame Änderungen – etwa die Unterstützung für ATAPI-Geräte im für Marvell-ATA-Chips zuständigen Treiber sata_mv.

Die Kernel-Entwickler diskutierten auch über Erweiterungen zur Nutzung von ATA-TRIM, mit dessen Hilfe der Kernel SSDs mit Unterstützung für das noch recht junge ATA-Kommando mitteilen soll, welche Bereiche nicht mehr durch Daten belegt sind ("Discard"). Aufgenommen wurden aber lediglich Patch, der die Grundlagen für weitere, vermutlich mit 2.6.31 kommende Änderungen legt.

Bei den bisher genannten Neuerungen handelt es sich nur um die bedeutsamsten Änderungen, die die Kernel-Hacker jüngst am für die Storage-Unterstützung zuständigen Code von Linux vorgenommen haben. Zahlreiche weitere Änderungen finden sich in der folgenden Liste mit den Überschriften des jeweiligen Commits im Hauptentwicklungszweigs; über die Links gelangt man direkt zur Änderungen in einem Webfrontend, wo der Commit-Kommentar und der Patch selbst weitere Informationen zu diesen vielleicht etwas weniger wichtigen, aber keineswegs unbedeutenden Änderungen vermitteln.

Mehr Infos

Kernel-Log – Was 2.6.30 bringt

Weitere Teile aus der Kernel-Log-Mini-Serie "Was 2.6.30 bringt":

1. Netzwerk – Neue Treiber für LAN und WLAN

2. Dateisysteme – Zwei neue und massig Änderungen rund um Ext3 und Ext4

Der Artikel "Stetes Wachstum – Die Neuerungen von Linux 2.6.29" bietet eine Übersicht über die Neuerungen der bei der Artikel-Veröffentlichung aktuellen Kernel-Version der Hauptentwicklungslinie.

Weitere Geschehnisse rund um den Linux-Kernel und andere Hardware-nahe Linux-Software finden in den regulären Kernel-Logs Erwähnung, welche die die Kernel-Log-Übersichtsseite auf heise open listet.

Block Layer

Device Mapper (DM)

IDE

Libata

Mapper Device (DM)

MMC

MTD

SCSI

Various

Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in vorangegangen Ausgaben des Kernel-Logs auf heise open. (thl/c't) (thl)