Sun-Dateisystem ZFS unter Linux nutzen

Große Versuchung

Das Dateisystem ZFS setzt Maßstäbe. Unter Linux ist aber Vorsicht geboten, denn das Zusammenspiel klappt noch nicht immer reibungslos, es drohen Datenverluste.

Das Funktionsspektrum des Dateisystems ZFS passt zu den Anforderungen moderner Geheimdienste. Ein Schelm, wer denkt, dass NSA und GCHQ insgeheim bei Sun Microsystems die Entwicklung eines Dateisystems in Auftrag gegeben hätten, das in Bezug auf Kapazität und Features den ultimativen Wurf markiert.

Ganz gleich, ob ziviles Projekt oder getarnte Regierungsarbeit – sicher ist, dass Sun Mitte 2006 das Betriebssystem Solaris 10 freigab, zu dessen Bestandteilen eben jenes Dateisystem gehörte, das mit einer Reihe Spezialfunktionen und Superlativen aufwartet. ZFS stand dabei ursprünglich für "Zettabyte File System" und spielt auf die nutzbare Größe sowie – mit der späten alphabetischen Einordnung – auf die Endgültigkeit des Dateisystems an [1].

ZFS wurde für die Verwendung mit 128-Bit-Zeigern entworfen, was das Speichern geradezu abstrus großer Datenmengen erlauben würde. Das kommentierte der Chefentwickler von ZFS, Jeff Bonwick, einmal mit der Anmerkung, dass ZFS die quantenmechanische Grenze irdischer Datenspeicherung übersteigen würde: "Man könnte einen 128-Bit-Speicher-Pool nicht füllen, ohne die Ozeane zu verdampfen." Damit spielte er auf die Tatsache an, dass die Gesetze der Quantenmechanik eine Mindestmenge von Energie pro Informationseinheit erzwingen, soll die Information nicht aufgrund der quantenmechanischen Unschärfe verloren gehen. Bei einem Speicherpool mit 128-Bit-Adressierung übersteige diese Energiemenge jene, die zum Verdampfen aller irdischen Ozeane nötig wäre.

So unterstützen denn auch alle existierenden ZFS-Implementationen nur 64-Bit-Zeiger, nicht zuletzt aufgrund der entsprechender Restriktionen der Programmiersprache C hinsichtlich von Datentypen. Doch auch ungeachtet dieser "Beschränkung" kann ZFS noch mit beeindruckenden Rahmenwerten glänzen, wie einer maximalen Dateigröße von 16 Exbibyte (rund 17 Millionen TByte) oder bis 281 Billionen möglichen Dateien pro Dateisystem.

Daneben weist ZFS eine Reihe innovativer Eigenschaften auf. Als Copy-on-Write-Dateisystem überschreibt es geänderte Blöcke nicht, sondern speichert diese stattdessen an einen freien Platz im Dateisystem und aktualisiert danach die entsprechenden Verweise in den Metadaten. Was zunächst wie eine Verschwendung von Speicher wirken mag, bietet einige interessante Vorteile, wie etwa die Möglichkeit, ganz einfach Snapshots anzulegen: Dazu genügt es, in den Metadaten der geänderten Dateien die Verweise auf die modifizierten Datenblöcke zu erhalten.

ZFS integriert softwarebasierte RAID-Funktionen, speziell die viel verwendeten Level 1, 5 und 6. Das erhöht durch Speichern der Daten über mehrere Festplatten hinweg die Ausfallsicherheit, ohne spezielle Hardware zu erfordern. Eine ausgefeilte Technik namens RAID-Z macht es dabei möglich, die Größe der Dateisysteme im Betrieb zu erhöhen. Zusätzlich enthält ZFS ein an den LVM (Logical Volume Manager) angelehntes Volume-Management. Damit fassen Sie mehrere Partitionen und Festplatten zu einer logischen Einheit zusammen und erzeugen so sehr große Kapazitäten.

Über Prüfsummen bietet ZFS Schutz vor Fehlern beim Übertragen der Daten. Beim Speichern eines Blocks erzeugt das Dateisystem eine Checksumme, die es separat speichert und beim Lesen mit den Daten vergleicht. Das stellt sicher, dass stets konsistente Daten vorliegen – selbst wenn diese eventuell nicht aktuell sind. Das gilt insbesondere für Stromausfälle oder ähnliche plötzliche Ereignisse. Zu den weiteren Funktionen gehören Deduplizierung, absichtlich duplizierte sogenannte Ditto-Blöcke, komprimierte Daten sowie sehr einfach zu bedienende Werkzeuge zum Administrieren.

Dem gegenüber stehen einige Nachteile: So benötigt das Dateisystem eine Menge RAM (echten Hardware-Speicher, keinen virtuellen). Sun empfiehlt 1 GByte pro ZFS-Dateisystem. Auf dem Smartphone oder Raspberry Pi kommt ZFS daher wohl eher nicht zum Einsatz. Allerdings gibt es seit einiger Zeit ein Projekt, das genau diese Zielsetzung hat [2]. Neben dem Speicherhunger fällt das Dateisystem auch durch hohen Leistungsbedarf unangenehm auf: ZFS-Funktionen beanspruchen mehr Rechenzeit als solche eines Ext2- oder ähnlichen Dateisystems.

ZFS unter Linux

ZFS unterliegt der "Common Development and Distribution License", die es nicht erlaubt, binäre Pakete frei zu verteilen. Das gilt jedoch nicht für die Weitergabe von Quelltexten, sodass die Distributionen hier einen Umweg gehen: Sie laden die Quelltexte und kompilieren diese, sodass die benötigten Tools und Module für den Kernel entstehen. Die landen anschließend in einem Paket, welches der Paketmanager letztlich installiert.

Normalerweise funktioniert das ganz gut, aber wie so oft steckt der Teufel im Detail. Bevor Sie sich anhand auftauchender Fehlermeldungen auf die Suche machen, sollten Sie vor allem Folgendes prüfen: Sind die Header-Files des aktuellen Kernels installiert und auch aktuell? Stehen die essenziellen Tools zum Kompilieren bereit?

Unter Linux gibt es derzeit zwei Ansätze, um ZFS zu nutzen. Seit 2011 existiert das Projekt "ZFS on FUSE" [3], welches das Dateisystem über einen Umweg bereitstellt. Dieser Ansatz im Userspace hat mehrere Nachteile, insbesondere arbeitet er nicht besonders flott. Parallel entstanden seit Ende 2011 mit "ZFS on Linux" [4] die ersten Versuche, die benötigten Module außerhalb des Kernels zu pflegen und zu entwickeln. Seit Frühjahr 2013 steht mit der Version 0.6.1 ein erstes alltagstaugliches Release bereit. Aktuell ist die Version 0.6.2.

Diese zweite Variante steht im Mittelpunkt des Artikels. Unter Ubuntu und Arch Linux genügt es im Idealfall, die passenden Pakete zu installieren. Das Kompilieren und Installieren der Module dauert deutlich länger als eine Installation von Binärpaketen. Die Übersetzungsskripte erzeugen am Ende zusätzlich eine entsprechende Initrd, was ebenfalls Zeit benötigt.

In der Praxis

Die Tests mit den Release Candidates von ZFS on Linux dauern seit der Version 0.60 an. Die Ergebnisse fallen dabei in der Regel gut aus, genügen aber den Ansprüchen eines produktiven Einsatzes noch nicht. Insbesondere treten immer wieder zwei Probleme auf: Bei der Installation kommt es je nach Distribution und Version dazu, dass zwar Pakete für das ZFS existieren, die Installation aber mit – zunächst unverständlichen – Fehlern abbricht oder der Kernel anschließend die benötigten Module nicht findet.

Unter Ubuntu liegt das oft daran, dass der Paketmanager die Abhängigkeiten nicht korrekt aufgelöst hat. Zum Glück lässt sich das Problem leicht beheben, indem Sie die Abhängigkeiten installieren – im Wesentlichen das Paket build-essential sowie die Header-Files des verwendeten Kernels. Danach klappt das Einspielen der ZFS-Pakete in der Regel problemlos.

Bei Arch Linux und abgeleiteten Distributionen treten mitunter ähnliche Probleme auf, die Sie auf ähnliche Weise lösen. Hier gibt es allerdings des Öfteren bei Updates Probleme, wenn noch nicht alle benötigten Pakete in der aktuellen Version vorliegen und daher Updates des Kernels erfolgen. Arch Linux ist eine Distribution mit Rolling Release.

Ein zweites Problem erscheint gravierender und bleibt bisher ungelöst: Als Kernel-Modul agiert ZFS auf der untersten Ebene des Betriebssystems. Geht dort etwas schief, erweisen sich Reparaturen manchmal als unmöglich.So führte in den Tests ein experimenteller Kernel zum Absturz. Dieser wiederum brachte das ZFS-Modul derart aus dem Tritt, dass das Dateisystem in einem inkonsistenten Zustand verblieb. Ähnliches geschah in den letzten Jahren mit unterschiedlichsten Kernel-Versionen bei verschiedenen Distributionen.

In diesem Zustand gibt es nun keine Möglichkeit mehr, das Dateisystem zu reparieren. Hier macht sich das Fehlen eines Fdisk schmerzlich bemerkbar. Selbst die in diesem Fall hinzugezogenen Entwickler von ZFS on Linux waren relativ schnell am Ende ihrer Möglichkeiten.

Auch der Versuch, das Dateisystem von einem anderen System aus zu reaktivieren – etwa FreeBSD, OpenSolaris oder Ähnlichen – führte in diesen Fällen zu reproduzierbaren Abstürzen. Angesichts dieser Erfahrungen verwundert es nicht, wenn die heute weit verbreiteten NAS-Server, die ZFS verwenden, meistens auf BSD-Varianten basieren und nicht auf Linux.

Mit Forensik-Tools wie Photorec und Scalpel gelingt es in manchen Fällen, einige Dateien zu retten. Insbesondere bei größeren Dateisystemen und großen Dateien stellt dies jedoch keine adäquate Methode dar. Kommen Kompression und Deduplizierung in Spiel, fallen diese Möglichkeiten ohnehin aus.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Revolutionär
    Mit ZFS haben Sun und Oracle ein erstklassiges Dateisystem für "große Eisen" entwickelt. Doch auch der Linux-Desktop kann davon profitieren – sofern es gelingt, gravierende Lizenzprobleme zu klären.
  • Lichtblick am Horizont
    Zwar verhindern lizenzrechtliche Gründe die Integration von Suns ZFS in den Linux-Kernel – über einen Trick kommen aber auch Linux-Anwender in den Genuss des viel gelobten Dateisystems.
  • Dateisysteme aufsetzen, konfigurieren und warten mit Bordmitteln
    Mit ein paar einfachen Shell-Befehlen legen Sie die Grundlage für jede moderne Linux-Distribution: das Dateisystem.
  • Langsame Entwicklung
    Das Standard-Filesystem hat sich in den letzten zwei Jahrzehnten stetig weiterentwickelt. Heute dient es auf unzähligen Systemen als robuster Unterbau.
  • Umstieg auf das Ext3-Dateisystem
    Dateisysteme mit Journal erleichtern den Umgang mit Linux: Stürzt der Rechner ab, muss man beim Neustart nicht die langwierige Überprüfung der Dateisysteme mit "fsck" abwarten. Wir helfen bei der Umstellung auf Ext3fs und zeigen auch den Weg zurück.
Kommentare

Infos zur Publikation

LU 11/2017: Server für Daheim

Digitale Ausgabe: Preis € 8,50
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 3 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...