ZFSonLinux 0.8: Funktionen, Stabilisierung, Intrigen. Nun, trimm

Erst neulich veröffentlichten sie die neueste stabile Version von ZFSonLinux, einem Projekt, das jetzt für die OpenZFS-Entwicklungswelt von zentraler Bedeutung ist. Auf Wiedersehen OpenSolaris, hallo heftige GPL-CDDL-inkompatible Linux-Welt.

Bild

Unter dem Schnitt ist eine Übersicht über die interessantesten Dinge (immer noch 2200 Commits!) Und zum Nachtisch - eine kleine Intrige.

Neue Chips


Am meisten erwartet wird natürlich die native Verschlüsselung . Jetzt können Sie nur die erforderlichen Datensätze mit der in ZFS integrierten Verschlüsselung verschlüsseln und (meiner Meinung nach die Hauptsache) - Sie können verschlüsselte Daten über zfs send und OHNE Entschlüsselung senden , um die Integrität der Daten mithilfe der integrierten Tools zu überprüfen. Alle Optionen zur Aufrechterhaltung der Integrität von ZFS-Daten stehen Ihnen zur Verfügung!

Weiter wichtig ist das lang erwartete TRIM . Ja, er hat sehr lange gebraucht, um zur Produktion zu gelangen. Zum Teil, weil das Problem des SSD-Verschleißes für CoW-Dateisysteme nicht so kritisch ist. Aber jetzt sind wir alle ruhig - zpool trim rettet unsere zarten Flash-Laufwerke.

Jetzt können Sie zufällig hinzugefügte vdev-Arrays aus dem Pool löschen (jedoch nur, wenn es spärlich oder spiegelbildlich ist). Nützliche Kleinigkeit.

Weiter in unseren Diagrammen - Pool Checkpoints . Kurz gesagt - Schnappschüsse für den gesamten Status des Pools, ABER die es ermöglichen, Änderungen nicht nur an Daten, sondern auch an Funktionen und Änderungen in der im Pool enthaltenen Struktur zurückzusetzen. Eine weitere Gelegenheit, um sicher zu sein.

Poolinitialisierung - Füllen des zugrunde liegenden Speichers mit Nullen. Nützlich für die Arbeit in Thin Provisioning-Festplattenumgebungen, um Speicherplatz explizit zuzuweisen und später unerwartete Leistungsprobleme zu beseitigen.

Projektbuchhaltung und Quote - Im bestehenden Quotenmechanismus ist es jetzt möglich, die Trennung in Projekte zu verwenden.

Kanalprogramme - die Fähigkeit, Verwaltungsaufgaben mithilfe von Lua-Skripten atomar auszuführen. Laufzeit und Speicher sind begrenzt. Wenn Sie automatisieren, ist dies für Sie.

Direct IO - der Einfachheit halber haben sie die Arbeit von Direct IO gedreht, nichts hat sich im Inneren geändert (nur Aufrufe gehen bis zum Cache), aber jetzt wird die Software, die in diesem Modus arbeiten möchte, nicht trauern.

Das Pyzfs- Projekt wird in das Haupt-Repository gegossen und unter die Fittiche des ZFSonLinux-Projekts gestellt. Jetzt gibt es mehr Tools zum Verwalten von Python (nun, es wird ruhiger für die Unterstützung des Moduls sein). Auch viele Python-Skripte sind für Python3 angepasst.

Und jetzt lecker - Leistung


Bei Scrub- und Resilver-Vorgängen werden jetzt zuerst Metadaten und dann in der sequentiellsten Form Daten ausgelesen. Somit werden die Array-Wiederherstellung und die Integritätsprüfung mit maximaler Geschwindigkeit durchgeführt.

Zuordnungsklassen - vdev-Arrays haben einen Medientyp. Jetzt können Sie den Speicher von Metadaten / Deduplizierungstabellen (DDT) / Datenblöcken mit weniger als X KByte von effizienteren Festplatten auf ein separates vdev-Array übertragen. Mehr Geschwindigkeit für den Gott der Geschwindigkeit! (und in diesem Fall ist diese Funktion im kommenden DRAID sehr nützlich).

Viele Verwaltungsbefehle arbeiten jetzt schneller, da Metadaten punktbasiert zwischengespeichert werden (z. B. zfs list, zfs get ).

Der Prozess der Datenzuweisung wird parallelisiert , jetzt werden für jeden Abschnitt des freien Speicherplatzes (Metaslab) mehrere Zuweiser erstellt. Mit NVME wird natürlich nicht alles herausgedrückt, aber es wird besser.

Eine verzögerte Wiederherstellung der Integrität des Arrays ermöglicht es, das Array nicht bei gleichzeitigem Zusammenbau mehrerer Festplatten zu laden, sondern nacheinander. Dies verringert sowohl die Auswirkungen auf die Leistung als auch die Zeit des Zusammenbaus.

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

Mit QAT können Sie jetzt auch die Berechnung von Verschlüsselung und Prüfsummen hochladen.

Plus eine Reihe kleinerer Änderungen (trotzdem 2000+ Commits in der Veröffentlichung!).

Zum Nachtisch - Intrige


Obwohl ZFSonLinux schnell Unterstützung für neue Linux-Kernel hinzufügt (Versionen 2.6.32 - 5.1 * werden jetzt unterstützt), sind Kernel-Betreuer eindeutig nicht daran interessiert, Modulen von Drittanbietern zu helfen (" ... das interessiert uns überhaupt nicht)
externe Kernelmodule ... - greg kh "). Daher wurden die Kernelaufrufe, die für einen effizienten Betrieb in Zweig 5.0 erforderlich sind, auf Nur-GPL geändert . In Kerneln mit diesem Patch ist die ZFS-Leistung viel schlechter. Dies spart, dass diese Funktionalität implementiert werden kann an die Seite des Moduls, was wahrscheinlich gemacht wird. In der Zwischenzeit können Sie ein Beispiel von NixOS nehmen - sie haben gerade den Patch im Kernel zurückgesetzt :)

Das Projekt erschien auch Code of Conduct, der eine Welle von Holivarov erzeugte. Aber wir haben uns gewehrt :)

Alle funktionierenden Backups und stabilen Releases!

Nützliche Links:
- Auf Github loslassen
- mein Intro zu ZFS

Source: https://habr.com/ru/post/de453400/


All Articles