ZFS (Dateisystem)

Dateisystem
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 18. Dezember 2006 um 21:28 Uhr durch MarkusHagenlocher (Diskussion | Beiträge) (Entwicklung). Sie kann sich erheblich von der aktuellen Version unterscheiden.

ZFS ist ein von Sun Microsystems entwickeltes Meta-Dateisystem mit integriertem Volume-Management. Der Name ZFS stand ursprünglich für Zettabyte File System, ist aber inzwischen ein Pseudo-Akronym und daher ist die lange Form nicht mehr gebräuchlich. [1]

Entwicklung

Sun hat das ZFS für Solaris 10 entwickelt und stellt es auch für die frei verfügbare Variante OpenSolaris (ab Build 27a) im Quellcode bereit. Seit Solaris 10 6/06 besteht offiziell Support für ZFS. ZFS ist sowohl für SPARC als auch für x86/x64 Solaris verfügbar. Entworfen und umgesetzt wurde das Projekt vom Sun-Team unter der Leitung von Jeff Bonwick. ZFS unterliegt, wie auch OpenSolaris, der Common Development and Distribution License (CDDL).

Auch Apple plant ZFS-Unterstützung in die kommende Mac OS X-Version (10.5) zu integrieren. Und mit dem Projekt ZFS on FUSE[1] existiert ein Projekt, dass ZFS auch unter Linux nutzbar machen möchte.

Eigenschaften

Herkömmliche Dateisysteme verwalten jeweils nur eine Partition und werden ggf. durch einen Logical Volume Manager unterstützt, der physikalische Partitionen zu logischen zusammenfassen kann und dabei Funktionalität zur Ausfallsicherung (siehe RAID) bereitstellen kann. ZFS fasst diese Funktionen zusammen und bildet zunächst aus den physischen Partitionen eine logische Einheit, den sogenannten Pool. Innerhalb eines Pools können dann beliebig viele logische Partitionen (mit je einem Dateisystem) angelegt werden, wobei diese dynamisch wachsen und schrumpfen soweit die Größe des Pools es zulässt. Um administrative Einschränkungen durchzusetzen, kann für jede logische Partition eine minimale und maximale Größe vorgegeben werden. Die logischen Partitionen können dabei in eine hierarchische Struktur eingebettet werden, innerhalb derer diese und andere Parameter auch vererbt werden können. Weiterhin ist es möglich Datenbereiche aus Pools als dedizierte „Block-Devices“ (siehe auch Datenblock-orientierte Geräte) zur Verfügung zu stellen.

Die zweite Besonderheit von ZFS ist die besonders einfache Administration. Um einen Pool über mehrere Festplatten zu erzeugen und auf diesem eine Partition anzulegen werden lediglich zwei einfach strukturierte Befehle benötigt. Das Partionieren, Aufbauen des logischen Volumes und schließlich das Einhängen ins bestehende Dateisystem werden automatisch erledigt, können aber bei Bedarf auch manuell vorgenommen werden.

Auch in Punkto Datensicherheit setzt ZFS neue Maßstäbe. Wie bei einem klassischen Volume-Manager können die Pools Spiegel bilden (siehe RAID-1), wobei die Daten zweimal oder öfter gespeichert werden können. Bilden mehrere Festplatten ein RAID-Z, werden die Daten wie bei einem RAID-5 paritätsgesichert, so dass eine der Festplatten ausfallen kann, ohne dass dabei Datenverluste entstehen. Durch das integrierte Design des ZFS wird jedoch im Gegensatz zu RAID-5 kein batteriegepufferter Speicher (NVRAM) benötigt, da keine Schreiblücke zwischen Daten-Schreiben und Parity-Schreiben auftritt. Die Geschwindigkeitsoptimierung durch parallelen Zugriff (RAID-0 – Striping) wird von ZFS automatisch vorgenommen.

Weitere Features, die man sonst nur bei Volume-Managern findet, sind die Möglichkeit zur schnellen Erstellung von Snapshots (eingefrorene Nur-Lese-Sicherungen) und darauf Clones (schreib- und lesbare Replikate) wobei jeweils nur die Differenzen zum ursprünglichen Dateisystem gespeichert werden.

Neben den Möglichkeiten Daten gegen Festplattenausfälle zu sichern, wird außerdem jeder einzelne Block im Dateisystem mit einer Prüfsumme versehen, so dass eine Datenkorruption automatisch erkannt und ggf. ohne manuellen Eingriff behoben werden kann. Der Performance-Verlust ist dabei minimal. Auch stellt ZFS sicher, dass der Zustand des Dateisystems zu jeder Zeit konsistent ist, und deshalb auch beispielsweise nach einem Stromausfall kein Überprüfen des Dateisystems (fsck) notwendig ist.

Weiterhin ist ZFS ein sehr schnelles Dateisystem. Auf einem 1-GBit/s FibreChannel JBOD mit fünf Festplatten mit 10.000 U/min sind ohne weiteres Schreibraten von über 70 MByte/s zu erzielen.

ZFS ist für sehr große Datenmengen ausgelegt, was durch die durchgängige Verwendung von 128-Bit-Zeigern erreicht wird. Die Kapazität von ZFS ist so ausgelegt, dass sie für immer ausreicht. Jeff Bonwick, Chefentwickler von ZFS, sagte dazu:

"Populating 128-bit file systems would exceed the quantum limits of earth-based storage. You couldn't fill a 128-bit storage pool without boiling the oceans." (Zu deutsch: „Ein 128-bit Dateisystem zu füllen würde alle Grenzen irdischer Datenspeicherung übersteigen. Man könnte einen 128-bit Speicher-Pool nicht füllen ohne die Ozeane zu verdampfen.“)

Technische Daten

  • 128-Bit Dateisystem
  • enthält einen integrierten Volumemanager
  • 248 – maximale Dateien im Dateisystem
  • 16 Exabytes – maximale Größe des Dateisystems
  • 16 Exabytes – maximale Größe einer Datei
  • 3 × 1023 Petabytes – maximale Größe jedes Pools
  • 256 – maximale Anzahl an Dateien in einem Verzeichnis
  • 264 – maximale Anzahl an Geräten im zPool
  • 264 – zPools im System
  • 264 – Dateisysteme im zPool

Deutsch

Englisch

  1. http://www.wizy.org/wiki/ZFS_on_FUSE