ZFS unter FreeBSD – Datensicherheit auf neuen Wegen

© Noel Powell, 123RF.com

Astronomisch

Das von Sun entwickelte Dateisystem ZFS ist unter Solaris eine feste Größe. Es bietet Eigenschaften, die konventionelle Dateisysteme von FreeBSD, Linux oder OS X vermissen lassen. Der ZFS-Port für FreeBSD bringt das leistungsfähige System für Anwender freier Software in Reichweite.
Mit den Tipps und Workshops im ADMIN-Magazin 03/2013 sichern Administratoren ihre Webserver und Netze gegen Angriffe ab: gegen Abhören sensibler Informationen, ... (mehr)

Im Jahr 2004 trat ein neues und extrem leistungsfähiges Dateisystem mit integriertem Volume Management die Bühne der Betriebssysteme: das Zettabyte Filesystem oder kurz ZFS. Das von Sun entwickelte Dateisystem ist als Antwort auf den stetig steigenden Speicherbedarf moderner Anwendungen konzipiert. Auch die zunehmende Anforderung an Datensicherheit spielte bei der Entwicklung eine große Rolle.

Zum Glück für die Open-Source-Welt wurde der Quelltext von ZFS freigegeben. Dies ermöglichte FreeBSD-Entwicklern – allen voran Pawel Jakub Dawidek – ZFS in die FreeBSD-Welt zu portieren. Es war eine gewaltige, aber sehr erfolgreiche Kraftanstrengung, die FreeBSD für Anwendungen im Bereich der Web- und Maildienste attraktiv machen.

Kompensiert

In Zeiten immer weiter fallender Festplattenpreise stellt sich die Frage, ob man die für eine Firma lebenswichtigen Daten diesen Massenspeichern noch anvertrauen darf. Der Grund liegt nicht nur in der mechanischen Stabilität. Es ist auch die immer weiter steigende Packungsdichte der einzelnen Sektoren, die nicht unbedingt für höhere Datensicherheit sorgt.

Angesichts dieser Umstände wurde bei ZFS ein mehr als dreißig Jahre altes Dateisystemkonzept umgekrempelt. So sehen Dateisysteme wie Ext4 oder UFS2 nur die Verwaltung von Dateien, Attributen und Berechtigungen vor, aber nicht das Management von Datenträgern.

Hier setzt ZFS an. Es verwaltet nicht nur die extrem großer Speichermengen, sondern bietet auch einen integrierten Volume-Manager, Transaktionsmechanismen und Snapshots. Teilweise macht es dabei Anleihen bei der RAID-Technologie, die ebenfalls den um sich greifenden Einsatz preisgünstiger Festplatten berücksichtigte.

Sicher ist auch UFS2 ein leistungsfähiges Dateisystem, aber wenn die Speicherkapazität eines Datenträgers ausgeschöpft ist, wird UFS2 sehr langsam. Das liegt an den relativ ineffizienten Algorithmen zur Datenverwaltung.

Auch UFS2 bietet Snapshots, aber sie weisen gegenüber ZFS entscheidende Nachteile auf: Sie belegen sehr viel Speicherplatz, machen das Dateisystem fühlbar langsamer und sind in der Administration sehr umständlich. Weiterhin machen die klassischen Dateisysteme nach einem Systemabsturz einen sehr langen und speicherintensiven Filesystem-Check notwendig.

Einige dieser Probleme beseitigt der unter FreeBSD verfügbare Journaling-Mechanismus Gjournal, allerdings erkauft man sich damit auch weitere Probleme, wie die technische Beschreibung von ZFS zeigen wird.

Speicherhungrig

Natürlich hat ZFS gegenüber UFS2 auch Nachteile. Ein Minuspunkt von ZFS gegenüber anderen Dateisystemen ist, dass es sehr viel Arbeitsspeicher benötigt. Von daher scheiden für einen effektiven Einsatz 32-Bit-Systeme wie FreeBSD/386 aus, da der Adressraum mit maximal drei GByte nicht mehr dafür ausreicht, ZPools im TByte-Bereich zu verwalten. Mit der 64-Bit-Version von FreeBSD (amd64), die für Intel- und AMD-Systeme bereitsteht, macht der Betrieb von ZFS mit etwa vier GByte richtig Spaß und ZFS zeigt seine Leistungsfähigkeit. Zunächst ein kurzer Überblick über die Merkmale von ZFS:

  • Datenintegrität wird durch Prüfsummen über die Daten erreicht.
  • Es lassen sich mehrere Speichereinheiten zu einem Storage Pool zusammenfassen.
  • Jede ZFS-Dateioperation findet als Transaktion statt, die in einem Journal protokolliert wird.
  • Es lassen sich Shares für SMB/CIFS oder NFS anlegen und es besteht die Möglichkeit, ein Volume als iSCSI-Target oder für Swapping zu definieren. Die FreeBSD-Version bietet im Moment allerdings nur NFS.
  • Um die Administration der Pools zu erleichtern, stehen statt langer Skripte einfache und leicht erlernbare Befehle zur Verfügung. Die Unabhängigkeit vom Endian-Typ erleichtert die Administration zusätzlich.
  • ZFS erkennt und korrigiert versteckte Fehler in der Datenübertragung (End-to-End Data Integrity).
  • Bei ZFS handelt es sich um ein 128-Bit-Filesystem. Das bedeutet, es lassen sich 256 Quadrillionen Zettabytes verwalten. Verzeichnisse dürfen bis zu 256 Trillionen (= 248) Einträge aufnehmen. An diesen Werten lässt sich ablesen, dass es keine realistische Grenze für die Zahl der Dateien in ZFS gibt.
  • ZFS interpretiert den Begriff "Datensatz" oder "Dataset" neu: Für konventionelle Dateisysteme ist ein Datensatz ein Datenpaket. Bei ZFS ist es aber ein Abschnitt im Dateisystem, der die Möglichkeit bietet, nach dem Mounten Daten zu speichern.

Um die Gründe für die Leistungsfähigkeit von ZFS zu verstehen, muss man in die Tiefen dieser Software hinabsteigen. Abbildung 1 zeigt den prinzipiellen Aufbau.

Abbildung 1: Aufbau von ZFS.
comments powered by Disqus

Artikel der Woche

Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2018