ZFSonLinux 0.8: Funktionen, Stabilisierung, Intrigen. Naja, trimmen

Vor wenigen Tagen wurde eine neue stabile Version von ZFSonLinux veröffentlicht, einem Projekt, das mittlerweile eine zentrale Rolle in der Welt der OpenZFS-Entwicklung spielt. Auf Wiedersehen OpenSolaris, hallo wilde, GPL-CDDL-inkompatible Linux-Welt.

ZFSonLinux 0.8: Funktionen, Stabilisierung, Intrigen. Naja, trimmen
Nachfolgend finden Sie eine Übersicht über die interessantesten Dinge (natürlich 2200 Commits!) und zum Nachtisch – eine kleine Intrige.

Neue Funktionen

Am meisten erwartet wird natürlich native Verschlüsselung. Jetzt können Sie mit der integrierten Verschlüsselung von ZFS nur die Datensätze verschlüsseln, die Sie benötigen, und (was meiner Meinung nach am wichtigsten ist) Sie können verschlüsselte Daten senden über zfs senden und OHNE Entschlüsselung die Integrität der Daten mit integrierten Tools überprüfen, alle Möglichkeiten zur Wahrung der Integrität von ZFS-Daten stehen Ihnen zur Verfügung!

Als nächstes kommt das lang erwartete TRIMMEN. Ja, es hat sehr lange gedauert, bis er mit der Produktion beginnen konnte. Teilweise, weil das Problem des SSD-Verschleißes bei CoW-Dateisystemen nicht so kritisch ist. Aber jetzt sind wir alle ruhig - zpool trimmen wird unsere empfindlichen Flash-Laufwerke retten.

Jetzt kannst du entfernen zufällig hinzugefügte vdev-Arrays aus dem Pool (aber nur, wenn dieser spärlich oder gespiegelt ist). Eine nützliche Kleinigkeit.

Als nächstes auf unserer Hitparade: Pool-Checkpoints. Kurz gesagt: Snapshots des gesamten Zustands des Pools, ABER mit der Möglichkeit, nicht nur Änderungen an Daten, sondern auch an im Pool aktivierten Funktionen und Änderungen in der Struktur rückgängig zu machen. Eine weitere Chance, in Sicherheit zu bleiben.

Poolinitialisierung - Füllen des zugrunde liegenden Speichers mit Nullen. Nützlich für die Arbeit in Umgebungen mit Thin-Provisioning-Festplatten, um Speicherplatz explizit zuzuweisen und spätere unerwartete Leistungseinbußen zu vermeiden.

Projektabrechnung und Quote — Im bestehenden Quotenmechanismus ist es nun möglich, eine Aufteilung in Projekte vorzunehmen.

Kanalprogramme – die Möglichkeit, Verwaltungsaufgaben mithilfe von Lua-Skripten atomar auszuführen. Es gibt Beschränkungen hinsichtlich Ausführungszeit und Speicher. Wenn Sie sich für Automatisierung interessieren, ist dies das Richtige für Sie.

Direktes IO — der Einfachheit halber haben wir Direct IO übersprungen, im Inneren hat sich nichts geändert (die Aufrufe gehen einfach so weit wie möglich am Cache vorbei), aber jetzt muss sich Software, die in diesem Modus arbeiten möchte, nicht ärgern.

Projekt Pyzfs in das Haupt-Repository integriert und unter die Fittiche des ZFSonLinux-Projekts genommen. Jetzt gibt es mehr Tools zur Steuerung von Python aus (und Sie können sich auf die Modulunterstützung verlassen). Außerdem sind viele Python-Skripte für Python3 angepasst.

Und jetzt der leckere Teil - Produktivität

Bei Scrub- und Resilver-Operationen werden nun zunächst Metadaten gelesen und erst dann, soweit möglich, sequentiell in Form von Daten. Dadurch wird sichergestellt, dass die Array-Wiederherstellung und Integritätsprüfung mit maximaler Geschwindigkeit erfolgen.

Allokationsklassen – vdev-Arrays verfügen jetzt über einen neuen Medientyp: Jetzt können Sie die Speicherung von Metadaten/Deduplizierungstabellen (DDT)/Datenblöcken kleiner als X KB auf ein separates vdev-Array mit effizienteren Festplatten verschieben. Mehr Geschwindigkeit für den Gott der Geschwindigkeit! (und tatsächlich wird diese Möglichkeit in Zukunft sehr nützlich sein DRAID).

Viele Verwaltungsbefehle werden jetzt schneller ausgeführt, da Metadaten feinkörnig zwischengespeichert werden (z. B. zfs-Liste, zfs get).

Datenzuordnungsprozess parallelisiert, jetzt werden für jede Freispeicherpartition (Metaslab) mehrere Allocatoren erstellt. Natürlich werden Sie mit NVME nicht alles herausholen können, aber es wird besser.

Verzögerte Integritätswiederherstellung Das Laden des Arrays erfolgt nicht durch gleichzeitiges Neuzusammenstellen mehrerer Festplatten, sondern erfolgt sequentiell. Dadurch werden sowohl die Auswirkungen auf die Leistung als auch die Wiederherstellungszeit verringert.

Beim Importieren von Pools mit vielen Bänden Die Geschwindigkeit ihrer Registrierung im System wurde erhöht.

Auch QAT ermöglicht Ihnen jetzt, Verschlüsselungs- und Prüfsummenberechnungen hochzuladen.

Plus eine Reihe kleinerer Änderungen (immerhin enthält die Version mehr als 2000 Commits!).

Und zum Nachtisch - Intrigen

Obwohl ZFSonLinux schnell Unterstützung für aktuelle Linux-Kernel hinzufügt (derzeit werden die Versionen 2.6.32 - 5.1* unterstützt), zeigen die Kernel-Betreuer ein klares Desinteresse daran, Drittanbieter-Module zu unterstützen ("…uns interessiert nicht alles
externe Kernelmodule…
— greg kh»). Die für einen effizienten Betrieb im 5.0-Zweig erforderlichen Kernelaufrufe wurden auf GPL-only geändert . Auf Kerneln mit diesem Patch wird die ZFS-Leistung erheblich schlechter sein. Die Rettung besteht darin, dass diese Funktionalität auf der Modulseite implementiert werden kann, was höchstwahrscheinlich auch getan wird. In der Zwischenzeit können Sie sich ein Beispiel an NixOS nehmen - sie habe gerade den Patch im Kernel zurückgesetzt 🙂

Das Projekt beinhaltete auch einen Verhaltenskodex, der eine Welle heiliger Kriege auslöste. Aber wir blieben standhaft :)

Funktionierende Backups und stabile Releases für alle!

Nützliche Links:
- Veröffentlichung auf Github
- Meine Einführung in ZFS

Source: habr.com

Kommentar hinzufügen