Heise Top NewsDas im April erwartete Linux 4.16 dürfte die Akkulaufzeit vieler Notebooks steigern. Zwei der neuen XFS-Features gelten jetzt als fertig. Einige Detailverbesserungen versprechen einen größeren Performance-Zuwachs bei kleineren I/O-Operationen. Fortschritte bei der tiefgreifenden Erweiterung des XFS-Dateisystem und weitere Maßnahmen gegen die Prozessorlücke Spectre sind zwei der Highlights von Linux 4.16. Die am 2. oder 9. April erwartete Kernel-Version ist zudem besser zum Betrieb unter VirtualBox geeignet. Diese und weitere Neuerungen von Linux 4.16 sind jetzt absehbar, denn Linus Torvalds hat die erste Vorabversion dieses Kernels freigegeben. Größere Änderungen nimmt er jetzt nur noch in Ausnahmefällen an. Das Kernel-Log der c't kann daher bereits jetzt seinen gewohnt schrittweisen Überblick über die Neuerungen der nächsten Linux-Version starten. Für den Anfang konzentriert sich der Text auf die wichtigsten Änderungen bei Storage-Unterstützung und Dateisystemen: Eine neue Konfigurationsoption verspricht, die Akkulaufzeit vieler Notebooks zu verbessern, denn durch sie kann der Kernel einen bei Linux 4.15 nachgerüsteten Stromsparmodus nun bei Notebooks automatisch aktivieren.Effiziente und mit Copy-on-Write realisierte Reflink-Kopien, die Btrfs und ZFS schon länger beherrschen, gelingen nun auch mit XFS.Änderungen an einigen Interna rund um die Dateihandhabung versprechen einen größeren Performance-Zuwachs bei kleineren I/O-Operationen. Die folgenden Absätze liefern Details zu diesen und zahlreichen weiteren Neuerungen rund um die Datenspeicherung. In den kommen Wochen wird dieser Text mehrfach erweitert, um auch Verbesserungen aus anderen Bereichen des Kernels zu erläutern. Das Kernel-Log Die Artikelserie "Die Neuerungen von Linux" beschreibt regelmäßig die Änderungen neuer Linux-Versionen: Von Haus aus Strom sparenLängere Akkulaufzeit bei Notebooks mit Intels Mobil-Chips verspricht die neue Option CONFIG_SATA_MOBILE_LPM_POLICY. Anwender und Distributions-Entwickler könenn durch sie gleich beim Kernel-Bau festlegen, inwieweit Linux bei solchen Chips die Stromspartechnik ALPM (ATA Link Power Management) nutzt. Sie senkt die Leistungsaufnahme im Leerlauf oft um rund 1 Watt, wodurch die Akkulaufzeit sparsamer Notebooks schnell mal um eine halbe oder ganze Stunde steigt – manchmal sogar mehr. Dennoch lassen Linux-Distributionen dieses Stromsparpotenzial seit vielen Jahren zumeist links liegen, weil einige der von Linux unterstützten ALPM-Modi zu Datenschäden und anderen Problemen führen. Ein jüngst nachgerüsteter und im Kernel-Log zu Linux 4.15 näher erläuterter Modus zum Device Initiated Power Management (DIPM) verspricht, das zu vermeiden. Der Trick: Der Modus konfiguriert ALPM genau so, wie es Intels Windows-Treiber macht, weil sich das unter Windows im Feldtest bewährt hat. Bei 4.15 kann man diesen Modus nur via Sysfs wählen. Distributionen könnten DIPM daher leicht über eine kleine Anpassung der Boot-Skripte automatisch aktivieren. Meist dauert es aber Jahre, bis alle Distributoren so etwas umsetzen. Die durch ALPM erzielte Einsparung von 1 Watt kann die Leerlauf-Leistungsaufnahme sparsamer Notebooks schnell mal um 10 oder 20 Prozent reduzieren. (Bild:  git.kernel.org – ebb82e3c79) Die neue und im Entwicklungszweig von Fedora 28 bereits erfolgreich getestete Konfigurationsoption verspricht, die Verbreitung zu beschleunigen: Die Kernel-Maintainer der Distributionen können einfach bei der Konfiguration vorgeben, dass DIPM automatisch genutzt werden soll. Die neue Option wirkt sich aber nur auf Notebooks mit Intels Mobil-Chipsätzen aus. Bei Desktop-PCs, Servern und Notebooks mit anderen Chipsätzen muss man die Stromspartechnik daher nach wie vor bei jedem Datenträger manuell aktivieren, indem man med_power_with_dipm in Dateien wie /sys/class/scsi_host/host0/link_power_management_policy schreibt. Wie mit vielen anderen Stromspartechniken geht auch mit dieser ein kleiner Performance-Verlust einher. In den meisten Fällen ist der die Rede aber nicht wert. I/O-Durchsatz steigen durch Overhead-ReduktionEinen Performance-Zuwachs bei kleinen I/O-Operationen verspricht einige Umbauten an der Struktur zur Handhabung von Dateien. Die "inode->i_version" genannte Änderung eliminiert nämlich eine durch geänderte Metadaten fällige Schreiboperation, die bislang bei Updates von Nutz- oder Metadaten typischerweise fällig war, obwohl in der Praxis niemand die geänderten Metadaten nutzte. Der zuständige Entwickler liefert keine Benchmarks mit, um die Vorteile des Umbaus unter Beweis zu stellen; er verweist stattdessen auf eine Warnung eines Constant-Integration-Testsystems, bei einem 4k-Schreib/Lese-Test mit XFS und DAX habe der Datendurchsatz um 244 Prozent zugelegt. Bei solchen Ergebnissen gilt aber wie immer: Unter anderen Umgebungsbedingungen mag die Änderung rein gar nichts bewirken. XFS-Umbau schreitet voran Bei XFS gab es wieder tiefgreifende Umbauten, wie der XFS-Betreuer selbst hervorhebt. (Bild:  git.kernel.org – 20c59c71ae) Die grundlegende Erweiterung von XFS, die im Spätsommer 2016 ihren Anfang nahm, zeigt erste Früchte: Die bei Linux 4.8 integrierte Funktion zum Reverse Mapping (Rmap) in XFS gilt nicht mehr als experimentell; auch das bei Linux 4.9 dazugestoßene Reflink konnte diesen Status ablegen. Um die Features nutzen zu können, braucht es allerdings auch Dateisystem-Werkzeuge, die diese Funktionen freigeben. Aktuelle Versionen der xfsprogs können beide Features beim Formatieren neuer Volumen aktivieren. Standardmäßig machen sie das aber nicht; das dürfte vermutlich erst der Fall werden, wenn noch mehr der grundlegenden XFS-Erweiterungen im Linux-Kernel angekommen sind und die Experimentell-Einstufung ablegen. Zu den noch unfertigen Features zählt das in Linux 4.15 eingeflossene "Online Scrub and Repair", mit dem sich Dateisysteme prüfen und reparieren lassen, ohne sie aushängen zu müssen. Es gab für 4.16 aber allerlei Änderungen, die dieses Feature vorantreiben. Diese und andere neue Funktionen greifen vielfach auf die Funktionen für Reverse Mapping und Reflink auf. Durch sie kann das Werkzeug cp beim Aufruf mit --reflink beispielsweise Kopien in Sekundenbruchteilen erzeugen, weil sich XFS ein Vervielfältigen der Dateiinhalte sparen kann; stattdessen braucht es dank Reflink-Support nur einen neuen Dateisystemeintrag mit einer Kopie der Metadaten anzulegen, der auf dieselben Nutzdatenbereiche verweist wie der Eintrag der Quelldatei. Änderungen an den Inhalten des Originals wirken sich dennoch ebensowenig auf die Inhalte der Kopie aus wie umgekehrt. Das ist der Unterschied zu einem mit ln erzeugten Hardlink, bei dem man letztlich die gleiche Datei über unterschiedliche Dateisystemeinträge ansprechen kann. RAIDs wieder splitten und andere Storage-Neuerungen RAIDs wieder auseinanderdröseln klingt verrückt, kann laut einem Intel-Entwickler auf manchen NVMe-SSD von Intel aber Vorteile bieten. (Bild:  git.kernel.org – 18a5bf2705) Über das neue Device-Mapper-Target Dm-Unstripe kann man zu einem JBOD (Just a bunch of disks) oder RAID 0 verbundene Datenträger wieder auseinanderklamüsern und separat ansprechen. Wenn Sie jetzt "was soll denn der Unfug" denken, geht es ihnen genau wie dem Kernel-Log-Autor, als er diese dafür zuständige Änderung sah. Der Commit-Kommentar erklärt aber, wozu das Ganze gut ist. Es soll beispielsweise für NVMe-SSDs von Intel interessant sein, wo verschiedene Controller-Kerne unterschiedliche Speicherbereiche betreuten, die die NVMe-SSD-Firmware zu einem RAID 0 verbindet und komplett exportiert. Das Verbinden bringt aber Overhead mit sich, der etwa zu Latenzen bei Leseanforderungen führt. Für bestimmte Einsatzzwecke kann es daher sinnvoll sein, die Speicherbereiche jeweils separat anzusprechen. Die Firmware erlaubt das aber nicht. Mit dem neuen und von einem Intel-Entwickler eingebrachten Target können Admins diese Beschränkung umgehen. Das bei Linux 4.12 nachgerüstete "Partial Parity Log for MD RAID 5" (RAID5-PPL) soll nun auch zuverlässig mit Datenträgern arbeiten, bei denen der Write-Back Cache aktiv ist. Effizienteren Zugriff und dadurch bessere Performance beim Zugriff auf Speicherkarten versprechen Änderungen, durch die das Subsystem für Multi Media Cards (MMCs) nun das Multiqueue Block API nutzt. Diese auch Blk-MQ genannten Infrastruktur kann Datenträger mit mehreren Warteschlangen ansprechen und so stärker von den heute allgegenwärtigen Multicore-Prozessoren profitieren; letztlich ist das nötig, um das Leistungspotenzial moderner Datenträger besser auszuschöpfen. Gleich mehrere der Umbauten am Device Mapper versprechen, die Performance beim Einsatz auf NVMe-Datenträgern zu verbessern. Unter einem ganzen Schwung von Änderungen am Block-Layer (1, 2) waren einige Patches, durch die die IO-Scheduler Deadline und MQ-Deadline auf SMR-Festplatten keine Schreiboperationen mehr eigenständig umordnen. Das ist bei manchen SMR-Platten nötig ("Host Managed") oder für gute Performance empfehlenswert ("Host Aware"), weil diese verschiedene Zonen haben, in denen die Daten enger beieinander liegen als bei klassischen Festplatten. Diese Zonen müssen jeweils sequenziell gefüllt werden; um in einem einmal beschriebenen Bereich neue Daten zu speichern, muss die komplette Zone gelöscht werden. Einige weitere Änderungen rund um Support für Storage-Hardware finden sich in den Pull-Requests für die Subsysteme Libnvdimm, MMC, SCSI und SCSI Target. SMB3-Direct-Support und Overlayfs für NFSCIFS kommt dank einiger Korrekturen jetzt auch mit per SMB3 angesprochenen Samba- oder Windows-Freigaben klar, bei denen sich die Daten per DFS (Distributed File System) auf verschiedenen Servern verteilen. Ferner bietet CIFS nun experimentelle Unterstützung für SMB3 Direct, mit dem der Client direkt per RDMA (Remote Direct Memory Access) auf dafür vorgesehene Bereiche im Speicher des Servers schreiben oder lesen kann; das vermeidet Overhead auf Client- und Server-Seite und kann so die Geschwindigkeit steigern (u. a. 1, 2, 3, 4). Per Overlay-Dateisystem (Overlayfs/Ovl) übereinander gelegte Dateisysteme lassen sich jetzt auch per NFS exportieren (u.a. 1, Dokumentation). Das NFS-Dateisystem unterstützt jetzt den bei Linux 4.11 eingeführten System-Funktionsaufruf statx(), der eine umfassendere und zugleich aber auch effizientere Abfrage von Datei- oder Verzeichniseigenschaften ermöglicht. Weitere Änderungen an Dateisystemen und Speicherlösungen nennen die Kommentare der wichtigsten Merge Commits am Code für AFS, Btrfs, Ceph, CIFS, Ext4, Fscrypt, F2FS, GFS2, MD, NFS (1, 2), NFSd, Overlayfs, UBI/UBIFS und XFS (1, 2). Daten und Zahlen zu den jüngsten Versionen des Linux-Kernels Kernel-Version AnzahlDateien¹ ZeilenQuelltext(Ohne Doku)² Entwick-lungs-zeitraum Commits(OhneMerges)³ Diffstat⁴ Linux 4.9 56.223 22.348.356(20.520.460) 70 Tage 17.392(16.214) 11.416 files changed,713.497 insertions(+),436.209 deletions(-) Linux 4.10 57.202 22.839.659(20.864.595) 70 Tage 14.249(13.029) 11.913 files changed,806.420 insertions(+),312.218 deletions(-) Linux 4.11 57.994 23.137.402(21.132.076) 70 Tage 13.891(12.724) 12.528 files changed,550.108 insertions(+),252.364 deletions(-) Linux 4.12 59.845 24.170.860(22.125.075) 63 Tage 15.736(14.570) 12.531 files changed,1.342.677 insertions(+),309.204 deletions(-) Linux 4.13 60.582 24.767.008(22.698.219) 63 Tage 14.150(13.006) 10.898 files changed,878.431 insertions(+),282.283 deletions(-) Linux 4.14 61.290 25.041.284(23.050.486) 70 Tage 14.659(13.452) 23.388 files changed,719.862 insertions(+),445.585 deletions(-) Linux 4.15 62.303 25.364.802(23.329.451) 77 Tage 16.223(14.866) 13.265 files changed,643.912 insertions(+),320.289 deletions(-) Linux 4.16-rc1 62.901 25.551.013(23.489.422) n. n. 12.654(11.746) 11.517files changed,1.115.124 insertions(+),929.034 deletions(-) ¹ git ls-tree -r --name-only HEAD | wc -l² find . -type f -not -regex '\./\.git/.*' | xargs cat | wc -l; echo "($(find . -name *.[hcS] -not -regex '\./\.git/.*' | xargs cat | wc -l))"³ git-log --pretty=oneline vx.(y-1)..vx.(y) | wc -l; echo "($(git-log --pretty=oneline --no-merges vx.(y-1)..vx.(y) | wc -l))"⁴ git diff --shortstat vx.(y-1)..vx.(y) Versionshistorie dieses Artikels Der obige Text wird zwischen Freigabe der ersten Vorabversion und Fertigstellung von Linux 4.16 mehrfach erweitert, um schrittweise alle wichtigen Änderungen der neuen Kernel-Version zu erläutern. Einmal publizierte Absätze ändern oder erweitern wir nur bei triftigen Gründen. Zur Freigabe des neuen Linux stellen wir den Text allerdings um, damit Informationen zu den wichtigsten Neuerungen am Anfang stehen. 2018-02-12, 06:30 – v1.0: Erste Version, die sich auf die Neuerungen rund um die Datenspeicherung konzentriert. (thl)

weiterlesen: RSS Quelle öffnen