Die Neuerungen von Linux 4.1

Seite 2: NV-DIMM-Unterstützung, Netzwerk

Inhaltsverzeichnis

Das Virtual File System (VFS), das Basis-Funktionen für andere Dateisysteme stellt, unterstützt bei der Fallocate-Operation jetzt das Kommando FL_INSERT_RANGE; mit ihm lassen sich Daten inmitten von Dateien einfügen, ohne dass die dahinter liegenden Dateiinhalte bewegt werden müssen. Genau wie zwei bereits bei Linux 3.15 eingeführte Fallocate-Kommandos kann das beispielsweise Videoschnitt-Software beschleunigen, weil sich damit ein zeitaufwendiges Kopieren oder Verschieben unmodifizierter Videobereiche vermeiden lässt.Weitere Details erläutert ein LWN.net-Artikel.

XFS ist bei 4.1 das einzige Dateisystem, das das neue Fallocate-Kommando implementiert. Unter den anderen Änderungen am XFS-Dateisystem war eine, durch die XFS jetzt auch das Overlay-Dateisystem unterstützt, mit dem sich seit Linux 3.18 mehrere Dateisysteme übereinander legen lassen.

Programme zum Limitieren des Platzverbrauchs funktionieren jetzt universell, denn das VFS und XFS unterstützen jetzt dieselben Interfaces zur Quota-Konfiguration. Beim Btrfs-Dateisystem gab es diesmal vornehmlich Fehlerkorrekturen und Detailverbesserungen.

Bei den ArxCis-NVDIMMs von Viking liefern Superkondensatoren Energie zum Datentransfer vom RAM ins Flash.

(Bild: Viking)

Mit "PMEM" enthält der Kernel jetzt einen simplen Treiber, um NV-DIMMs wie Datenträger anzusprechen. Bei den Ende März vom zuständigen Gremium spezifizierten NV-DIMMs handelt es sich um Arbeitsspeichermodule, die wie RAM angesprochen werden, den Speicherinhalt aber auch ohne Stromversorgung behalten; dadurch arbeiten sie nochmals um einiges schneller als die derzeit schnellsten SSDs.

Beim für SATA-Geräte genutzt ATA-Subsystem haben die Kernel-Entwickler die Handhabung von Fehlern verbessert. Ferner nutzt der Kernel bei Samsung-SSDs der 800-Serie nun Queued TRIM nicht mehr, weil es ungeklärte Kompatibilitätsprobleme mit der Technik gibt, über die SSDs von frei gewordenen Speicherbereichen erfahren.

Der von LVM verwendete Device Mapper bietet nun eine Option, um den Multi-Queue Block IO Queueing Mechanism (Blk-Mq) besser zu nutzen. Mit diesem Verfahren soll der Device Mapper nun um ein Vielfaches mehr I/O Operationen pro Sekunde ausführen, sofern man ihn auf NVMe-Hardware und anderen besonders schnellen Datenträgern einsetzt, die der Kernel mit Blk-Mq-Treibern anpricht. Unter den anderen Änderungen am Device Mapper sind Verbesserungen am Cache-Target; neu dabei ist das Log-Target, mit dem Entwickler die korrekte Funktion von Dateisystemen prüfen können.

Beim via Mdadm verwendeten Software-RAID-Code des MD-Subsystems gab es diesmal mehr Änderungen als gewohnt. Einige von ihnen sollen laut dem Mdadm-Entwickler die Performance verbessern; so beherrscht der RAID-6-Code jetzt Read-Modify-Write, was die Geschwindigkeit bei Arrays mit sechs oder mehr Datenträgern verbessern kann.

Neu und explizit als experimentell eingestuft ist der Cluster Support zum Aufsetzen eines RAID-Verbunds für mehrere Systeme (Shared Storage). Zum Locking greift der Code auf den Distributed Lock Manager (DLM) zurück, auf den sich bereits das Cluster-Dateisystem OCFS2 verlässt. Weitere Details liefert die zu MD-Cluster gehörende Kernel-Dokumentation; eine Mail aus der Begutachtungsphase des Codes verweist auf ein Git-Repository mit einer MD-Cluster-tauglichen Version von Mdadm und liefert ein kurzes Einsatzbeispiel.

Linux 4.1 lässt sich als Single-User-Kernel kompilieren, bei dem alle Prozesse mit Root-Rechten laufen. Dieser Betrieb ist für leistungsschwache Embedded-Hardware gedacht, bei der der Multi-User-Support ein unnötiger Ballast wäre. Die Änderungen stammt von den Entwicklern des Linux Kernel Tinification Project, das Linux für die Hardware des Internet of Things (IoT) optimiert.

Unter zahlreichen Änderungen am Netzwerk-Subsystem war Unterstützung zum Routing mit Multiprotocol Label Switching (MPLS) (u. a. 1, 2, 3). Dabei handelt es sich um eine vorwiegend in IP-Netzen mit Sprach- und Datendiensten eingesetzte Technik zur verbindungsorientierten Datenübertragung, bei der vorkonfigurierte Pfade die besten Wege im Netzwerk weisen.

Bei der Netzwerkverkehrs-Regelung per Traffic Control (TC) lassen sich jetzt Filterprogramme für den Extended Berkeley Packet Filter (eBPF) verwenden, um Pakete mit dem TC Classifier (cls) einzustufen und mit einer TC Action (act) zu verarbeiten. Weil der eBPF recht Hardware-nah arbeitet, sollen solche Filter schneller als die bisher verwendeten arbeiten. Der Kernel soll sie zudem verifizierbar "sicher" ausführen, daher können eBPF-Filter den Kernel nicht zum Absturz bringen.

eBPF-Filter zu verwenden ist zudem flexibler, weil sich Filter recht leicht in einer C-ähnlichen Programmiersprache schreiben lassen, woraus ein Compiler-Backend der LLVM dann eBPF-Filter erzeugt.

Dieselben Vorteile gelten auch für den Einsatz von eBPF-Filterprogrammen zur Kernel-Ablaufverfolgung mit Kprobes, die 4.1 erstmals unterstützt. Den praktischen Einsatz zeigt ein kleines Beispielprogramm.

Die Infrastruktur für das Performance-Monitoring-Tool Perf unterstützt jetzt auch Processor Trace (PT). Dabei handelt es sich um eine Performance-Monitoring-Technik, die Intel bei den Core-i-Prozessoren der 5000er-Serie (Codename "Broadwell") eingeführt hat. Sie bietet deutlich mehr Möglichkeiten, daher haben die Kernel-Entwickler ihn als "hardware tracer on steroids" bezeichnet. Auch das in neueren Xeon-Prozessoren zu findende "Cache QoS Monitoring (CQM)" unterstützt Linux nun. Das und der erwähnte eBPF-Support für Kprobes sind nur drei der wichtigsten Änderungen in diesem Bereich; zahlreiche weitere erläutert ein Merge-Kommentar im Quellcodeverwaltungssystem.

Die Kernel-Ablaufverfolgung mit dem Function Tracer (Ftrace) gelingt jetzt über das neue virtuelle Dateisystem Tracefs. Bislang musste man zum Ftrace-Einsatz das Debugfs einhängen – das gewährt allerdings Zugriff auf viele andere Interna, was aus Sicherheitsgründen unerwünscht sein kann.

Der ARM64-Code enthält jetzt Basis-Unterstützung für ACPI. Diese in der x86-Welt allgegenwärtige Technik zur Hardware-Konfiguration und Interaktion mit dem Betriebssystem ist in der ARM-Linux-Welt bislang eher nur selten anzutreffen, denn dort werden Device Trees (DT) oder Platform-spezifische Kernel eingesetzt. Eine Reihe von ARM-Linux-Entwicklern hatte sich lange gegen ACPI auf ARM ausgesprochen, wie bei LWN.net und in der Dokumentation zur ACPI-ARM-Unterstützung nachzulesen ist. Viele in der x86-Welt aktive Server-Hersteller planen allerdings, ACPI bei zukünftigen ARM64-Servern einzusetzen.