ZFS -Konzepte und Tutorial

ZFS -Konzepte und Tutorial

ZFS: Konzepte und Tutorial

Auf Ihrer Suche nach Datenintegrität mit OpenZFS ist unvermeidbar. Tatsächlich wäre es ziemlich bedauerlich, wenn Sie etwas anderes als ZFS verwenden, um Ihre wertvollen Daten zu speichern. Viele Menschen zögern jedoch, es auszuprobieren. Grund dafür ist, dass ein Dateisystem für Unternehmensqualität mit einer Vielzahl von integrierten Funktionen schwierig zu verwenden und zu verwalten ist. Nichts kann weiter von der Wahrheit entfernt sein. Die Verwendung von ZFS ist so einfach wie es nur geht. Mit einer Handvoll Terminologien und noch weniger Befehlen sind Sie bereit, ZFS überall zu verwenden - vom Unternehmen bis zu Ihrem Haus-/Büro -NAS.

In den Worten der Schöpfer von ZFS: „Wir möchten das Hinzufügen von Speicher in Ihrem System so einfach machen wie das Hinzufügen neuer RAM -Sticks.”

Wir werden später sehen, wie das gemacht wird. Ich werde FreeBSD 11 verwenden.1 Um die folgenden Tests durchzuführen, sind die Befehle und die zugrunde liegende Architektur für alle Linux -Verteilungen ähnlich, die OpenZFs unterstützen.

Der gesamte ZFS -Stapel kann in den folgenden Schichten angelegt werden:

  • Speicheranbieter - Spinnscheiben oder SSDs
  • VDEVS - Gruppierung von Speicheranbietern in verschiedene RAID -Konfigurationen
  • Zpools - Aggregation von VDEVs in einzelne Speicherpools
  • Z -Filesystem - Datensätze mit coolen Funktionen wie Komprimierung und Reservierung.

Zpool erstellen

Beginnen wir zunächst mit einem Setup, wo wir sechs 20 -GB -Scheiben haben ADA [1-6]

$ ls -al /dev /ada?

Der ADA0 Dort ist das Betriebssystem installiert. Der Rest wird für diese Demonstration verwendet.

Die Namen Ihrer Festplatten können sich je nach Art der verwendeten Schnittstelle unterscheiden. Typische Beispiele sind: DA0, ADA0, ACD0 Und CD. Schauen hinein/devSie geben Ihnen eine Vorstellung davon, was verfügbar ist.

A Zpool wird erstellt von Zpool erstellen Befehl:

$ zpool erstellen ourFirstzpool ada1 ada2 ada3
# Und führen Sie dann den folgenden Befehl aus:
$ zpool Status

Wir werden eine nette Ausgabe sehen, die uns detaillierte Informationen zum Pool gibt:

Dies ist der einfachste Zpool ohne Redundanz oder Verwerfungsverträglichkeit. Jede Festplatte ist sein eigener VDEV.

Sie erhalten jedoch immer noch alle ZFS.

Dateisysteme, a.k.Eine Datensätze können jetzt auf folgende Weise auf diesem Pool erstellt werden:

$ zfs erstellen ourFirstzpool/dataset1

Verwenden Sie nun Ihre Vertraute df -h Befehl oder Ausführen:

$ ZFS -Liste

Um die Eigenschaften Ihres neu erstellten Dateisystems zu sehen:

Beachten Sie, wie der gesamte Speicherplatz von den drei Disks (VDEVs) für das Dateisystem verfügbar ist. Dies gilt für alle Dateisysteme, die Sie im Pool erstellen, sofern wir nichts anderes angeben.

Wenn Sie eine neue Festplatte hinzufügen möchten (VDEV), ADA4, Sie können dies durch Laufen tun:

$ zpool fügen Sie unser firstzpool ada4 hinzu

Wenn Sie nun den Status Ihres Dateisystems sehen

Die verfügbare Größe ist jetzt ohne zusätzlichen Aufwand gewachsen, die Partition zu erweitern oder zu unterstützen und die Daten im Dateisystem wiederherzustellen.


Virtuelle Geräte - VDEVS

VDEVs sind die Bausteine ​​eines Zpool . Schauen wir uns einige der wichtigsten Arten von VDEVs an:

1. Raid 0 oder Streifen

Jede Festplatte fungiert als sein eigener VDEV. Keine Datenreduktion und die Daten verteilten sich auf alle Festplatten auf. Auch als Striping bekannt. Das Versagen eines einzelnen Scheibens würde bedeuten, dass der gesamte Zpool unbrauchbar gemacht wird. Der nutzbare Speicher entspricht der Summe aller verfügbaren Speichergeräte.

Der erste Zpool, den wir im vorherigen Abschnitt erstellt haben.

2. Raid 1 oder Spiegel

Die Daten werden zwischen dem zwischen NScheiben. Die tatsächliche Kapazität des VDEV ist durch die rohe Kapazität der kleinsten Scheibe darin begrenzt N-Disk-Array. Die Daten werden zwischen dem zwischen N Festplatten bedeutet, dass Sie dem Versagen von Fehler standhalten können N-1 Scheiben.

Um ein gespiegeltes Array zu erstellen, verwenden Sie den Keyword -Spiegel:

$ zpool erstellen Tankspiegel ADA1 ADA2 ADA3

Die Daten an geschriebene an Panzer Zpool wird unter diesen drei Scheiben widerspiegelt und der tatsächliche verfügbare Speicher entspricht der Größe der kleinsten Scheibe, in diesem Fall etwa 20 GB.

In Zukunft möchten Sie diesem Pool möglicherweise mehr Festplatten hinzufügen, und es gibt zwei mögliche Dinge, die Sie tun können. Zum Beispiel Zpool Panzer Hat drei Festplatten, die Daten als einzelner VDEV Mirror-0 spiegeln:

Möglicherweise möchten Sie zusätzliche Festplatten hinzufügen, sagen wir ADA4, Gleiche die Daten widerspiegeln. Dies kann durch Ausführen des Befehls erfolgen:

$ zpool anbringen Tank ADA1 ADA4

Dies würde dem VDEV eine zusätzliche Festplatte hinzufügen, die bereits die Festplatte hat ADA1 darin, aber nicht die verfügbare Speicher erhöhen.

In ähnlicher Weise können Sie Fahrten von einem Spiegel durch Laufen abnehmen:

$ zpool detach Tank ADA4

Andererseits möchten Sie möglicherweise einen zusätzlichen VDEV hinzufügen, um die Kapazität von zpool zu erhöhen. Dies kann mit dem Befehl Zpool -Add -Befehl erfolgen:

$ zpool hinzufügen Tankspiegel ADA4 ADA5 ADA6


Die obige Konfiguration würde es ermöglichen, dass Daten über VDEVS Mirror-0 und Mirror-1 gestreift werden. In diesem Fall können Sie 2 Scheiben pro VDEV verlieren, und Ihre Daten sind weiterhin intakt. Der gesamte nutzbare Raum steigt auf 40 GB.

3. RAID-Z1, RAID-Z2 und RAID-Z3

Wenn ein VDEV vom Typ RAID-Z1 ist, muss er mindestens 3 Scheiben verwenden und der VDEV kann den Niedergang von einem dieser Scheiben tolerieren. RAID-Z-Konfigurationen erlauben nicht das Anbringen von Scheiben direkt an einem VDEV. Sie können jedoch mehr VDEVs mithilfe von Verwendung hinzufügen Zpool add, so dass die Kapazität des Pools weiter zunehmen kann.

RAID-Z2 würde mindestens 4 Scheiben pro VDEV erfordern und bis zu 2 Scheibenversagen tolerieren. Gleiches folgt RAID-Z3, das mindestens 5 Scheiben pro VDEV benötigt, wobei bis zu 3 Scheitern der Fehlertoleranz vor der Wiederherstellung hoffnungslos wird.

Lassen Sie uns einen Raid-Z1-Pool erstellen und ihn anbauen:

$ zpool erstellen Tank Raidz1 ADA1 ADA2 ADA3

Der Pool verwendet drei 20 -GB -Scheiben, die dem Benutzer 40 GB davon zur Verfügung stellen.

Das Hinzufügen eines anderen VDEV würde 3 zusätzliche Festplatten erfordern:

$ zpool hinzufügen Tank Raidz1 ADA4 ADA5 ADA6


Die gesamten nutzbaren Daten betragen jetzt 80 GB und Sie können bis zu 2 Scheiben (eines von jedem VDEV) verlieren und trotzdem die Hoffnung auf Genesung haben.

Abschluss

Jetzt wissen Sie genug über ZFS, um alle Ihre Daten mit Zuversicht in sie zu importieren. Von hier an können Sie verschiedene andere Funktionen nachschlagen, die ZFS wie die Verwendung von NVMEs mit hoher Geschwindigkeit zum Lesen und Schreiben von Caches, in der integrierten Komprimierung für Ihre Datensätze und anstatt von allen verfügbaren Optionen zu überwinden, suchen Sie nach dem, was Sie für Ihre benötigen besondere Anwendungsfall.

In der Zwischenzeit gibt es noch ein paar hilfreiche Tipps zur Auswahl der Hardware, denen Sie folgen sollten:

  1. Verwenden Sie niemals Hardware-Raid-Controller mit ZFS.
  2. Fehlerkorrektur RAM (ECC) wird empfohlen, aber nicht obligatorisch
  3. Datendeduplizierungsfunktion verbraucht viel Speicher, verwenden Sie stattdessen Komprimierung.
  4. Datenreduktion ist keine Alternative für die Sicherung. Haben Sie mehrere Backups und speichern Sie diese Backups mit ZFS!