Du installierst mal wieder ein neues Debian Betriebssystem und während der Installation wirst du nach dem Dateisystem und der Partitionierung gefragt? Dann wähle noch heute ZFS (Zettabyte File System) aus! Der Funktionsumfang in jeglicher Hinsicht ist bemerkenswert und auch du wirst sicherlich davon profitieren können. Ob in deinem PC zuhause, in der Cloud oder auf deinem Server, ZFS scheint sehr häufig die richtige Wahl zu sein.

Alle Funktionen im Schnellüberblick

  • Spiegelung von Festplatten, Partitionen und Dateien
  • Ähnlich wie RAID sind die ZPools:
    • Stripe
    • Mirror
    • RAIDz (ähnlich Raid-5)
    • RAIDz2 (ähnlich Raid-6)
  • Snapshots, mit das wichtigste auf Filesystem-Ebene
    • Auch für sehr performantes Backup nutzbar
  • Automatische Datenfehlerkorrektur
  • Deduplication (Daten-Deduplizierung) – ZFS Deduplizierung – So einfach geht Speicherplatz sparen
  • Compression (Komprimierung)
  • Sehr gute Performance, egal ob groß oder klein
  • ARC (Arbeitsspeicher LESE-Cache) [Adaptive Replacement Cache]
  • L2ARC (zusätzlicher SSD / Flash LESE-Cache) – ZFS Cache – ARC / L2ARC / LOG – ZIL // Der Performance Guide
  • ZIL/LOG (SSD / Flash SCHREIB-Cache)
  • Kloning
  • Verschlüsselung
  • Snapshotbasiertes Backup
  • Quotas (Logische Platzbegrenzung)
  • Lässt sich gut und einfach konfigurieren

Also, wat is denn nun ZFS und wann und wo kommt es zum Einsatz?

Naja, ZFS ist eben ein Dateisystem wie z.B. Ext3, Ext4 oder NTFS auch. Also es kann als Grundlage für das Betriebssystem, sowie weiteren Partitionen oder Teilbereichen genutzt werden. Bestes Beispiel ist hier FreeNAS. Dort ist ZFS fester Bestandteil und baut komplett auf ZFS auf. Viele der dort aufgeführten Features sind auf ZFS zurückzuführen. Ich nutze es in meiner Virtualisierungsumgebung, um von den Effizienzfaktoren profitieren zu können. Bei Virtuellen Maschinen kann gerade dabei viel Speicherplatz eingespart werden.
Bei Filesystemen mit viel Dateilese- / Schreiboperationen können die Schreib-/ Lesecache Features einen deutlichen Mehrwert und Performanceschub bringen. Natürlich kommt dieser Cache nicht aus dem Himmel, sondern aus einer SSD oder M.2. NVMe. Es muss noch nicht mal eine dedizierte SSD genutzt werden, sondern es reicht auch ein Teilbereich wie eine Partition.
Natürlich auch im eigentlichen Server macht ZFS durch Sinn. Besonders installierte Applikationen können von der Performance und Effizienzfeatures profitieren. In Testsystemen können Änderungen oder Versuche mit Cloning und Snapshots schnell durchgeführt werden.

Ihr merkt, ZFS kann eigentlich so überall eingesetzt werden und so fast jeder profitiert von irgendetwas aus dem Featurepool von ZFS.

Kurzum Datenintegrität und Datensicherheit (Verschlüsselung)

Natürlich kann ZFS auch die Integrität von Dateien überprüfen und macht dies auch im laufenden Betrieb. Die sogenannten Checksummen werden in anderen Teilbereichen des Dateisystems abgelegt als die Dateien an sich. Jederzeit kann Dateisystemprüfung händisch gestartet werden, wobei genau diese Checksummen nochmal geprüft werden.
Wer seine Daten gerne Verschlüsselt abgelegt haben möchte, auch hier hilft ZFS schnell weiter. Gängige AES-Verschlüsselungsmethoden verschlüsseln auf verschiedene Art und Weise das Dateisystem. Die Verschlüsselungs-Passwörter können selbst definiert oder von Keymanagern verwaltet werden.

Kernthemen: Spiegel, Kompression, Deduplikation & Snapshots

Meiner Meinung nach sind die hier erwähnten Kernthemen alleine schon der Grund ZFS häufiger einzusetzen. Nicht jeder unserer PCs hat einen eingebauten RAID-Controller, aber ZFS kann das als Software-Lösung trotzdem perfekt und hochperformant abdecken.
Die beiden Effizienz-Features Kompression & Deduplizierung fressen zwar etwas an CPU & RAM weg, machen sich aber unter Umständen deutlich im Speicherplatz bemerkbar. Aber dazu mehr in einem anderen Artikel.
Zu guter letzt die Snapshots. Wenn man das Dateisystem in Teilbereiche (Datasets) unterteilt, können sogar auf dieser Ebene Snapshots erstellt werden. Dabei ergeben sich so einige Einsatzzwecke wo es durchaus sehr Sinnvoll ist Snapshots einzuplanen. Ein mächtiges Feature was auch in einem weiteren Artikel beschrieben wird.

Fazit

Jeder Linux / Unix Interessierte muss sich mal mit ZFS beschäftigt und probiert haben. Für sehr viele Einsatzszenarien bietet sich ZFS mehr als nur an. Wenn die eingesetzte Umgebung ein bisschen RAM und CPU übrig hat, sollte man sofort darüber nachdenken die Effizienz Features zu aktivieren. Meine klare Empfehlung lautet besonders diese im Virtualisierungsbereich zu nutzen. Bei Fileservices (NFS, CIFS) bieten sich die Snapshots gerade an bei der täglichen Arbeit zu unterstützen. Ist eine Datei mal verloren oder beschädigt, lässt sich diese sofort wiederherstellen zu einem Zeitpunkt wo der Snapshot erstellt worden ist. Also denkt über euren nächsten Einsatz nach, ob ZFS euch nicht einen erheblichen Benefit bringen kann.