Die Veröffentlichung des OpenZFS 2.1-Projekts, das die Implementierung des Dateisystems ZFS für Linux und FreeBSD weiterentwickelt, wurde bekannt gegeben. Das Projekt erlangte Bekanntheit als 'ZFS on Linux' und beschränkte sich zuvor auf die Entwicklung eines Moduls für den Linux-Kernel. Nach der Einführung der Unterstützung für FreeBSD wurde es jedoch als die Hauptimplementierung von OpenZFS anerkannt und der Verweis auf Linux im Namen wurde entfernt.
Die Arbeit mit OpenZFS wurde mit Linux-Kerneln von 3.10 bis 5.13 und allen FreeBSD-Zweigen ab 12.2-RELEASE getestet. Der Code wird unter der freien Lizenz CDDL veröffentlicht. OpenZFS wird bereits in FreeBSD verwendet und ist Bestandteil der Distributionen Debian, Ubuntu, Gentoo, Sabayon Linux und ALT Linux. Pakete mit der neuen Version werden in naher Zukunft für alle gängigen Linux-Distributionen, darunter Debian, Ubuntu, Fedora und RHEL/CentOS, vorbereitet.
OpenZFS bietet eine Implementierung von ZFS-Komponenten, die sowohl mit der Funktionsweise des Dateisystems als auch mit dem Betrieb des Volume-Managers verbunden sind. Insbesondere sind die Komponenten SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) und ZPL (ZFS POSIX Layer) implementiert. Zusätzlich stellt das Projekt die Möglichkeit zur Verfügung, ZFS als Backend für das Cluster-Dateisystem Lustre zu verwenden. Die Entwicklungen des Projekts basieren auf dem Original-ZFS-Code, der aus dem OpenSolaris-Projekt importiert und durch Verbesserungen und Korrekturen aus der Illumos-Community erweitert wurde. Das Projekt wird mit der Unterstützung von Mitarbeitern des Lawrence Livermore National Laboratory im Rahmen eines Vertrags mit dem US-Energieministerium weiterentwickelt.
Der Code wird unter der Open-Source-Lizenz CDDL verbreitet, die mit GPLv2 inkompatibel ist. Dies verhindert die Integration von OpenZFS in den Hauptzweig des Linux-Kernels, da eine Mischung von Code unter den Lizenzen GPLv2 und CDDL unzulässig ist. Um diese Lizenzinkompatibilität zu umgehen, wurde die Entscheidung getroffen, das Produkt vollständig unter der Lizenz CDDL als separat ladbares Modul bereitzustellen, das unabhängig vom Kernel geliefert wird. Die Stabilität der OpenZFS-Codebasis wird als vergleichbar mit anderen Dateisystemen für Linux eingeschätzt.
Hauptänderungen:
- Unterstützung der dRAID-Technologie (Distributed Spare RAID) hinzugefügt, die eine Variante von RAIDZ mit integrierter verteilt arbeitender Blockverarbeitung für Hot-Spare-Wiederherstellung darstellt. dRAID hat alle Vorteile von RAIDZ geerbt, ermöglicht jedoch eine signifikante Steigerung der Geschwindigkeit der Speicherneubildung (Resilvering) und der Wiederherstellung von Redundanzen im Array. Der virtuelle Speicher von dRAID wird aus mehreren internen Gruppen von RAIDZ gebildet, wobei jede dieser Gruppen sowohl Datenspeichergeräte als auch Paritätsgeräte enthält. Diese Gruppen sind auf alle Laufwerke verteilt, um die verfügbare Bandbreite der Festplatten optimal zu nutzen. Anstelle einer einzelnen Festplatte für die Hot-Spare-Wiederherstellung wird in dRAID das Konzept der logischen Verteilung von Hot-Spare-Blöcken über alle Laufwerke im Array angewendet.

- Eigenschaft „compatibility“ („zpool create -o compatibility=off|legacy|file[,file…] pool vdev“) implementiert, die es dem Administrator ermöglicht, eine Reihe von Funktionen auszuwählen, die im Pool aktiviert werden sollen, um tragbare Pools zu erstellen und die Kompatibilität der Pools zwischen verschiedenen Versionen von OpenZFS und unterschiedlichen Plattformen aufrechtzuerhalten.
- Möglichkeit hinzugefügt, Pool-Statistiken im Format der InfluxDB-Datenbank zu speichern, die für die Speicherung, Analyse und Manipulation von Daten in Form von Zeitreihen optimiert ist (Messwerte über festgelegte Zeitintervalle). Zum Export im InfluxDB-Format wurde der Befehl „zpool influxdb“ vorgeschlagen.
- Unterstützung für Hot-Plugged RAM und CPU hinzugefügt.
- Neue Befehle und Optionen:
- „zpool create -u“ — automatische Montage deaktivieren.
- „zpool history -i“ — zeigt in der Befehlshistorie die Ausführungsdauer jedes Befehls an.
- „zpool status“ — Ausgabe einer Warnung für Festplatten mit nicht optimaler Blockgröße hinzugefügt.
- „zfs send —skip-missing|-s“ — ignoriert fehlende Snapshots während des Sendestreams zur Replikation.
- „zfs rename -u“ — Umbenennung des FS ohne erneutes Einbinden.
- In arcstat wurde die Unterstützung für L2ARC-Statistiken hinzugefügt, und die Optionen „-a“ (alle) und „-p“ (auswertbar) wurden hinzugefügt.
- Optimierungen:
- Die Leistung der interaktiven Ein-/Ausgabe wurde verbessert.
- Die Pre-Fetch-Leistung für datenintensive parallele Zugriffsbelastungen wurde beschleunigt.
- Die Skalierbarkeit wurde verbessert, indem Blockierkonflikte reduziert wurden.
- Die Importzeit des Pools wurde verkürzt.
- Die Fragmentierung der ZIL-Blöcke wurde verringert.
- Die Leistung rekursiver Operationen wurde verbessert.
- Das Speichermanagement wurde optimiert.
- Die Ladezeit des Kernel-Moduls wurde beschleunigt.
Quelle: opennet.ru

