Was ist ZFS? Gründe für die Verwendung von ZFS und seine Funktionen

Was ist ZFS? Gründe für die Verwendung von ZFS und seine Funktionen

Geschichte von ZFS

Das Z-Dateisystem (ZFS) wurde 2001 von Matthew Ahrens und Jeff Bonwick entwickelt. ZFS wurde als Dateisystem der nächsten Generation für OpenSolaris von Sun MicroSystems entwickelt. Im Jahr 2008 wurde ZFS auf FreeBSD portiert. Im selben Jahr wurde auch ein Projekt zur Portierung von ZFS auf Linux gestartet. Da ZFS jedoch unter der Common Development and Distribution License (CDDL) lizenziert ist, die mit der GNU General Public License inkompatibel ist, kann es nicht auf den Linux-Kernel portiert werden. Um dieses Problem zu lösen, bieten die meisten Linux-Distributionen eine Möglichkeit zur Installation von ZFS.
Kurz nachdem Oracle Sun Microsystems übernommen hatte, wurde OpenSolaris zum Closed Source, was auch die nachfolgende Entwicklung von ZFS zum Closed Source machte. Viele ZFS-Entwickler waren darüber sehr unglücklich. Zwei Drittel der ZFS-Kernentwickler, darunter Ahrens und Bonwick, verließen Oracle infolge der Entscheidung. Sie schlossen sich anderen Unternehmen an und gründeten im September 2013 das OpenZFS-Projekt. Dieses Projekt leitet die Open-Source-Entwicklung von ZFS.
Kommen wir zurück zum oben erwähnten Lizenzierungsproblem. Nachdem das OpenZFS-Projekt nun von Oracle getrennt wurde, könnte man sich fragen, warum sie keine GPL-kompatible Lizenz verwenden, damit es in den Linux-Kernel integriert werden kann. Laut der offiziellen Website von OpenZFS muss zum Ändern der Lizenz alle Personen kontaktiert werden, die Code zur aktuellen OpenZFS-Implementierung beigetragen haben (einschließlich des anfänglichen öffentlichen ZFS-Codes und des OpenSolaris-Codes), und ihre Erlaubnis eingeholt werden. Dies war nahezu unmöglich (da einige Mitwirkende möglicherweise verstorben oder schwer zu finden waren), daher wurde entschieden, die ursprüngliche Lizenz beizubehalten.

Was ist ZFS und welche Funktionen hat es?

Wie bereits erwähnt, ist ZFS ein erweitertes Dateisystem. Daher hat es einige interessante Eigenschaften. Zum Beispiel:

  • Speicherpool
  • Kopieren beim Schreiben
  • Schnappschuss
  • Datenintegritätsprüfung und automatische Reparatur
  • RAID-Z
  • Die maximale Größe einer einzelnen Datei beträgt 16 EB (1 EB = 1024 PB)
  • Maximaler Speicher von 256 Billiarden (256*1015) ZB (1 ZB = 1024 EB)

Sehen wir uns einige dieser Funktionen genauer an.

Wie installiere ich ZFS?

Wenn Sie ZFS sofort verwenden möchten (out of the box), müssen Sie FreeBSD oder ein Betriebssystem installieren, das den illumos-Kernel verwendet. illumos ist ein Klon des OpenSolaris-Kernels.
Tatsächlich ist die Unterstützung für ZFS der Hauptgrund, warum sich einige erfahrene Linux-Benutzer für BSD entscheiden.
Wenn Sie ZFS unter Linux ausprobieren möchten, können Sie es nur auf Speicherdateisystemen verwenden. Soweit ich weiß, gibt es keine Linux-Distribution, die ZFS im Stammverzeichnis installieren und sofort verwenden kann. Wenn Sie ZFS unter Linux ausprobieren möchten, bietet das ZFS-unter-Linux-Projekt zahlreiche Tutorials, die Ihnen zeigen, wie das geht.

Speicherpool

Anders als die meisten Dateisysteme kombiniert ZFS die Funktionen eines Dateisystems und eines Volume-Managers. Dies bedeutet, dass ZFS im Gegensatz zu anderen Dateisystemen ein Dateisystem erstellen kann, das sich über einen Bereich von Festplatten oder Pools erstreckt. Darüber hinaus können Sie die Speicherkapazität des Pools durch Hinzufügen von Festplatten erhöhen. ZFS kann partitioniert und formatiert werden

Zehn Gründe und Funktionen für den Einsatz von ZFS

1. Kein fsck, scandisk mehr

Egal, ob Sie Linux, UNIX oder Windows verwenden, ich glaube, jeder hat ähnliche Erfahrungen gemacht: Wenn das System unerwartet die Stromversorgung verliert oder unzulässig herunterfährt, weist das Dateisystem nach dem Neustart des Systems inkonsistente Probleme auf. Zu diesem Zeitpunkt ist fsck oder scandisk erforderlich, um es zu reparieren, was sehr zeitaufwändig ist und am Ende möglicherweise nicht erfolgreich repariert werden kann. Noch schlimmer ist, dass ein Server, wenn er ein FSC-Problem haben sollte, nur offline genommen werden kann und vorhandene Anwendungen häufig über große Festplatten verfügen, sodass auch die entsprechende FSC-Reparaturzeit sehr lang ist, was für viele Benutzer, die den Server verwenden, fast unerträglich ist.
Nachdem Sie ZFS verwendet haben, können Sie Tools wie fsck vollständig aufgeben, da ZFS ein Dateisystem ist, das auf dem COW-Mechanismus (Copy on Write) basiert. COW überschreibt keine vorhandenen Dateien auf der Festplatte und stellt sicher, dass alle Dateien auf der Festplatte gültig sind. Daher wird es kein derart inkonsistentes Konzept geben und natürlich wird auch kein Bedarf für ein derartiges Tool bestehen.

2. Einfache Verwaltung

Als neues Dateisystem verzichtet ZFS vollständig auf die traditionelle Architektur „Dateisystem + Volume-Manager + Speicher“. Alle Speichergeräte werden über den ZFS-Pool verwaltet. Solange verschiedene Speichergeräte zum selben ZFS-Pool hinzugefügt werden, können Sie das Dateisystem in diesem ZFS-Pool problemlos verwalten und konfigurieren. Sie müssen sich nicht mehr verschiedene Fachkonzepte, verschiedene Befehle wie newfs, metinit und die Verwendung verschiedener Volume-Manager merken. In ZFS benötigen wir nur zwei Befehle, zpool (für die ZFS-Poolverwaltung) und zfs (für die ZFS-Dateisystemverwaltung), um ein 128-Bit-Dateisystem einfach zu verwalten. Beispielsweise stoßen wir häufig auf die Situation, dass die Systemdaten zu schnell wachsen und die vorhandene Speicherkapazität nicht ausreicht, sodass wir Festplatten hinzufügen müssen. Wenn wir der herkömmlichen Volume Manager-Verwaltungsmethode folgen, müssen wir viele vorhandene Faktoren im Voraus berücksichtigen und die verschiedenen Parameter berechnen, die je nach Anwendung im Voraus konfiguriert werden müssen. Mit ZFS sind unsere Systemadministratoren komplett entlastet und müssen sich nicht mehr um derart aufwändige manuelle Überlegungen und Berechnungen kümmern. Diese können wir ZFS überlassen, denn der ZFS-Pool passt sich automatisch an und wird dynamisch auf den Bedarf angepasst. Um diesem ZFS-Pool eine neue Festplatte hinzuzufügen, benötigen wir nur einen einfachen Befehl:

zpool add zfs_pool mirror c4t0d0 c5t0d0

Alle Dateisysteme, die auf diesem dynamisch angepassten ZFS-Pool basieren, können die neue Festplatte sofort verwenden und automatisch die optimiertesten Parameter auswählen. Und ZFS bietet auch eine grafische Verwaltungsoberfläche

3. Keine Kapazitätsbeschränkung

Das Dateisystem ZFS (Zettabyte File System) kann, wie der Name schon sagt, wirklich massiven Speicherplatz bereitstellen, und es ist in der Realität fast unmöglich, auf Kapazitätsprobleme zu stoßen. Unter dem vorhandenen 64-Bit-Kernel kann es einzelne Dateien mit einer Größe von bis zu 16 Exabyte (264) aufnehmen, 264 Speichergeräte verwenden und 264 Dateisysteme erstellen.

4. Vollständige Gewährleistung der Richtigkeit und Integrität der Daten

Da alle ZFS-Datenoperationen auf Transaktionen basieren, wird eine Gruppe entsprechender Operationen von ZFS als Transaktionsoperation analysiert. Eine Transaktionsoperation bedeutet, dass eine Gruppe von Operationen entweder gemeinsam fehlschlägt oder gemeinsam erfolgreich ist. Und wie bereits erwähnt, basieren alle ZFS-Operationen auf COW (Copy on Write), wodurch sichergestellt wird, dass die Daten auf dem Gerät immer gültig sind und niemals aufgrund von Systemabstürzen oder unerwarteten Stromausfällen inkonsistent werden.
Eine weitere potenzielle Bedrohung für Daten können Hardwareprobleme sein, beispielsweise Festplatten- oder RAID-Karten-Hardwareprobleme oder Treiberfehler. Dieses Problem tritt häufig bei vorhandenen Dateisystemen auf und die fehlerhaften Daten werden einfach direkt an die Anwendung auf der höheren Ebene weitergeleitet. Wir nennen dieses Problem normalerweise „Silent Data Corruption“. In ZFS werden alle Daten, egal ob Benutzerdaten oder Metadaten des Dateisystems selbst, einer 256-Bit-Prüfsumme unterzogen. Wenn ZFS Daten übermittelt, führt es eine Prüfung durch, um diese stille Datenbeschädigung vollständig auszuschließen.

5. Bieten Sie hervorragende Leistung und Skalierbarkeit

Anders als die traditionelle Architektur Dateisystem + Volume-Manager + Speicher bietet ZFS alle Funktionen direkt auf Basis der Speichergeräte. Daher verfügt es über seine eigenen einzigartigen innovativen Funktionen und seine Leistung ist natürlich außergewöhnlich.

Dynamisches Striping vs. Statisches Striping

Da ZFS auf COW und einem globalen dynamischen ZFS-Pool basiert, ist jeder Schreibvorgang ein Schreibvorgang in einen neuen Datenblock. ZFS wählt dynamisch das beste Gerät aus dem ZFS-Pool aus und schreibt es linear in einer Transaktion, wobei die Bandbreite vorhandener Geräte vollständig und effektiv genutzt wird. Wir nennen diese Funktion Dynamic Striping. Das entsprechende statische Striping ist die Methode, die von herkömmlichen Dateisystemen verwendet wird. Beim statischen Striping muss der Administrator diesen Satz von Stripes im Voraus korrekt berechnen und festlegen. Wenn ein neues Gerät hinzugefügt wird, muss es erneut manuell berechnet und festgelegt werden. Noch schwerwiegender ist, dass eine falsche manuelle Berechnung die Leistung des Systems direkt beeinträchtigt. Nach der Verwendung der Dynamic Striping-Funktion ist überhaupt kein menschliches Eingreifen mehr erforderlich. ZFS passt sich automatisch an und stellt Ihnen auf intelligente Weise die beste Ausrüstung und die schnellste Betriebsmethode zur Verfügung.

Unterstützt mehrere Blockgrößen

ZFS unterstützt Datenblockdefinitionen verschiedener Größen, von 512 Byte bis 1 MByte. Im Gegensatz zu herkömmlichen Dateisystemen, die häufig Datenblöcke mit fester Größe haben, kann ZFS dynamische Berechnungen auf Grundlage von Dateien unterschiedlicher Größe durchführen und dynamisch die besten Datenblöcke auswählen.
Denn unterschiedlich große Datenblöcke wirken sich direkt auf die tatsächliche Festplattenkapazität und Lesegeschwindigkeit aus. Bei Verwendung kleinerer Datenblöcke ist die durch die Dateispeicherung verursachte Fragmentierung geringer und das Lesen und Schreiben kleiner Dateien erfolgt schneller. Allerdings müssen mehr Metadaten erstellt werden und das Lesen und Schreiben großer Dateien nimmt mehr Zeit in Anspruch. Bei Verwendung größerer Datenblöcke werden weniger Metadaten verwendet, was das Lesen und Schreiben großer Dateien erleichtert, jedoch zu einer stärkeren Fragmentierung führt. ZFS analysiert einen Algorithmus zur Auswahl der Datenblockgröße basierend auf einer tatsächlichen Untersuchung der vorhandenen Dateinutzung und bestimmt dynamisch den optimalen Datenblock basierend auf der tatsächlichen Dateigröße. Daher ist ZFS sehr intelligent und kann ohne Eingreifen des Systemadministrators selbstoptimierende Ergebnisse erzielen. Natürlich unterstützt ZFS Benutzer auch dabei, die für eine einzelne Datei oder das gesamte Dateisystem verwendete Datenblockgröße anzupassen.

Intelligenter Prefetch

Die meisten Betriebssysteme verfügen über die Möglichkeit, Daten vorab zu lesen, und ZFS ist eine intelligentere Funktion zum Vorablesen von Daten, die direkt auf dem Dateisystem basiert. Es kann nicht nur mehrere Lesemodi intelligent identifizieren und Daten im Voraus lesen, sondern diese intelligente Identifizierung vor dem Lesen auch für jeden gelesenen Datenstrom durchführen, was für viele Streaming-Media-Anbieter eine sehr gute Sache ist.
Im Hinblick auf die Skalierbarkeit verwendet ZFS im Gegensatz zu bestehenden Dateisystemen, die meist auf einem eingeschränkten statischen Modell basieren, das dynamische Konzept des ZFS-Pools. Auch seine Metadaten sind dynamisch, Lese- und Schreibvorgänge erfolgen parallel und haben ein Prioritätskonzept, sodass selbst bei großen Datenmengen und mehreren Geräten ein lineares Leistungswachstum gewährleistet ist.

6. Selbstheilungsfunktion

ZFS Mirror 和RAID-Z

Bei herkömmlichen Methoden der Festplattenspiegelung und RAID 4- und RAID 5-Arrays tritt das oben genannte Problem auf: Stille Datenbeschädigung. Wenn ein physisches Problem auf einer Festplatte auftritt und Datenfehler verursacht, übermittelt das vorhandene Mirror-System, einschließlich RAID 4- und RAID 5-Arrays, die fehlerhaften Daten stillschweigend an die Anwendung auf höherer Ebene. Wenn dieser Fehler in den Metadaten auftritt, führt dies direkt zu einer Systempanik. Und es gibt eine noch ernstere Situation: Wenn in RAID 4- und RAID 5-Arrays das System bei einem Stromausfall den Paritätswert berechnet und neue Daten und den neuen Paritätswert erneut schreibt, sind alle im gesamten Array gespeicherten Daten wertlos.
In ZFS werden die entsprechenden Methoden ZFS Mirror und RAID-Z vorgeschlagen. Beim Lesen von Daten wird automatisch mit dem 256-Bit-Prüfcode geprüft, diese stille Datenbeschädigung wird aktiv erkannt, und dann werden die richtigen Daten über die entsprechende Mirror-Festplatte oder andere Festplatten im RAID-Z-Array abgerufen und an die Anwendung auf höherer Ebene zurückgegeben. Gleichzeitig wird die Datenbeschädigung der ursprünglichen Festplatte automatisch repariert.

Fehlermanager

Solaris 10 enthält eine ZFS-Diagnose-Engine, die mit dem Fault Manager von Solaris (einer weiteren neuen Funktion von Solaris 10) interagiert, um ZFS-Pool- und Speichergerätefehler in Echtzeit zu diagnostizieren, zu analysieren und zu melden. Benutzer können zeitnah freundliche Nachrichten vom Fault Manager erhalten. Obwohl die Diagnose-Engine keine proaktiven Maßnahmen zur Reparatur oder Lösung des Problems ergreift, fordert sie den Systemadministrator in der Meldung zu möglichen Maßnahmen auf. Eine ZFS-Fehlermeldung ähnlich der folgenden, wobei REC-ACTION die empfohlene Aktion ist:

SUNW-MSG-ID: ZFS-8000-D3, TYP: Fehler, VER: 1, SCHWEREGRAD: Schwerwiegend
EREIGNIS-ZEIT: Fr., 10. März 2006, 11:09:06 MST
PLATTFORM: SUNW, Ultra-60, CSN: -, HOSTNAME: neo
QUELLE: zfs-diagnosis, REV: 1.0
EREIGNIS-ID: b55ee13b-cd74-4dff-8aff-ad575c372ef8
DESC: Ein ZFS-Gerät ist ausgefallen. Weitere Informationen finden Sie unter http://sun.com/msg/ZFS-8000-D3.
AUTOMATISCHE ANTWORT: Es erfolgt keine automatische Antwort.
AUSWIRKUNGEN: Die Fehlertoleranz des Pools ist möglicherweise beeinträchtigt.
REC-ACTION: Führen Sie „zpool status -x“ aus und ersetzen Sie das fehlerhafte Gerät.

7. Sicherheit

In Bezug auf die Sicherheit unterstützt ZFS ACL (Read Control List) ähnlich wie NFSv4 im NT-Stil. Darüber hinaus können Benutzer für den oben erwähnten 256-Bit-Verifizierungscode aus einer Vielzahl von Verifizierungsmethoden wählen, einschließlich des SHA-256-Verifizierungsalgorithmus, wodurch die Datensicherheit auf der Ebene der physischen Speichereinheit gewährleistet wird.

8. Super leistungsstarke Funktion

Als „letztes Dateisystem“ deckt ZFS die grundlegenden Dateisystem- und Volume-Verwaltungsfunktionen ab und bietet gleichzeitig viele Superfunktionen auf Unternehmensebene: Kontingent, Reservierung, Komprimierung, Snapshot und Klonen. Und es ist sehr schnell. Mit diesem Dateisystem benötigen Sie keinen Volume Manager mehr.

9. Kompatibilität

ZFS ist ein Dateisystem, das vollständig mit der POSIX-Spezifikation kompatibel ist, sodass Anwendungen der oberen Schichten völlig unberührt bleiben. ZFS bietet außerdem ein emuliertes Volume-Modul, das jedes ZFS-Dateisystem als normales Blockgerät verwenden kann. Gleichzeitig kann ZFS auch auf Basis des Volume Managers erstellte Volumes als Speichergeräteeinheit verwenden. Dies gibt jedem die größtmögliche Freiheit, die verschiedenen Funktionen von ZFS zu nutzen, ohne Anwendungen oder vorhandene Dateisysteme zu ändern.

10. Open Source

ZFS wird von Sun Microsystems als Open-Source-Projekt von OpenSolaris betrieben und ist völlig kostenlos nutzbar, was bedeutet, dass wir nicht nur die hohe Qualität eines kommerziellen Unternehmens genießen können, sondern auch die Vorteile des Open-Source-Modells.
Obwohl derzeit nur Solaris dieses Dateisystem unterstützt, wird dieses Open-Source-Modell definitiv mehr ZFS-basierte Anwendungen fördern. Einige ausländische Entwickler portieren ZFS jetzt auf Linux und Mac OS. Wenn Sie ZFS ausprobieren möchten, müssen Sie die neueste Version von Solaris 10 6/06 herunterladen (http://www.sun.com/software/solaris/get.jsp), da es derzeit im Lieferumfang von Solaris 10 enthalten ist.

Weitere Hinweise

In diesem Artikel werden die Vorteile von ZFS erläutert. Lassen Sie mich Ihnen nun ein sehr reales Problem mit ZFS schildern. Die Verwendung von RAID-Z kann kostspielig sein, da Sie zum Erhöhen des Speicherplatzes eine große Anzahl von Festplatten kaufen müssen.
Haben Sie ZFS schon verwendet? Wie sind Ihre Erfahrungen?

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

<<:  So migrieren Sie MySQL-Daten richtig nach Oracle

>>:  Zusammenfassung der Grundlagen der Vue-Komponenten

Artikel empfehlen

Detaillierte Einführung in das benutzerdefinierte Docker-Netzwerk

Inhaltsverzeichnis Benutzerdefiniertes Docker-Net...

Best Practices zur Implementierung einfacher Jira-Projekte mit React+TS

Eine Reihe von Projekten für die Ausbildung reagi...

Vue-Komponente zur Realisierung einer Karussell-Animation

In diesem Artikelbeispiel wird der spezifische Co...

Absteigender Index in MySQL 8.0

Vorwort Ich glaube, jeder weiß, dass Indizes geor...

Detaillierte Erklärung zur Verwendung des Schlüsselworts ESCAPE in MySQL

MySQL-Escape Escape bedeutet die ursprüngliche Se...

Vue implementiert das Methodenbeispiel der Tab-Routing-Umschaltkomponente

Vorwort In diesem Artikel wird die Verwendung des...

Entwerfen Sie einen Datensammler mit Vue

Inhaltsverzeichnis Szenario Kernthemen Statusüber...

Zusammenfassung mehrerer APIs oder Tipps in HTML5, die Sie nicht verpassen sollten

In früheren Blogbeiträgen habe ich mich auf einige...

So finden und löschen Sie doppelte Zeilen in MySQL

Inhaltsverzeichnis 1. So finden Sie doppelte Zeil...

Implementierung eines einfachen Timers basierend auf der Vue-Methode

Der einfache Timer von Vue dient Ihnen als Refere...

Lösung für die Navicat Premier-Remoteverbindung zum MySQL-Fehler 10038

Schlägt die Remote-Verbindung zu MySQL fehl, kann...

So erstellen Sie ein React-Projekt mit Vite

Inhaltsverzeichnis Vorwort Erstellen Sie ein Vite...