WikiDer > ZFS

ZFS

ZFS ist ein Dateisystem entworfen und umgesetzt von einem Team von Sonne unter der Regie von Jeff Bonwick. Am 31. Oktober 2005 wurde der Quellcode des Endprodukts integriert in den Hauptstamm von Solaris und am 16. November 2005 wurde es veröffentlicht in OpenSolaris build 27. Im Juni 2006 gab Sun bekannt, dass ZFS ein Jahr nach dem Start der OpenSolaris-Community in das Update 6/06 von Solaris 10 integriert wird.

Der Name bedeutet Zettabyte File System, ist aber jetzt[(seit wann?] als Akronym bekannt. Dies liegt daran, dass das Datenlimit a . ist Zettabyte ist.

ZFS ist ein 'nextgen' oder hybrides Dateisystem, hauptsächlich weil es einige Funktionen enthält, wie z RAID und Volumenverwaltungintegriert sind. Dies ist bei aktuellen Dateisystemen nicht der Fall. Mit ZFS, wenn Daten auf einem (RAID-)Satz von mehreren gespeichert sind Festplatten gespeichert wird, kann dieser Plattensatz dann auf einem anderen System (mit ZFS) zur weiteren Verwendung gemountet werden. Darüber hinaus behebt ZFS eine Reihe von Problemen, die durch Festplattenfehler verursacht werden, wie beispielsweise das Problem der „stillen Beschädigung“. Und gewöhnliche (günstigere) verschiedene Laufwerke können ohne allzu viele Nachteile in einem Satz verwendet werden.

Kapazität

ZFS ist ein 128-BitDateisystem, was bedeutet, dass es 18 Billionen Mal so viele Daten speichern kann wie die heutigen 64-Bit-Dateisysteme.

128 bit

Datensätze in der Reihenfolge bereits vorhanden Petabyte (250 Byte), was bedeutet, dass die Grenze aktueller 64-Bit-Systeme noch 14 Verdopplungen entfernt ist, was etwa 20 Jahren entspricht. Da Dateisysteme oft mehrere Jahrzehnte halten, wäre es nicht ratsam, ein neues Dateisystem zu erstellen, das den Anforderungen innerhalb weniger Jahre nicht mehr gerecht wird, daher hat man sich für ein 128-Bit-Dateisystem entschieden.

Die theoretische Speichergrenze

Obwohl die theoretischen Grenzen noch nicht erreicht sind, hat ZFS Grenzen. Diese sind:

  • 248 - Anzahl der Snapshots in jedem Dateisystem (2 x 1014)
  • 248 - Anzahl der Dateien in jedem einzelnen Dateisystem (2 x 1014)
  • 16 Exabyte - Maximale Dateisystemgröße
  • 16 Exabyte - Maximale Größe einer einzelnen Datei
  • 16 Exabyte - Maximale Größe jedes Attributs
  • 3 x 1023 Petabyte - Maximale Größe jedes Zpools
  • 256 - Anzahl der Attribute einer Datei (begrenzt auf 248 da dies die Anzahl der Dateien pro Dateisystem ist)
  • 256 - Anzahl der Dateien in einem Ordner (begrenzt auf 248 da dies die Anzahl der Dateien pro Dateisystem ist)
  • 264 - Anzahl der Geräte in jedem Zpool
  • 264 - Anzahl der Zpole pro System per
  • 264 - Anzahl der Dateisysteme in einem Zpool

Um Ihnen eine Vorstellung von der Größe dieser Zahlen zu geben: Wenn jede Sekunde 1000 Dateien erstellt werden, dauert es weitere 9.000 Jahre, bis diese Grenzen erreicht sind.

Speicherpools

Herkömmliche Volumes speichern Daten in Fragmenten. Es gibt also a Volumenmanager benötigt, um mit verschiedenen Geräten zu kommunizieren. Mit den Speicherpools von ZFS besteht keine Notwendigkeit Partitionen verwaltet werden. Die kombinierte I/O-Bandbreite aller Geräte in den Speicherpools ist immer von jedem Dateisystem erreichbar.Ein Pool besteht aus virtuelle Geräte (virtuelle Geräte - vdevs). Diese Geräte können Festplatten, Spiegel (RAID 1) von einem oder mehreren Geräten oder einer RAID Z-Gruppe von zwei oder mehr Geräten. ZFS kann alle diese virtuellen Geräte über den zpool nutzen.Ein Pool kann reserviert werden, damit ein bestimmtes Dateisystem über Speicherplatz verfügt. Damit der Pool nicht zu viel Speicherplatz beansprucht, können auch Kontingente festgelegt werden.

Wiederherstellung von Festplattenfehlern

Copy-on-Write-Transaktionsmodell

Bei Verwendung der aktuellen 2013er (die vorzeitig als 'Legacy', nicht als ZFS bezeichnet werden) Dateisysteme werden die Fehler durch 'Prüfsummen'-Prüfung und durch Markieren eines 'fehlerhaften' Sektors auf der Platte erkannt und korrigiert. Die Daten werden ohne Beteiligung des Betriebssystems in einen Ersatzsektor verschoben. Diese „stille“ Korrektur kann zu einer „stillen Beschädigung“ führen, wenn sich der Zustand der Festplatte schnell verschlechtert und die Ersatzsektoren plötzlich aufgebraucht sind. CLEVER. Während es den Zustand eines Laufwerks überwachen kann und für die meisten Betriebssysteme Tools verfügbar sind, um das Laufwerk automatisch vor einem bevorstehenden Ausfall zu warnen, bietet S.M.A.R.T. ist kein integrierter Bestandteil des Dateisystems.

In ZFS sind jedoch alle Operationen Copy-on-Write-Transaktionen. Dadurch muss das ZFS-Dateisystem nie auf Fehler überprüft werden. Jeder Block wird von ZFS geprüft, die Daten werden bei Bedarf von ZFS wiederhergestellt.

RAID

Wenn eine redundante ('Spiegel'-) Form von RAID verwendet wird und eine Kopie als beschädigt erkannt wird, erkennt ZFS dies und verwendet die richtige Kopie, um den Fehler zu beheben. Dynamische Stripe-Größen machen ZFS unempfindlich gegenüber Schreiblöchern. ZFS hat kein Read-Modify-Write, ein Vorteil von RAID-Z gegenüber RAID5 in Bezug auf Zuverlässigkeit und Random-Write-Leistung.[1]

Schnappschüsse und Klone

ZFS bietet unbegrenzte Nutzung von Snapshots und Klonen. Ein Snapshot ist ein Snapshot eines schreibgeschützten Dateisystems. Ein Klon ist ein Snapshot, der geändert werden kann. Die Verwendung von Klonen bietet eine platzsparende Möglichkeit, viele Kopien vieler gemeinsam genutzter Daten zu speichern.

Snapshots helfen beim ZFS-Sicherungs- und Wiederherstellungsprozess. Jeder Snapshot kann ein vollständiges Backup generieren. Es besteht auch die Möglichkeit, ein inkrementelles Backup zu erstellen, indem mehrere Snapshots zusammen verwendet werden. Inkrementelle Backups machen die Verwendung von Remote Restore hocheffizient.

Variable Blockgröße

Heutige Dateisysteme haben normalerweise eine feste Blockgröße, was bedeutet, dass viel Speicherplatz durch Overhead verloren geht. Der Vorteil einer festen Blockgröße besteht darin, dass sie einfach zu implementieren ist.

ZFS verwendet jedoch variable Blockgrößen von bis zu 128 KB. Dies hat den Vorteil, dass Sie große Blöcke für große Dateien verwenden und diese Blöcke für kleine Dateien in kleine Blöcke aufteilen können. Wenn sich herausstellt, dass eine kleine Datei groß ist, können Sie sie leicht aus einem kleinen Block entfernen und in einen großen Block legen. Da es sich bis dahin um eine kleine Datei handelte, verursacht das (einmalige) Verschieben nicht wirklich viel Aufwand.

Redundanz (RAID)

ZFS verfügt über eine Reihe von RAID-Formen, die über Software implementiert werden. Alle diese Formen sind direkte Ableitungen der bekannten RAID-Lösungen. ZFS unterstützt Spiegelung (ähnlich wie RAID 1). Darüber hinaus gibt es RAID-Z (eine verbesserte Version von raid5, n 1) und raidz2 (ähnlich wie raid 6, n 2). Der Vorteil von ZFS besteht darin, dass Platten unterschiedlicher Größe und Geschwindigkeit nebeneinander in einem ZFS verwendet werden können. ZFS nutzt die unterschiedlichen Festplatten optimal. Ein weiterer Vorteil ist, dass ein kompletter Satz von ZFS problemlos in einem anderen System verwendet werden kann. Nachteilig ist, dass ein Set nachträglich nicht mit einer zusätzlichen Scheibe erweitert werden kann. Eine Erweiterung ist durch Hinzufügen eines neuen Sets neben dem bestehenden Set möglich.

Neuere Ergänzungen

Bisher war es nicht möglich, von ZFS zu booten. Das Projekt "ZFS Boot" wurde kürzlich hierher gebracht[(seit wann?] ändern in, durch a Plugin für grub.

ZFS unterstützt transparente Verschlüsselung.

ZFS unterstützt Deduplizierung. Wird ein Block (z. B. Kopien von virtuellen Maschinen) mehrfach gespeichert, wird anschließend ermittelt, welche Blöcke identisch sind und diese Blöcke werden in den physischen Speicher zusammengeführt. Das spart Speicherplatz und da sie nur einmal zwischengespeichert werden, kann auch die Leseleistung gesteigert werden. Deduplizierung kostet natürlich Prozessor- und Speicherkapazität.

ZFS kann mit L2ARC . verwendet werden Zwischenspeichern. Ein Cache ist eine Kopie häufig verwendeter Daten auf einem schneller lesbaren Medium, zum Beispiel auf einem SSD. Die übliche Caching-Methode, wie bei Intel SRT, kann eine Beschädigung des Caches auf einer SSD nicht erkennen. ZFS tut dies und liest dann von der regulären Festplatte. Außerdem liest ZFS keine großen Dateien, die sequentiell über den Cache gelesen werden. Außerdem kann ZFS mit L2ARC mehrere SSDs als L2ARC-Cache verwenden.

Einschränkungen

Alle 64 BitPrüfsummen, die beim Copy-on-Write verwendet wird, erhöht sich zwar die Prozessorlast etwas, was sich in der Praxis jedoch als vernachlässigbar herausstellt. Vor allem bei den heutigen Prozessoren.

ZFS ist für aktuelle Hardware geschrieben und benötigt viel RAM. Mindestens 256 MB Arbeitsspeicher sind erforderlich, 1 GB wird empfohlen. Auf älterer Hardware verursacht dies zu viel Overhead und verwendet zu viel Speicher.

ZFS-Benutzer sollten darauf achten, dass ihre Festplatten nur EFI-Etiketten benutzen. Nur mit Hilfe dieser Labels können die auf Sparc-Hardware erstellten Dateisysteme weitergelesen werden x86/x64Systeme. Dies ist mit dem alten Etikettenformat nicht möglich. Diese Einschränkung gilt nur für Festplatten und nicht für andere vdevs.

Plattformen

Solaris

ZFS ist in Suns Solaris und OpenSolaris implementiert. Dies macht das Dateisystem nutzbar auf SPARC- und x86Systeme. ZFS ist Open Source und kann daher ohne Eingreifen von Sun in andere Betriebssysteme implementiert werden. OpenSolaris verwendet ab 2008.05 ZFS als Standarddateisystem.

OS X

Apfel hat ab Version 10.5 von Mac OS X, Codename Leopard, schreibgeschützte Unterstützung für ZFS enthalten. Es gibt zwei Implementierungen von ZFS von OS X 10.5 (Leopard) bzw. 10.6 (Snow Leopard): MacZFS basierend auf dem Open-Source-Code von Apple und von der Community gepflegt und Zevo, von denen es eine kostenlose 'Community Edition' gibt.

Linux

Implementieren Sie ZFS (anstelle von ext3, ext4 oder btrfs) in Linux ist schwieriger, weil ZFS unter der CDDLLizenz ausgestellt wurde und die Linux Kernel unten GPL wird ausgeliefert. ZFS ist jetzt verfügbar über SICHERUNG:[2] Der 'Workaround' ist ein separates Kernel-Modul für ZFS. In zum Beispiel Gentoo und Ubuntu die betroffenen Pakete können mit dem installiert werden Paket-Manager und die Konfiguration ist ausführlich dokumentiert. ZFS unter Linux ist eine Implementierung eines ZFS-Kernelmoduls.[3]

Ab Version 20.04 von Ubuntu ist ZFS jedoch eine Standardoption während der Installation.

BSD-ähnlich

Auch der BSD-Welt möchte eine Implementierung von ZFS. Von FreeBSD 8, ZFS wird standardmäßig mitgeliefert. Einige verwandte Varianten mit der Möglichkeit, ZFS (anstelle von UFS) zu implementieren, sind NetBSD, PC-BSD, MitternachtBSD, FreeNAS und NAS4Free.

Verteilte Systeme

ZFS eignet sich hervorragend für verteilte Systeme, da alle Platten aller Systeme in einen Zpool gelegt werden können. Zum Beispiel scheint es eine große Festplatte zu geben, die tatsächlich aus allen Festplatten jedes einzelnen Computers besteht. Der Nachteil dabei ist, dass Ihr Netzwerk zum Flaschenhals wird: Der Festplattenzugriff über ein IDE- oder SATA-Kabel ist um ein Vielfaches schneller als über die derzeit gebräuchlichsten Ethernet.

Was ZFS auch für verteilte Systeme geeignet macht, ist die adaptive endian oder auf Englisch "adaptive endianness"; Der ZFS-Blockzeiger ermöglicht die Speicherung der Metadaten in Big, Middle oder Little Endian. Die Metadaten werden in der ursprünglichen Endianness geschrieben und beim Lesen von einer anderen Endianness werden die Metadaten im Speicher ordnungsgemäß in die richtige Endianness umgewandelt, sodass sie von jedem System lesbar und beschreibbar sind.

Wettbewerb

ZFS ist ein 'Nextgen'-Dateisystem und hat einige Konkurrenten: BTRFS, Referenzen und VxFS. VxFS wurde speziell für verteilte Systeme entwickelt und hat gegenüber anderen Dateisystemen den Hauptvorteil, dass die Fragmentierung minimal bis null ist. Bei ZFS ist dies auch durch die variable Blockgröße der Fall. ZFS hat ein praktisch unerreichbares Datenlimit, was ein großer Vorteil gegenüber VxFS ist.

Ein weiterer großer Konkurrent ist WAFL (Write Anywhere File Layout), ein geschlossenes Dateisystem von NetApp. WAFL ist ein Dateisystem, das kein Copy-on-Write verwendet und daher 255 Snapshots pro Volume ohne Leistungsverlust unterstützt. WAFL ist zusammen mit der NetApp-Hardware für seine NFS-Leistung bekannt, ein ursprünglich von Sun entwickeltes Protokoll. Seit 2007 sind NetApp und Sun in verschiedene Verfahren zu ZFS, WAFL und NFS involviert.

Anwendung

Wenn Sie ZFS beispielsweise als Teil des Betriebssystem (beispielsweise freeNAS) auf einen NAS ist es auch für andere PCs mit allen möglichen anderen Betriebssystemen im Netzwerk auf diversen (wie NFS, iSCSI) Möglichkeiten, auf die Dateien zuzugreifen. Auch für PCs mit Microsoft Windows ist es möglich, auf die Dateien zuzugreifen, die auf dem NAS installiert sind Samba.