Etwa zwei Jahre und 5 RC-Versionen benötigten die Entwickler von ZFS on Linux (kurz ZoL), um eine sehr bedeutende Version herauszubringen – ZFS-0.8.0.
Neue Funktionen:
- „Natives“ Verschlüsselungssystem sowohl für Dateisysteme als auch für Partitionen. Standardmäßig wird der Algorithmus aes-256-ccm verwendet. Die Schlüssel für das Dataset werden über den Befehl „zfs load-key“ und die zugehörigen Unterbefehle verwaltet.
- Verschlüsselung bei zfs send/receive. Ermöglicht das Speichern von Backups auf unsicheren Diensten, ohne dass eine Kompromittierung möglich ist.
- Entfernung eines Geräts aus dem Pool über den Befehl „zpool remove“. Alle Daten werden im Hintergrund auf die verbleibenden Obergeräte kopiert, wodurch die Kapazität des Pools entsprechend verringert wird.
- Der Unterbefehl „zpool checkpoint“ ermöglicht das Speichern des gesamten Zustands des Pools, sodass man bei Bedarf zu diesem genauen Zustand zurückkehren kann. Dies kann als erweitertes Snapshot des Pools betrachtet werden. Dies ist nützlich bei der Durchführung komplexer administrativer Aufgaben, die andernfalls nicht rückgängig gemacht werden können (zum Beispiel das Aktivieren einer neuen Funktion, das Löschen eines Datasets und so weiter).
- TRIM für Poolgeräte. Dies ermöglicht eine effizientere Nutzung von Solid-State-Laufwerken und verhindert eine Verringerung ihrer Leistung und/oder Lebensdauer. Trim kann entweder als separater Befehl „zpool trim“ ausgeführt oder als Option „discard“ im neuen Poolattribut „autotrim“ aktiviert werden.
- Initialisierung des Pools. Der Unterbefehl „zpool initialize“ schreibt sein Muster in den gesamten nicht zugeordneten Speicher. Dies beseitigt den anfänglichen Leistungsabfall bei Zugriffen, der in einigen virtualisierten Speicherumgebungen (z. B. VMware VMDK) auftreten kann.
- Unterstützung für Projektabrechnung und Kontingente.. Diese Funktion fügt die Nutzungserfassung von Projekten und Kontingenten zu den bestehenden Funktionen der Raum- und Kontingentserfassung hinzu. Projektkontingente fügen den traditionellen Kontingenten für Benutzer/Gruppen eine zusätzliche Dimension hinzu. Die Unterbefehle „zfs project“ und „zfs projectspace“ wurden hinzugefügt, um Projekte zu verwalten, Kontingentgrenzen festzulegen und Nutzungberichte zu erstellen.
- Kanalprogramme.. Der Unterbefehl „zpool program“ ermöglicht die Verwendung von LUA-Skripten zur Durchführung administrativer Aufgaben. Die Skripte werden in einer „Sandbox“ mit Zeit- und Speicherkontingenten ausgeführt.
- Pyzfs. Neue Python-Bibliothek zur Bereitstellung einer stabilen Schnittstelle für die Verwaltung von ZFS. Diese Wrapper implementiert eine eins-zu-eins Zuordnung für die Funktionen der libzfs_core API, bietet jedoch Signaturen und Typen, die für den Python-Dialekt natürlicher sind.
- Kompatibilität mit Python3. Die Tools „arcstat“, „arcsummary“ und „dbufstat“ wurden zur Unterstützung von Python3 aktualisiert.
- Direct IO. Unterstützung für die Verwendung des direkten Zugriffs (O_DIRECT) hinzugefügt.
Die Unterbefehle scrub/resilver/list/get wurden ebenfalls beschleunigt, und es besteht die Möglichkeit, Metadaten auf ein separates Gerät (z. B. eine leistungsstarke, kleine SSD) auszugeben. Die Leistung von ZIL wurde durch Caching und Optimierung verbessert, und die Unterstützung für die Hardwarebeschleunigung von SHA256-Checksummen und AES-Verschlüsselung mit Intel QAT (Quick Assist Technology) wurde hinzugefügt.
Unterstützte Linux-Kernel: 2.6.32 — 5.1 (auf Kerneln 5.0 und höher wird SIMD-Beschleunigung derzeit nicht unterstützt)
Vollständige Änderungsliste
Die Standardwerte für die Modulparameter wurden gewählt, um eine optimale Belastung für die meisten Arbeitslasten und Konfigurationen zu gewährleisten. Für eine vollständige Liste der Optionen — man 5 zfs-module-parameters
Quelle: linux.org.ru
