Btrs und ZFS bilden die „next generation“ der Dateisysteme. Doch was bringt uns die Technik und worin besteht der Zusatznutzen? Hier erfahrt ihr mehr über die neuen Features der neuen Generation.

Dateisysteme haben sich von einem einfachen Stream von Nullen und Einsen wie bei Lochkarten über erste Festplatten mit Direct Access Möglichkeiten zu Dateisystemen wie FAT mit Datei und Verzeichnisstruktur oder NTFS/ext mit Metadaten entwickelt. Diese rasanten Veränderungen zeigen die enorme Fortentwicklung der Dateisysteme. Die letzte große Weiterentwicklung fand mit dem sogenannten “Journaling” statt, mit dem Systemabstürze unterbunden und ein Überwechseln von Dateisystem in einen unbrauchbaren Zustand verhindert werden.

Die neuen Features von Btrfs und ZFS:

COW Snapshots

Die Snapshots ermöglichen jederzeit das Erstellen eines Clons des vorliegenden Dateisystems. COW (Copy on Write) ermöglicht diesen Schritt ohne umfangreichen zusätzlichen Festplattenspeicher zu beanspruchen. Lediglich Änderungen in den Dateisystemen benötigen beim Ablegen zusätzlichen Speicherplatz.

Durch COW ist es damit ebenfalls möglich, Versionen seines Dateisystems wie beispielsweise vor einem Software Update oder vor einer vergleichbaren Aktivität abzuspeichern. Falls bei diesen Abspeicherungen inkorrekt agiert wurde, ist es dennoch problemlos möglich, alle Änderungen rückgängig zu machen und zu der ursprünglichen Version zurückzukehren.

Checksums

Ist der Begriff “silent data corruption” vertraut? Durch Außeneinwirkung auf Festplatten-Controller und Speichermedien können, ohne dass der User etwas bemerkt, Veränderungen ablaufen. Wird in einer komprimierten/verschlüsselten Datei nur ein Bit geflipped, kann dieser Schritt zu einem weitaus größeren Datenverlust führen. Um derartige Probleme zu vermeiden, hat die aktuelle Generation der Dateisysteme Checksummen hinterlegt. Diese werden direkt auf Dateisystemebene erstellt und verifiziert. Dadurch werden Veränderungen erkannt und, sofern Kopien der Daten zur Verfügung stehen (RAID), wird eine Selbstheilung vorgenommen.

Selbstheilung und Redundanz

Wie gerade eben schon erwähnt wurde, können durch Checksummen Fehler in den Daten erkannt und dann durch automatische Selbstheilung und Redundanz transparent gemacht sowie im Hintergrund korrigiert werden. Sowohl ZFS als auch Btrfs unterstützen eine Vielzahl an RAID-Level und sind damit in der Lage, einen Hardware RAID Controller gänzlich zu ersetzen. Gerade weil  Hardware Controller in der Regel nicht in der Lage sind, Daten auf Korrektheit zu überprüfen, wird sogar von deren Einsatz unterhalb eines Btrfs/ZFS abgeraten.

Volumen Management

Alles, was früher von LVM übernommen wurde, leisten ZFS und Btrfs zusätzlich. Eine Partitionierung der Daten wird damit überflüssig bzw. vom Dateisystem übernommen. Damit werden beispielsweise einfaches Online Resizing und ähnliche Aktionen möglich, was bei Dateisystemen der aktuellen Generation oft nicht realisierbar ist.

Scalability

Früheren Anwendern war geläufig, wo fixe Limits von Dateisystemen liegen. Fat32 oder bei der Anlage einer Datei von mehr als 4GiB, die heute jeder DVD Film fordert, waren bekannte Beispiele. Limits bei ZFS und Btrfs wurden daher so großzügig gesetzt, dass sie in absehbarer Zukunft nicht ausgeschöpft werden. ZFS setzt dabei Maßstäbe und erlaubt 256 ZiB, eine Kapazität von über 200 Millionen handelsüblicher Festplatten.

Asynchrone inkrementelle Replikation

Dank der COW Snapshots können Daten auch sehr einfach von Computer zu Computer kopiert werden. Als besonderes Feature bieten die neuen Dateisysteme ein inkrementelles Kopieren an. Wird beispielsweise jede Nacht eine Snapshot vom eigenen System gefertigt und soll dies auf einem anderen Computer gesichert werden, ist die Aktion mit vergleichsweise geringem Aufwand nach dem ersten kompletten Backup zu erledigen. Es werden - wie bereits erwähnt - lediglich tatsächlich veränderte Blöcke des eigenen Dateisystems kopiert und nicht mehr das komplette Dateisystem. Der User erhält aber trotzdem jede Nacht eine weitere Kopie seines vollständigen Dateisystems.

Zusätzliche Feautures von Btrfs

Btrfs bietet gegenüber ZFS noch weitere Features, die an dieser Stelle aber nur kurz Erwähnung finden sollen. Bei Btrfs können zum Beispiel selektiv nur einzelne Dateien mit COW geclont werden. Sinnvoll wird dies bei Images von Virtuellen Maschinen oder Vergleichbarem. Des Weiteren kann Btrfs im Gegensatz zu ZFS das RAID-Level im laufenden Betrieb anpassen. Bei ZFS ist es nur möglich, einen Array anzulegen und diesen danach nicht zu verändern. Mit Btrfs ist dies hingegen “on the fly”, also im laufenden Betrieb möglich. Bei der Datenkompression verhält es sich ähnlich. Bei ZFS kann der User lediglich einen ganzen MountPoint von der Kompression ausschließen bzw Kompression aktivieren. Btrfs ist hingegen flexibler und kann einzelne Dateien komprimieren bzw. es unterlassen um CPU Zyklen zu sparen. Als Beispiel sei erwähnt, dass bereits komprimierte Dateien (.gz / .zip / .rar / .jpg / .mp3 / .mp4 / .avi) sinnvoll nicht weiter komprimiert werden können und deshalb bei einer Datenkompression selektiv ausschließbar sind.

Wie ist die Nutzbarkeit?

Die meisten aktuellen Distributionen bieten Btrfs bereits als Testing bzw Preview Dateisystem an, raten aber von der Nutzung ab. Sollte dennoch Btrfs schon getestet werden, ist zu empfehlen, keine Maschinen in Produktion zu verwenden, weil mit Datenverlust zu rechnen ist. ZFS hingegen wird als stabil erachtet, ist allerdings aufgrund von Lizenzinkompatiblität nicht im Linux Kernel enthalten und bei vielen Distributionen lediglich als Paket nachinstallierbar. Sollte ein BSD genutzt werden, ist ZFS bei vielen Derivaten bereits vorinstalliert. FreeBSD beispielsweise lässt sich problemlos mit ZFS als Root Dateisystem installieren und betreiben.

 

 

 

Informationen:

https://Btrfs.wiki.kernel.org Offizielle Btrfs Webseite

http://open-ZFS.org Zusammenschluss der Linux/BSD/illumos/OpenZFS on OS X Developer

http://ZFSonlinux.org/ Projekt für ZFS auf Linux Systemen mit Links zu Paketen der gängigsten Distributionen