Zum Hauptinhalt springen

ZFS-Speicher

Wichtiger Hinweis

ZFS bietet erweiterte Datenintegrität, flexible Speicherlösungen und hohe Leistung für Ihr Unraid-System. Dieser Leitfaden erklärt die Kernkonzepte von ZFS und führt Sie durch die Verwaltung von ZFS-Pools direkt über das Unraid WebGUI. Egal, ob Sie neuen ZFS-Speicher einrichten oder einen bestehenden Pool integrieren, hier finden Sie die Schritte und den Kontext, die Sie benötigen, um sicher zu starten.

ZFS bietet erweiterte Datenintegrität, flexible Speicherlösungen und hohe Leistung für Ihr Unraid-System. Dieser Leitfaden erklärt die Kernkonzepte von ZFS und führt Sie durch die Verwaltung von ZFS-Pools direkt über das Unraid WebGUI. Egal, ob Sie neuen ZFS-Speicher einrichten oder einen bestehenden Pool integrieren, hier finden Sie die Schritte und den Kontext, die Sie benötigen, um sicher zu starten.


Warum ZFS?

ZFS ist ein modernes Dateisystem und Volume-Manager, der Ihre Daten schützt, Korruption verhindert und die Speicherverwaltung vereinfacht.

Mit ZFS erhalten Sie:

  • Automatische Datenintegritätschecks und Selbstheilung
  • Eingebaute RAID-Unterstützung (Spiegelungen, RAIDZ)
  • Snapshots und Klone für einfache Backups und Rollbacks
  • ZFS send/receive für effiziente Replikation
  • Kompression in Echtzeit

Unraid unterstützt ZFS für jeden Speicherpool. Sie können einen neuen ZFS-Pool erstellen, einen Pool aus einem anderen System importieren oder das einzigartige Hybrid-Setup von Unraid nutzen: Fügen Sie ein ZFS-formatiertes Laufwerk direkt dem Unraid array hinzu (nicht einem Pool) und kombinieren ZFS-Funktionen mit dem parity-Schutz von Unraid.

Beispiel

Sie können ZFS-snapshots und Replikation auf einem einzelnen Laufwerk als Backup-Ziel nutzen oder einen schnellen SSD-ZFS-Pool auf ein ZFS-Laufwerk im array replizieren, das durch Unraids parity geschützt ist – Sie erhalten damit das Beste aus beiden Welten.

notiz

Der ZFS-Hybrid-Ansatz im array ist für bestimmte Backup- oder Replikationsszenarien hilfreich, ersetzt aber keinen vollständigen ZFS-Pool. ZFS-Laufwerke im array werden einzeln verwaltet; Sie erhalten nicht die kombinierte Leistung, Redundanz oder Selbstheilung eines echten ZFS-Pools mit mehreren Festplatten. Für die vollständige ZFS-Funktionalität sollten Sie immer dedizierte ZFS-Pools verwenden.

Pools, Vdevs und Redundanz

Ein ZFS-Pool (genannt „zpool“) besteht aus einem oder mehreren vdevs (virtuelle Geräte). Jedes vdev ist eine Gruppe physischer Festplatten mit einem eigenen Redundanzlevel. ZFS schreibt Daten über vdevs, aber jedes vdev ist für seine Ausfallsicherheit verantwortlich.

vorsicht

Redundanz gilt immer pro vdev. Wenn ein vdev ausfällt, fällt der gesamte Pool aus, auch wenn andere vdevs gesund sind. Planen Sie Ihre vdevs sorgfältig!


Erstellen eines ZFS-Pools

So erstellen Sie einen ZFS-Pool über das WebGUI:

  1. Stoppen Sie das array.
  2. Pool hinzufügen klicken.

  1. Wählen Sie einen Namen für Ihren Pool (zum Beispiel raptor).
  2. Stellen Sie die Anzahl der Slots auf die Anzahl der Festplatten ein, die Sie in Ihren primären Daten-Vdev(s) haben möchten.
notiz

Diese anfängliche Steckplatzanzahl gilt nur für Daten-vdevs. Unterstützungs-vdevs (wie Protokoll- oder Cache-Laufwerke) können nach der Erstellung des Pools separat hinzugefügt werden.

  1. Weisen Sie dem Pool Festplatten zu (die Reihenfolge spielt keine Rolle).

  1. Klicken Sie auf den Pool-Namen (z.B. raptor), um den Konfigurationsbildschirm zu öffnen.
  2. Stellen Sie den Dateisystemtyp auf zfs oder zfs-verschlüsselt (für LUKS-Verschlüsselung) ein.

  1. Wählen Sie Ihr Zuordnungsprofil - dies bestimmt die Redundanz und Leistung Ihres Pools.
Hinweis

So fügen Sie eine ZFS-Festplatte zum array hinzu:

  1. Aktivieren Sie die Komprimierung, wenn gewünscht (empfohlen für die meisten Workloads).
  2. Klicken Sie auf Erledigt, dann starten Sie das array.

Eine ZFS-Disk ins Array integrieren (Hybrid-Setup)

Sie können ein einzelnes ZFS-Laufwerk in Ihr Unraid array integrieren (nicht in einen ZFS-Pool), um ZFS-Funktionen mit dem parity-Schutz von Unraid zu kombinieren.

Was das ermöglicht
  • Parity-Schutz: Die ZFS-Festplatte ist durch die array-parity von Unraid geschützt, wodurch Ihre Daten vor einzelnen (oder mehreren, abhängig von Ihren parity drives) Festplattenausfällen gesichert sind.

  • Datenintegrität: ZFS bietet Integritätsprüfungen auf Blockebene (Prüfsummen). Während eine einzelne Festplatte nicht zur Selbstheilung von Bitrot fähig ist, erkennt ZFS Korruption und warnt Sie, sodass Sie vor einem schleichenden Datenverlust aus einem Backup wiederherstellen können.

  • ZFS-Funktionen: Sie können auf diesem Laufwerk ZFS-snapshots und Replikation nutzen, sodass es sich ideal als Backup-Ziel, für bestimmte Datensätze oder für Szenarien eignet, in denen Sie ZFS-Funktionen zusammen mit klassischer Unraid-Speicherverwaltung verwenden möchten.

So fügen Sie eine ZFS-Festplatte zum array hinzu:

  1. Gehen Sie zum Main-Tab im WebGUI.
  2. Stoppen Sie das array.
  3. Klicken Sie auf einen leeren Slot unter Array Devices.
  4. Wählen Sie die Festplatte aus, die Sie hinzufügen möchten.

  1. Wählen Sie unter Dateisystem zfs oder zfs-verschlüsselt.

  1. Klicken Sie auf Übernehmen.
  2. Starten Sie das array und lassen Sie die Festplatte bei Bedarf formatieren.

Wahl eines Zuordnungsprofils

Wenn Sie einen ZFS-Pool einrichten, bestimmt Ihr Zuweisungs-Profil, wie Ihre Daten geschützt werden, wie Ihr Pool performt und wie Sie ihn erweitern können. Hier ist ein einfacher Vergleich, der Ihnen hilft zu entscheiden, welches Profil am besten zu Ihren Anforderungen passt:

ProfilRedundanzLeistungErweiterungSpeichereffizienzTypischer AnwendungsfallEmpfohlene Anzahl von Festplatten pro vdev
StripeKeineSchnell, aber riskantHinzufügen von mehr Festplatten100%Temporärer/zwischengespeicherter Speicherbeliebige Anzahl
Spiegel1:1 (RAID 1-Stil)Hervorragend für zufällige I/OHinzufügen von mehr Spiegelungen50%Hohe Leistung, einfache Erweiterung2 Festplatten (können mehr Spiegel hinzufügen)
RAIDZ11 Festplatte pro VdevSchnell für große Dateien. Nicht ideal für kleine oder zufällige Schreibvorgänge.Neue Vdevs hinzufügenHochAllgemeine Nutzung, 1-Festplatten-Toleranz3-6 Festplatten (max. 8)
RAIDZ22 Festplatten pro VdevWie Z1, aber leicht langsamere Schreibvorgänge (zusätzliche Parität)Neue Vdevs hinzufügenMäßigWichtige Daten, 2-Festplatten-Toleranz6-12 Festplatten (max. 14)
RAIDZ33 Festplatten pro VdevWie Z2, mit mehr Schreibaufwand (für maximale Sicherheit)Neue Vdevs hinzufügenNiedrigerMission-kritisch, 3-Festplatten-Toleranz10-16 Festplatten (max. 20)
Optimierte Festplattenzahlen

Dies bietet zwei wesentliche Vorteile:

Beispiele für optimierte Konfigurationen:

  • RAIDZ1: 3, 5 oder 9 Festplatten (Datenträger = 2, 4 oder 8)
  • RAIDZ2: 4, 6 oder 10 Festplatten (Datenträger = 2, 4 oder 8)
  • RAIDZ3: 5, 9 oder 17 Festplatten (Datenträger = 2, 6 oder 14)

Beachten Sie, dass diese Optimierungen optional sind – die oben genannten Empfehlungen sollten für die meisten Anwendungsfälle gut funktionieren.

Auswahlhilfe
  • Verwenden Sie Mirror, wenn Sie die beste Leistung und einfache, flexible Erweiterung wünschen und es Ihnen nichts ausmacht, mehr Speicherplatz für Redundanz zu nutzen.
  • Wählen Sie RAIDZ1/2/3, wenn Sie den nutzbaren Speicher maximieren und große Dateien speichern möchten, beachten Sie jedoch, dass die Erweiterung weniger flexibel ist und die Leistung bei zufälligem Schreiben geringer ist.
  • Stripe ist nur für nicht-kritische, temporäre Daten geeignet – bei Ausfall einer Festplatte verlieren Sie alles.

Topologie und Erweiterung

Wie Sie Festplatten in Vdevs gruppieren, beeinflusst sowohl die Datensicherheit als auch die Geschwindigkeit.

  • Wenn Sie alle Laufwerke in ein großes RAIDZ2-vdev einfügen, können Sie zwei beliebige Laufwerke verlieren, ohne Daten zu verlieren. Eine Erweiterung bedeutet jedoch das Hinzufügen eines weiteren vollständigen vdevs.
  • Sie gewinnen eine bessere parallele Leistung, wenn Sie Laufwerke in mehrere kleinere RAIDZ1-vdevs aufteilen. Seien Sie vorsichtig; wenn zwei Laufwerke im selben vdev ausfallen, verlieren Sie den gesamten Pool.
  • ZFS streift Daten über Vdevs, nicht einzelne Festplatten, daher können mehr Vdevs bei Workloads mit vielen kleinen Dateien oder zufälligen I/O zu besseren Leistungen führen.
  • Das Erweitern eines ZFS-Pools bedeutet in der Regel das Hinzufügen eines neuen Vdevs mit demselben Layout, nicht nur einer einzelnen Festplatte.
Hinweis

Planen Sie das Layout Ihres Pools, um Ihren Anforderungen und zukünftigem Wachstum gerecht zu werden. Im Gegensatz zum Unraid array können Sie mit dem WebGUI keine einzelne Festplatte zu einem vorhandenen vdev hinzufügen.


Kompression und RAM

Wenn Sie einen ZFS-Pool in Unraid importieren, müssen Sie alle Laufwerke Ihres ursprünglichen Pools, einschließlich der für Unterstützungs-vdevs genutzten Laufwerke, den Pool-Slots zuweisen. Unraid erkennt die Rolle jedes Laufwerks (Daten, Log, Cache, Special oder Dedup) automatisch, sobald das array gestartet ist. Sie müssen nicht manuell festlegen, welches Laufwerk welche Aufgabe hat.

ZFS-Kompression arbeitet transparent – sie funktioniert im Hintergrund und schrumpft Daten, bevor sie die Festplatte erreicht.

Dies bietet zwei wesentliche Vorteile:

  • Reduzierte Festplattennutzung: Weniger Speicherplatz wird genutzt.
  • Verbesserte Leistung: Weniger Daten zu schreiben und zu lesen kann zu schnelleren Vorgängen führen, besonders bei modernen CPUs.

Der ZFS RAM-Mythos - Klicken, um ein-/auszuklappen

Vielleicht sind Sie auf die veraltete Empfehlung gestoßen: „ZFS benötigt 1 GB RAM pro 1 TB Speicher.“ Dies ist für die meisten Benutzer nicht mehr zutreffend. ZFS nutzt RAM für seinen Adaptive Replacement Cache (ARC), der häufig abgerufene Lesevorgänge beschleunigt.

Unraid beschränkt ZFS automatisch auf die Nutzung eines angemessenen Teils des RAM Ihres Systems (in der Regel 1/8 des gesamten RAM). Dies ermöglicht, dass ZFS gut performt, ohne Docker-Container, VMs oder das Unraid-Betriebssystem zu beeinträchtigen.

info

ZFS skaliert gut mit verfügbarem Speicher. Mehr RAM kann die Cache-Leistung verbessern, aber ZFS funktioniert zuverlässig mit bescheidenen Hardwarevoraussetzungen. Lassen Sie sich durch alte Empfehlungen nicht davon abhalten, ZFS auf Unraid zu verwenden.


Importieren von auf anderen Systemen erstellten ZFS-Pools

Unraid kann mit minimalem Aufwand ZFS-Pools importieren, die auf anderen Plattformen erstellt wurden.

So importieren Sie einen ZFS-Pool - Klicken, um ein-/auszuklappen
  1. Array stoppen: Stellen Sie sicher, dass Ihr Unraid-array angehalten ist.
  2. Neuen Pool hinzufügen: Klicken Sie auf Pool hinzufügen.
  3. Alle Laufwerke zuweisen:
    • Stellen Sie Anzahl der Daten-Slots auf die Gesamtzahl der Laufwerke in Ihrem ZFS-Pool ein (einschließlich Daten-Vdevs und Support-Vdevs).
    • Weisen Sie jedem Laufwerk den richtigen Slot zu.
    • Beispiel: Für einen Pool mit einem 4-Laufwerke gespiegelt vdev und einem 2-Laufwerke L2ARC vdev, setzen Sie 6 Slots und weisen Sie allen sechs Laufwerken zu.
  4. Stellen Sie Dateisystem auf "Auto": Klicken Sie auf den Pool-Namen (z.B. raptor) und stellen Sie Dateisystem auf Auto.
  5. Abschließen und Array starten: Klicken Sie auf Erledigt, dann starten Sie das array.
Automatische Erkennung

Unraid erkennt und importiert den ZFS-Pool automatisch. Unterstützungs-vdevs (wie Log, Cache/L2ARC, Special/Dedup) werden unter Subpools im WebGUI aufgelistet. Es ist nicht erforderlich, Subpools nach dem Start des Imports separat hinzuzufügen. Unraid importiert sie automatisch zusammen mit den Hauptdatenträgern, wenn alle erforderlichen Laufwerke zugewiesen sind.

Es wird dringend empfohlen, nach dem Import einen scrub durchzuführen, um die Datenintegrität zu überprüfen.

  • Klicken Sie auf den Poolnamen (z.B. raptor), um seine Konfiguration zu öffnen.

  • Unter Poolstatus den Status überprüfen und auf Scrub klicken.


Unterstützende vdevs (Unterpools)

Unraid bezeichnet ZFS-Unterstützungs-vdevs als Subpools. Die meisten Benutzer benötigen diese nicht, aber fortgeschrittene Benutzer könnten ihnen begegnen:

Unterstützender vdev (Unterpool)BeschreibungDetails / Beispiele
Spezial-vdevSpeichert den Appdata-Share für schnelle, reaktionsschnelle Container und Datenbanken. Dies unterstützt snapshots für einfache Rollbacks und kann auch VMs bei hoher I/O-Last beherbergen.Viele Benutzer wählen einen 2-Laufwerk-ZFS-Mirror für diesen Zweck. Es ist einfach zu erweitern und bietet starke Leistung.
Dedup vdevNutzen Sie einen ZFS-Mirror oder RAIDZ2-Pool für unersetzbare Dateien wie Fotos, Steuerunterlagen oder user share-Daten. ZFS prüft auf Korruption und heilt mit Redundanz automatisch.Dieses Setup schützt kritische Daten mit automatischen Integritätsüberprüfungen und Selbstheilungsmöglichkeiten.
Log vdev (SLOG)Verwenden Sie ein ZFS-Laufwerk (auch im Unraid array) als Replikationsziel. Sie können andere Pools lokal oder von einem anderen Unraid-Server replizieren.Nutzen Sie zfs send/receive oder Tools wie Syncoid für schnelle und zuverlässige Backups und Wiederherstellungen.
Cache vdev (L2ARC)Bewahren Sie punktuelle snapshots kritischer Daten oder Container auf. snapshots lassen sich automatisch planen und sind speichereffizient.Diese Funktion ermöglicht eine schnelle Wiederherstellung nach versehentlichen Löschungen oder Fehleinstellungen.
Ersatz vdevIn Unraid nicht unterstützt (ab 7.1.2)
vorsicht

Die meisten Unraid-Benutzer sollten Unterstützungs-vdevs/Subpools vermeiden, es sei denn, Sie haben spezifische und gut verstandene Anforderungen. Sie sind für spezialisierte Arbeitslasten ausgelegt und können bei missbräuchlicher Verwendung Komplexität oder Risiko einführen.


Kritische unterstützende vdev-Laufwerke beim Import nicht zugewiesen

Wenn Sie einen ZFS-Pool in Unraid importieren, müssen Sie alle Laufwerke Ihres ursprünglichen Pools, einschließlich derer, die für Unterstützungs-vdevs verwendet wurden, den Pool-Slots zuweisen. Unraid erkennt die Rolle jedes Laufwerks automatisch (Daten, Log, Cache, Special oder Dedup), sobald das array gestartet ist. Sie müssen nicht selbst festlegen, welches Laufwerk welchen Zweck hat.

Wenn Sie vergessen, ein Laufwerk, das Teil eines unterstützenden vdev war, beim Import einzubeziehen, hängt das Ergebnis von der Funktion des vdev ab:

vdev-TypWenn das Laufwerk beim Import fehltErgebnis
Spezial-vdev oder Dedup vdevPool wird nicht importiert oder ist unbenutzbarDiese vdevs speichern kritische Metadaten oder Deduplikationstabellen. Ohne sie kann ZFS den Pool nicht sicher einhängen.
Log (SLOG) vdevPool wird importiert, aber die Synchronisierungs-Schreibleistung nimmt ab.Der Pool bleibt zugänglich, aber Sie könnten eine langsamere Leistung für Arbeitslasten bemerken, die auf Synchronisierungs-Schreibvorgänge angewiesen sind.
Cache (L2ARC) vdevPool wird importiert, aber der Lese-Cache geht verlorenDer Pool funktioniert normal, aber Sie verlieren die Leistungssteigerung durch den L2ARC-Cache. Es gehen keine Daten verloren.
Hinweis

Weisen Sie beim Importieren in Unraid immer alle physischen Laufwerke aus Ihrem ursprünglichen ZFS-Pool zu, einschließlich aller Unterstützungs-vdevs. Dies gewährleistet eine reibungslose Erkennung und Integration. Für neue in Unraid erstellte Pools sind Unterstützungs-vdevs optional und für die meisten Benutzer in der Regel nicht erforderlich.


Speicher erweitern

ZFS ist mächtig, aber es ist wichtig zu verstehen, wie seine Speichererweiterung funktioniert - besonders wenn Sie zukünftiges Wachstum planen.

Historisch gesehen haben ZFS-vdevs eine feste Breite. Sie können kein Laufwerk zu einem bestehenden RAIDZ-vdev hinzufügen, um es größer zu machen.

Möglichkeiten zur Erweiterung Ihres Pools umfassen:

  • Hinzufügen eines neuen vdevs: Erweitern Sie Ihren Pool durch Hinzufügen eines neuen vdevs (wie einer neuen Spiegelung oder einer RAIDZ-Gruppe). Dies erhöht die Kapazität, aber Sie müssen Laufwerke in Sätzen hinzufügen, die der Konfiguration des vdevs entsprechen.
  • Austausch von Laufwerken durch größere: Ersetzen Sie jedes Laufwerk in einem vdev, eines nach dem anderen, durch eine größere Festplatte. Siehe Laufwerk Ersatz für detaillierte Verfahren. Nachdem alle Laufwerke ersetzt sind und der Pool sich auflöst, erhöht sich die Kapazität des vdev.
  • Erstellen eines neuen Pools: Das Starten eines neuen ZFS Pools hält Dinge für verschiedene Datentypen oder Arbeitslasten organisiert und unabhängig.
Vorausschauende Planung

Bevor Sie Ihren Pool aufbauen, überlegen Sie, wie viel Speicher Sie benötigen werden - nicht nur heute, sondern auch in der Zukunft. ZFS belohnt gutes Planen, insbesondere wenn Sie störende Erweiterungen später vermeiden möchten.


Die Verwendung von ZFS-Pools auf einem vorhandenen Unraid-Server

Wenn Sie ein traditionelles Unraid array laufen haben und ZFS Pools hinzufügen möchten, finden Sie hier einige effektive Möglichkeiten, sie zu integrieren:

AnwendungsfallBeschreibungDetails / Beispiele
Schneller SSD/NVMe-Pool für App-Daten & DockerSpeichern Sie den appdata-Share für schnelle, reaktionsfähige Container und Datenbanken. Dies unterstützt snapshots für einfache Rollbacks und kann auch VMs für hohe I/O hosten.Viele Benutzer wählen einen 2-Laufwerk-ZFS-Mirror für diesen Zweck. Es ist einfach zu erweitern und bietet starke Leistung.
ZFS-Pool für wichtige DatenNutzen Sie einen ZFS-Mirror oder RAIDZ2-Pool für unersetzbare Dateien wie Fotos, Steuerunterlagen oder user share-Daten. ZFS prüft auf Korruption und heilt mit Redundanz automatisch.Dieses Setup schützt kritische Daten mit automatischen Integritätsüberprüfungen und Selbstheilungsmöglichkeiten.
Tägliches Backup oder ReplikationszielNutzen Sie ein ZFS-Laufwerk (auch im Unraid array) als Replikationsziel. Sie können andere Pools lokal oder von einem anderen Unraid-Server replizieren.Nutzen Sie zfs send/receive oder Tools wie Syncoid für schnelle und zuverlässige Backups und Wiederherstellungen.
Snapshot-basierte WiederherstellungspoolBehalten Sie punktuelle snapshots kritischer Daten oder Container bei. snapshots können automatisch geplant und sind platzsparend.Diese Funktion ermöglicht eine schnelle Wiederherstellung nach versehentlichen Löschungen oder Fehleinstellungen.

Vermeidung häufiger ZFS-Fehler

ZFS ist ein leistungsstarkes Dateisystem, jedoch gibt es einige häufige Fallstricke, die seine Vorteile untergraben können. Es ist wichtig, die folgenden Punkte zu beachten, bevor Sie Ihren Pool konfigurieren, um eine reibungslosere Erfahrung zu gewährleisten:

  • Laufwerksgrößen-Mismatch in RAIDZ: ZFS behandelt alle Festplatten in einem RAIDZ-vdev als die Größe der kleinsten. Um die beste Effizienz zu gewährleisten, verwenden Sie immer gleich große Laufwerke innerhalb jedes vdevs.

  • Erweiterung von RAIDZ-vdevs über das WebGUI: Während Unraid Version 7.1.x und neuer die Erweiterung von RAIDZ über die Befehlszeile unterstützt, ist diese Funktion im WebGUI noch nicht verfügbar. Zurzeit erweitern Sie über die CLI oder fügen neue vdevs über die GUI hinzu.

  • ZFS-Laufwerk vs. vollständiger zpool: Ein einzelnes ZFS-formatiertes Laufwerk im Unraid array bietet nicht die Redundanz oder den Funktionsumfang eines dedizierten ZFS-Pools. Um erweiterte Funktionen zu nutzen, verwenden Sie dedizierte Pools.

  • Deduplikation ohne ausreichenden RAM: Deduplikation erfordert beträchtlichen Speicher, und die Aktivierung ohne ausreichenden RAM kann die Leistung erheblich beeinträchtigen. Aktivieren Sie die Deduplikation nur, wenn Sie die Anforderungen vollständig verstehen.

  • Vdev-Redundanz ist lokal: Die Redundanz in ZFS ist lokal für jedes vdev und nicht über den Pool verteilt. Stellen Sie sicher, dass Sie Ihre vdev-Layout so planen, dass das gewünschte Maß an Widerstandsfähigkeit erreicht wird.