2197811

Dateisystem ZFS unter Ubuntu: Was es kann und wer es braucht

03.06.2016 | 15:09 Uhr |

Kaum ein anderes Dateisystem hat seit seiner Vorstellung ähnlich für Furore gesorgt wie ZFS, das Free BSD einen Vorteil vor Linux für Storage-und Serveraufgaben bringt. Allerdings nur bis jetzt, denn ZFS soll nun in Ubuntu 16.04 Einzug erhalten.

Die Integration der nativen Unterstützung für das Dateisystem ZFS in den Linux-Kernel ist technisch eigentlich kein Problem. Problematisch sind aber ungeklärte rechtliche Bedenken, denn ZFS steht unter einer anderen, inkompatiblen Open-Source-Lizenz als die Komponenten von GNU/Linux.

Lese-Tipp: Diese Ubuntu-Linux-Varianten gibt es: Server, Desktop, Mobile, IoT

Das letzte Wort zu Dateisystemen

Ursprünglich hat Sun Microsystems das Dateisystem ZFS als „Zettabyte Filesystem“ von 2001 bis 2006 für das hauseigene Unix-System Solaris entwickelt. Die Entwicklung beachtete nicht nur alle damals zeitgemäßen Anforderungen an Dateisysteme für Server und Großrechner, sondern plante gleich weit voraus: Tatsächlich könnte ZFS mit seiner 128-Bit-Adressierung sage und schreibe 256 Billiarden Zettabyte speichern – eine theoretische Datenmenge, für deren Verarbeitung die Energiereserven der Erde nicht ausreichen würden. Die Entwickler von SUN Microsystems stellten ZFS deshalb unter das Motto „das letzte Wort in Sachen Dateisystemen“ und auch der Buchstabe „Z“ ist als letzter Buchstabe im Alphabet eine Anspielung auf diesen Anspruch.

Superlative sind dabei noch nicht alles: ZFS kombiniert das Speichersystem mit einem eigenen Volumenmanager zur Verwaltung der physischen Speichereinheiten in einem Pool mit einem integrierten Software-Raid und kann selbst SMB-und NFS-Shares bereitstellen. Schreiboperationen erfolgen stets nach dem Copy-on-Write-Verfahren, das nur geänderte Blöcke an einen freien Platz auf die Datenträger schreibt. Daraus ergeben sich zwei weitere Vorteile: Deduplizierung speichert identische Daten nur einmal und Snapshots erstellen auf Wunsch Abbilder lokaler Backups zur Versionsverwaltung. Zudem gibt es zur Fehlerüberprüfung eine Checksummenüberprüfung gelesener Daten und eine Möglichkeit, mehrere Festplatten zu einen Raid 5 zusammenzulassen, das bei ZFS jedoch wegen Detailunterschieden Raid-Z heißt. Alles das ist jetzt schon ausgereifter als im neuen Linux-Dateisystem BTRFS.

ZFS ist ein Dateisystem das physikalische Datenträger zusammenfasst und in Partitionen aufteilt.
Vergrößern ZFS ist ein Dateisystem das physikalische Datenträger zusammenfasst und in Partitionen aufteilt.

ZFS als Linux-Kernelmodul

Nachdem der Konzern Oracle vor sechs Jahren Sun Microsystems übernahm, wäre ZFS beinahe dem Schicksal vieler Geniestreiche der IT anheimgefallen: Seiner Zeit zwar weit voraus, aber mangels Verbreitung zum Schattendasein verdammt. Dazu kam es aber nicht, denn Sun Microsystems veröffentlichte ZFS unter einer Open-Source-Lizenz, der CDDL. Die ist zwar wegen enthaltener Patentklauseln nicht kompatibel zur GNU Public License (GPL) von Linux, aber zur BSD-Lizenz. Das Open-Source-Betriebssystem Free BSD konnte deshalb ZFS bereits einpflegen, ohne dass Oracle dies verhindern konnte, denn der CDDL lässt sich nicht rückwirkend für bereits veröffentlichten Programmcode zurückziehen. Linux stand hingegen lange abseits, denn der ZFS-Code darf nicht einfach in den Kernel-Quellcode aufgenommen werden, da dieser streng unter der GPL steht. Allerdings entwickelte das renommierte Lawrence Livermore National Laboratory auf eigene Faust das native Linux-Kernelmodul „ZFS on Linux“ ( http://zfsonlinux.org ). Die Projektwebseite beschreibt die nachträgliche Installation des Moduls in allen verbreiteten Linux-Distributionen, denn eine Nachrüstung auf Anwenderseite ist lizenzrechtlich völlig unproblematisch. Für Ubuntu steht dafür auch ein PPA unter https://launchpad.net/~zfs-native/+archive/ubuntu/stable bereit.

Die Vorabversion von Ubuntu 16.04 liefert ZFS von Haus aus als vorkompiliertes Kernel-Modul mit.
Vergrößern Die Vorabversion von Ubuntu 16.04 liefert ZFS von Haus aus als vorkompiliertes Kernel-Modul mit.

Lese-Tipp: Die 10 wichtigsten Linux-Befehle für Einsteiger

Ubuntu als Wegbereiter

Die Schwierigkeit externer Kernel-Module: Mit jeder neuer Kernel-Version muss auch das Modul neu kompiliert werden oder in binärer Form passend zum neuen Kernel vorliegen. Gerade bei Dateisystemen ist dieser Weg nicht ganz ohne Risiko: Wenn die Kompilierung einmal fehlschlägt, startet das System ohne Zugriff auf diese Datenträger. Canonical will deshalb ein stets aktuelles ZFS-Modul in binärer Form mit seinen Kernel-Updates ausliefern und die Distribution damit serienmäßig mit ZFS-Unterstützung ausstatten.

Damit geht das Systemhaus einen Schritt weiter, da so nicht einfach nur der Quellcode zum Kompilieren eines optionalen Moduls ausgeliefert wird. Zudem haben Entwickler bei Canonical den Code für ZFS in die Quellen des Kernels von Ubuntu 16.04 mit aufgenommen.

Genau daran entzündete sich eine heftige juristische Diskussion zwischen Fürsprecher und Gegnern dieser Aufnahme. Die Gegner, die sich in der prominenten Organisation „Software Freedom Conservancy“ finden, die beispielsweise in Deutschland gegen Vmware prozessierte, haben ein stichhaltiges Argument: Canonical verstoße so gegen die GPL, weil der so veränderte Linux-Quellcode nicht mehr weiter unter einer puren GPL veröffentlicht werden darf. Die Fürsprecher, zu welchen mit Eben Moglen der angesehene Juraprofessor und Rechtsanwalt der Free Software Foundation gehört, sehen keinen Verstoß gegen die GPL: Module müssen nicht zwangsläufig eine von Linux abgeleitete Funktionseinheit sein, nur weil der Kernel ein Modul nutzt, so das Argument. So hätte Linus Torvalds selbst bereits eingeräumt, dass Kernel-Module oft in eine Grauzone fallen.

Unabhängig davon, wie die Diskussion weiter geht: In der Ubuntu-16.04-Beta war ZFS bereits enthalten und konnte als Modul geladen werden. Die Zeichen stehen gut für eine Verbreitung von ZFS.

ZFS: Pro und Contra

Das Dateisystem ZFS fasst mehrere Ebenen der Speicherverwaltung zusammen und ist durch seine Skalierbarkeit für Heimserver, Workstations bis hin zu Großrechnern geeignet. Hier eine knappe Übersicht der wichtigsten Vor-und Nachteile aus der Linux-Perspektive:

Pro:

  • ZFS übernimmt die Aufgaben von Dateisystem, Volume Manager und Raid-Controller.

  • ZFS ist ausgereifter und leistungsfähiger als BRTFS (Stand 2016).

  • ZFS hat eine eingebaute Fehlerüberprüfung durch Checksummen.

Contra:

  • ZFS hat einen hohen Speicherbedarf. Ein Einsatz unter vier GB RAM ist kaum sinnvoll.

  • Die Lizenzierung erlaubt keine Aufnahme des Quellcodes in den Linux-Kernel.

  • Das Copy-on-Write-Verfahren spart Plattenplatz, jedoch stellt sich ab 80 Prozent Belegung des Festplattenpools ein Leistungsverlust ein.

0 Kommentare zu diesem Artikel
2197811