Open Source im professionellen Einsatz
Linux-Magazin 07/2017
© Brian Jackson, 123RF

© Brian Jackson, 123RF

Kernel 4.12: Integre Daten, USB-Typ-C-Support, erster Vega-Code

Der Nächste, bitte!

,

Im letzten legten Entwickler die Grundlage, im neuen Kernel 4.12 landen nun mit BFQ und dem Kyber I/O Scheduler zwei neue Terminplaner für Datenzugriffe auf Speichergeräte. Arbeit floss auch in den Vega-Support des AMDGPU-Treibers, zudem kommt Linux jetzt mit USB-Typ-C-Geräten klar.

675

Mit der Freigabe der ersten Vorabversion von Linux 4.12 schließt sich das Zeitfenster, in dem Entwickler Änderungen oder Neuerungen für die neue Kernelversion einreichen dürfen. Kernel-Chef Torvalds bezeichnete den aktuellen Entwicklungszyklus als recht ruhig.

Bessere Steuerung

Nachdem in den Kernel 4.11 die Unterstützung für mehrfache Warteschleifen (Multiqueuing, kurz »blk-mq« ) einfloss, war auch die Voraussetzung für die Neulinge im aktuellen Kernel 4.12 geschaffen. Zwei neue Steuerprogramme nutzen die noch junge Infrastruktur: Budget Fair Queuing (BFQ, [1]) und der Kyber I/O Scheduler [2].

BFQ basiert auf Completely Fair Queuing (CFQ), blickt auf eine längere Entwicklungszeit zurück und musste – wie der Kernel – für die Aufnahme in Linux 4.12 Multiqueuing lernen. Die zugehörigen Algorithmen sorgen für eine ausgewogenere Nutzung insbesondere rotierender Datenträger. So gewähren sie beispielsweise jedem Prozess, der auf die Datenträger zugreift, ein begrenztes Ein- und Ausgabebudget, während CFQ feste Timeslots verteilt. Aber auch bei langsameren statischen Datenträgern soll BFQ lesende und schreibende Zugriffe beschleunigen.

Der Warteschlangen-Algorithmus ist aber recht komplex und erzeugt bei den Nutzern einen größeren Overhead. Für moderne, schnelle SSDs gibt es daher neuerdings das einfach gehaltene Steuerungsprogramm Kyber I/O Scheduler. Es teilt Ein- und Ausgaben zunächst einer von insgesamt zwei Warteschleifen zu, die es zugleich möglichst kurz hält.

Dazu prüft der Algorithmus, wie lange die jeweils angeforderten Operationen dauern. Die kurzen Warteschleifen sollen vor allem dafür sorgen, dass der Blocklayer Anfragen mit hoher Priorität möglichst schnell abarbeitet. Als einzige Stellschraube geben Admins dem Algorithmus eine Leseverzögerung als Zielvorgabe mit auf den Weg.

Wer also grob gesprochen auf einen möglichst effizienten Datendurchsatz setzt, dürfte den Kyber I/O Scheduler bevorzugen, wer sich hingegen schnellere Antwortzeiten auch von langsameren Datenträgern wünscht, sollte BFQ künftig im Auge behalten.

Insgesamt befindet sich die Multiqueue-Technologie aber noch in Entwicklung. Zum Beispiel fehlt diversen Blocklayer-Treibern der Support dafür. Wer die Technologie nutzen möchte, greift am besten weiterhin auf den etablierten CFQ-Scheduler zurück (Abbildung 1). Erste Benchmarks von Phoronix [3] legen zudem nahe, dass in der Praxis bislang keiner der Scheduler Datenzugriffe auf NVMe-SSDs beschleunigt.

Abbildung 1: Verschiedene Scheduler warten im Blocklayer auf ihren Einsatz, nun kommen zwei neue hinzu.

Daten absichern

Der Device-Mapper-Treiber bekommt eine Erweiterung namens »dm_integrity« [4], um die Integrität verschlüsselter Daten auf Blockdevices zu überprüfen und längerfristig auch zu schützen (Data Integrity Protection, [5]). Die Erweiterung speichert auf Low-Level-Ebene des Blockdevice zusätzliche Metadaten, die verraten, ob sich die Integrität der Daten in einem Sektor verändert. Die Infrastruktur für die Metadaten bringt der Kernel schon mit, »dm_integrity« baut darauf auf.

Arbeiten beide zusammen, sorgen »dm_integrity« und »dm_crypt« im Team für eine authentifizierte Festplattenverschlüsselung. Der Linux-Kernel erkennt dann, wenn jemand modifizierte Daten auf dem verschlüsselte Device ablegen möchte, und wirft einen Eingabe-Ausgabe-Fehler.

Auch bei den Dateisystemen gibt es Bewegung. Der Treiber für Ext 4 soll die Leistung für sehr große Dateisysteme verbessern, zudem erhält er Unterstützung für den Funktionsaufruf »GETFSMAP« , der Details über Mappings von freiem Speicher für das Dateisystem liefert [6]. Diesen neuen Aufruf unterstützt auch XFS, das mit »xfs_spaceman« [7] zugleich ein Mapping-Tool für freien Speicherplatz in den aktuellen Kernel einführt, das auf »xfs_db« basiert und einen Fragmentierungsreport über freien Speicherplatz erzeugt.

Der Btr-FS-Treiber beseitigt weitere Probleme mit der eigenen Raid-5- und -6-Implementierung, die das Projekt aber weiterhin als instabil einstuft. Auch das MD-Subsystem für die Raid-Unterstützung des Kernels setzt einige Änderungen um. Die beschleunigen zum einen die Wiederherstellung von Raid-5-Systemen und steigern zum anderen die Leistung von Raid-5- und -6-Verbünden.

Nutzer von Rados Block Devices in Ceph profitieren von Verbesserungen an der Lock-Funktionalität, Ceph zügelt zudem seine Schreibfreudigkeit, falls der Platz auf dem Laufwerk ausgeht. Die Entwickler des Flash-Dateisystems F2FS verbessern die Performance beim Allozieren von Blöcken.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 2 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Linux-Kernel 4.12 veröffentlicht

    Am 2. Juli hat Linus Torvalds den nach seiner Aussage recht umfangreichen Kernel 4.12 freigegeben. Neben USB-Typ-C-Support sind zwei neue Terminplaner für Datenzugriffe auf Speichergeräte an Bord und AMDGPU-Code für Vega.

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.