ZFSonLinux 0.8: Funktionen, Stabilität, Intrigen. Und natürlich trim

Vor wenigen Tagen wurde die neueste stabile Version von ZFSonLinux veröffentlicht, einem Projekt, das nun zentral in der Entwicklung von OpenZFS steht. Lebewohl, OpenSolaris, willkommen in der rauen, GPL-CDDL-inkompatiblen Welt von Linux.

ZFSonLinux 0.8: Funktionen, Stabilität, Intrigen. Und natürlich trim
Im Folgenden finden Sie eine Übersicht über die spannendsten Neuerungen (was für eine Überraschung, 2200 Commits!), und zum Dessert – ein bisschen Intrigen.

Neue Funktionen

Natürlich die am meisten erwartete – natives Verschlüsselung. Jetzt können Sie nur die benötigten Datensätze mit der in ZFS integrierten Verschlüsselung schützen, und (meiner Meinung nach das Wichtigste) – Sie können verschlüsselte Daten über zfs send ohne Entschlüsselung die Datenintegrität mit den integrierten Mitteln überprüfen, alle Möglichkeiten zur Sicherstellung der Datenintegrität von ZFS stehen Ihnen zur Verfügung!

Dann erwähnen wir das seit langem erwartete TRIM. Ja, es hat sehr lange bis zur Produktionsreife gedauert. Das liegt teilweise daran, dass es bei CoW-Dateisystemen nicht so kritisch ist, das Problem mit der Abnutzung von SSDs zu lösen. Aber jetzt sind wir alle beruhigt – zpool trim wird unsere sensiblen Flash-Laufwerke retten.

Jetzt ist es möglich, versehentlich hinzugefügte vdev Arrays aus dem Pool zu entfernen (aber nur, wenn es sparse oder mirror ist). Eine nützliche Kleinigkeit.

Als nächstes in unserem Hit-Parade – Pool-Checkpoints. Kurz gesagt – Snapshots für den gesamten Status des Pools, ABER mit der Möglichkeit, Änderungen nicht nur an den Daten, sondern auch an den aktivierten Funktionen und strukturellen Änderungen im Pool zurückzusetzen. Eine weitere Möglichkeit zur Erhöhung der Sicherheit.

Pool-Initialization – das Auffüllen des zugrunde liegenden Speichers mit Nullen. Nützlich für den Einsatz in Umgebungen mit dünn provisionierten Festplatten, um den Speicher explizit zuzuweisen und unerwartete Leistungseinbrüche in der Zukunft zu vermeiden.

Projektabrechnung und Quota – im bereits vorhandenen Quota-Mechanismus ist es nun möglich, eine Aufteilung nach Projekten zu verwenden.

Channel-Programme – die Möglichkeit, administrative Aufgaben atomar mithilfe von Lua-Skripten auszuführen. Es gibt Einschränkungen hinsichtlich der Ausführungszeit und des Speichers. Wenn Sie sich mit Automatisierung beschäftigen, ist dies genau das Richtige für Sie.

Direct IO – zur Vereinfachung haben wir die Arbeit mit Direct IO umgesetzt, intern hat sich nichts geändert (die Aufrufe gehen einfach maximal um den Cache herum), sodass Software, die in diesem Modus arbeiten möchte, nicht mehr leidet.

Projekt Pyzfs in das Haupt-Repository integriert und unter das Dach des Projekts ZFSonLinux gestellt. Jetzt gibt es mehr Werkzeuge zur Verwaltung aus Python (und die Unterstützung des Moduls wird ruhiger sein). Auch viele Python-Skripte wurden auf Python3 angepasst.

Jetzt wird's lecker – Leistung

Bei scrub- und resilver-Operationen werden zunächst die Metadaten eingelesen und anschließend die Daten in maximal sequentieller Form. Dadurch wird die Wiederherstellung des Arrays und die Überprüfung der Integrität mit maximaler Geschwindigkeit durchgeführt.

Zuweisungsklassen – bei vdev-Arrays gibt es jetzt einen neuen Speichertyp. Somit können die Speicherung der Metadaten/de-duplicierungs-Tabellen (DDT)/Datenblöcke von weniger als X KByte auf ein separates vdev-Array leistungsstärkerer Festplatten ausgelagert werden. Mehr Geschwindigkeit dem Gott der Geschwindigkeit! (und in der Tat – diese Möglichkeit wird sich in naher Zukunft als sehr nützlich erweisen) DRAID).

Viele Administrationsbefehle arbeiten jetzt schneller dank gezielter Zwischenspeicherung von Metadaten (zum Beispiel, zfs list, zfs get).

Der Datenallokationsprozess wird parallelisiert, jetzt wird für jeden freien Speicherbereich (metaslab) mehrere Allokatoren erstellt. Mit NVME kann man zwar nicht alles herausholen, aber es wird besser.

Die verzögerte Wiederherstellung der Integrität des Arrays ermöglicht es, das Array nicht mit der gleichzeitigen Rekonstruktion mehrerer Festplatten zu belasten, sondern macht dies nacheinander. Dadurch werden sowohl die Leistungseinbußen als auch die Rekonstruktionszeit reduziert.

Beim Import von Pools mit einer großen Anzahl an Volumes wurde die Geschwindigkeit ihrer Registrierung im System erhöht.

Außerdem QAT ermöglicht nun den Export von Berechnungen für Verschlüsselung und Prüfziffern.

Zusätzlich eine Reihe kleiner Änderungen (schließlich über 2000 Commits in diesem Release!).

Und als Bonus — etwas Spannung

Obwohl ZFSonLinux schnell Unterstützung für neue Linux-Kernel hinzufügt (derzeit werden Versionen 2.6.32 — 5.1* unterstützt), zeigen die Kernel-Maintainer ein deutliches Desinteresse an der Unterstützung externer Module („…uns kümmern externe Kernel-Module überhaupt nicht…
— greg k-h“). So wurden die für die effiziente Funktionsweise erforderlichen Kernel-Aufrufe in der Version 5.0
auf GPL-only geändert . In Kerneln mit diesem Patch wird die Leistung von ZFS erheblich schlechter sein. Positiv ist, dass diese Funktionalität auf der Modulseite realisiert werden kann, was höchstwahrscheinlich auch geschehen wird. In der Zwischenzeit können Sie sich ein Beispiel an NixOS nehmen — sie haben einfach den Patch im Kernel zurückgenommen. Das Projekt hat auch einen Code of Conduct eingeführt, was eine Welle von Debatten ausgelöst hat. Aber wir haben standgehalten 🙂 🙂

Allen erfolgreiche Backups und stabile Releases!

Release auf Github

Nützliche Links:
meine Einführung in ZFS
SSH-Verbindung zu Windows wie in Linux

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster