Werbung
ZFS wäre fast einmal das neue Dateisystem für OS X 10.7 geworden, doch aus unbekannten Gründen, vermutlich aber Lizenzfragen, zog Apple seine Pläne in letzter Sekunde zurück. Dabei wäre es an der Zeit für ein neues modernes Dateisystem, denn HFS+ ist mit seinen zahlreichen Erweiterungen und fehlenden Features zur Sicherung der Datenintegrität eigentlich nicht mehr auf der Höhe der Zeit. Dies geht zwar auch anderen Dateisystemen wie NTFS und FAT so, doch neben Linux scheint die Affinität bei OS-X-Nutzern besondern hoch zu sein. OpenZFS ist daher die Basis von OpenZFSonOSX und bereits für Illumos, FreeBSD und andere Linux-Distributionen verfügbar.
OpenZFSonOSX ist nun ein neues Projekt, dass ZFS auf OS X bringen möchte. Sicherlich gibt es dazu auch andere Wege, OpenZFSonOSX hat sich allerdings auf die Fahnen geschrieben, den aktuellen Entwicklungsstrang so einfach wie möglich zugänglich zu machen. Zunächst einmal wäre da der Download als Desktop- und Server-Version. Im Forum sind einige Anleitungen zu finden und hier wird man sicherlich auch die nötige Hilfe bekommen, falls bei der Installation, Einrichtung oder dem Betrieb Probleme auftreten. Einige wichtige Informationen finden sich ebenfalls im dazugehörigen Wiki.
Hintergrundinformationen zu ZFS
Aus einem älteren Artikel zu ZFS haben wir noch einmal ein paar Informationen hervorgeholt, um das Thema noch einmal etwas näher zu bringen. Der Name ZFS stammt ursprünglich von Zettabyte-File-System, inzwischen aber wird dieser Name nicht mehr benutzt. Um der Abkürzung ZFS, die sich inzwischen etabliert hat, aber treu zu bleiben, wird der letzte Buchstabe des Alphabets in diesem Sinne als letztes Wort in Sachen File-System interpretiert. ZFS wird unter einer Sun-Lizenz als Open-Source CDDL geführt und kann daher von jedem versierten Anwender auf ein beliebiges Betriebssystem portiert und verwendet werden. Ursprünglich entwickelt wurde es für Solaris, um es dort in Data-Centern einzusetzen.
Bevor wir jetzt auf die Details von ZFS näher eingehen, wollen wir uns die technischen Daten einmal genauer anschauen:
Maximale Wortlänge: 128 Bit - dies bieten auch einige andere Dateisysteme und ist in der Praxis zu vernachlässigen
Maximale Anzahl an Dateien in einem Dateisystem: 248 - Damit soll auch das zukünftige Datenvolumen noch verwaltet werden können. Zum Vergleich NTFS kann nur 232 Dateien verwalten.
Maximale Größe des Dateisystems: 16x 260 Byte - damit lassen sich mehr Byte in einem ZFS verwalten, als es Atome im bekannten Universum gibt. Zum Vergleich: NTFS kann maximal "nur" 260 Byte verarbeiten.
Maximale Größe einer Datei: 16x 260 Byte - auch hier wieder eine kaum vorstellbare Zahl, an die NTFS mit maximalen 16 TB nicht herankommt.
Maximale Anzahl an Dateien in einem Verzeichnis: 248 - NTFS kann insgesamt nur 232 Dateien verwalten.
Die Zahl 264 spielt an anderer Stelle eine entscheidende Rolle. So ist die maximale Anzahl an Geräten in einem Pool 264, ebenso wie die maximale Anzahl an Dateisystemen und maximale Anzahl an Pools in einem System.
Obige Angaben sollen nur unterstreichen, wozu ZFS entwickelt wurde: Es soll den Bedarf der Datenverwaltung in der Zukunft sichern. Jeff Bonwick, der Chefentwickler von ZFS, sprach davon, dass diese technischen Voraussetzungen für immer ausreichen sollten. In der Informatik sollte man mit diesen Begriffen aber vorsichtig umgehen. Auch wenn man sich oben genannte Dimensionen momentan noch nicht vorstellen kann, so könnte dies in 20 Jahren schon ganz anders aussehen. Man erinnere sich nur an den berühmten Satz von Bill Gates in dem er sagte, dass 640 kB Speicher für immer ausreichend seien.
RAID-Z
ZFS kann natürlich auf nur einem Datenträger als Dateisystem verwendet werden. Da ZFS aber maßgeblich für Server-Umgebungen entwickelt wurde, spielen hier mehrere Datenträger weitaus häufiger eine wichtige Rolle. Wem eine eindimensionale Dateispeicherung (Speicherung von Daten auf einem Datenträger) zu unsicher ist, dem stehen zudem RAID-Fähigkeiten zur Verfügung. Wie bei einem üblichen RAID auch, wird durch Festlegung der Anzahl der Festplatten über die Redundanz entschieden. Kommen zwei Festplatten zum Einsatz, stehen dem Anwender das übliche RAID0 und RAID1 zur Verfügung. Ab dem Einsatz von drei Festplatten kommen dann noch weitere Optionen hinzu. RAID-Z1 entspricht in etwa dem RAID5. Es vereint die Performance von RAID0 und die Sicherheit von RAID1 durch ein Parity-Bit. Wer vier Festplatten einsetzt, der kann seine Daten auch einem RAID-Z2 anvertrauen. Dies entspricht einem RAID6 mit zwei Parity-Bits. Ab einer weiteren Festplatte steht auch RAID-Z3 zur Verfügung, bei dem drei Parity-Bits vorhanden sind und die Sicherheit nochmals deutlich erhöht.
Vielen Soft- und Hardware-Controllern für den RAID-Betrieb ist es nicht möglich, unterschiedlich große Festplatten zu verwenden. Auch hier arbeitet ZFS deutlich flexibler. So können drei Festplatten mit Größen von 500 GB, 1 TB und 2 TB in einem RAID-Z verwendet werden. Im RAID-Z1 würde dies einer maximal verwendbaren Volume-Größe von 1 TB (2x 500 GB + 1 TB Parity) entsprechen. Wird die 500-GB-Festplatte durch ein Modell mit einer Kapazität von 1 TB ausgetauscht, erhöht sich das nutzbare Volume auf 2 TB (2x 1 TB + 2 TB Parity). Dies alles kann geschehen, ohne dass das RAID neu aufgebaut werden muss. Das ZFS baut die Dateistrukturen selbstständig neu um, ohne Zutun des Anwenders.
Checksum-Support
Magnetische Festplatten gehören inzwischen zu den anfälligsten Teilen eines Computer-Systems. Da hier die meisten Datenfehler auftreten, besitzt ZFS einen integrierten Checksum-Support. Dazu wird eine 32-Bit-Prüfsumme zusammen mit einem 256-Bit-Hash verwendet. Wird der entsprechende Datenblock gelesen, werden die Daten über diesen Mechanismus verifiziert. Datenfehler werden so schon auf Dateisystem-Ebene erkannt und können gegebenenfalls behoben werden. Zudem ergibt dieses System einen deutlich zuverlässigeren Überblick über den Zustand der Festplatte, als dies der S.M.A.R.T.-Status tut. Wer nun glaubt, eine solche Sicherung der Datenintegrität sei überflüssig, der sollte das Festplattendienstprogramm einmal über seine Festplatten laufen und diese prüfen lassen. Regelmäßig kommt es hier zu Fehlern und oftmals lassen sich die Daten nicht wiederherstellen.
Daten, die bereits vorhanden sind und verändert werden, werden nicht einfach überschrieben. Stattdessen wird ein neuer Block angelegt, die Veränderungen geschrieben und diese dann verifiziert. Metadaten des zu überschreibenden Blocks werden übernommen und zum neuen Block hinzugefügt. So steht noch immer eine alte Version des Datenblocks zur Verfügung, falls bei der Bearbeitung des aktuellen etwas nicht korrekt abläuft und die Daten nicht geschrieben werden können.
Snapshot
Wohl das wichtigste und revolutionärste Feature von ZFS sind die sogenannten Snapshots. Dabei wird vom "lebenden" Dateisystem ein Schnappschuss angefertigt - das Dateisystem wird im aktuellen Zustand eingefroren. Dieser Vorgang nimmt aber keinerlei Zeit in Anspruch, da die Dateien sich ja bereits auf der Festplatte befinden. Im Anschluss werden einfach nur noch die Veränderungen geschrieben. Snapshots lassen sich auch in andere zPools übertragen und erlauben so ein einfaches Backup des File-Systems bei möglichst geringer Datenmenge.
Gerade im Vergleich zu anderen Backup-Lösungen zeigen sich die Vorteile der Snapshots. Nehmen wir einmal Time-Machine von Mac OS X. Verändert sich hier eine 1 GB große Datei, so wird beim nächsten Backup die komplette 1 GB große Datei gesichert. Erfolgen diese Veränderungen in regelmäßigen Abständen, würde dies bei einer stündlichen Sicherung ein gewaltiges Datenaufkommen nach sich ziehen. Die Snapshots von ZFS arbeiten auf Dateiblock-Ebene und speichern eben nur die Veränderungen der Datei. Dies spart Datenplatz und erlaubt auch schnelle Sicherungen bzw. deren Übertragung.
Clones
Eine Art Erweiterung der Snapshots sind Clones. Hierbei wird ein beschreibbarer Snapshot angelegt, was in zwei separaten File-Systemen auf einem Datenblock resultiert. Werden nun Veränderungen an einem der Klone durchgeführt, werden neue Datenblöcke von beiden angelegt. Auf unveränderte Daten greifen aber weiterhin beide Klone zurück.
Quota und Reservation
In einem zPool angelegten File-Systems können Attribute wie Quota und Reservation zugeteilt werden. Dabei wird festgelegt, wie viel Speicherplatz das jeweilige File-System im zPool verbrauchen darf. Zudem lassen sich über Reservation bestimmte Größen für File-Systeme reservieren. Diese Pool-Eigenschaften können aber auch global vom zPool aus, auf alle File-Systeme, vererbt werden.
Kompression
Wie viele andere Dateisysteme auch, unterstützt ZFS ebenfalls die Kompression der Daten auf dem Dateisystem. Natürlich handelt es sich dabei um eine verlustfreie Kompression. Geplant war und ist weiterhin auch eine automatische Erkennung des Datei-Typs und darauf folgend die Anwendung einer bestimmten - oftmals verlustbehafteten - Kompression wie beispielsweise MP3 oder JPEG.