Zum Hauptinhalt springen

ZFS-Speicher

Special Danke

Wir möchten unseren Dank an Ed Rawlings ([Spaceinvader One])(https://www.youtube.com/c/SpaceinvaderOne) für das Fachwissen und die Anleitung zum Ausdruck bringen, von denen diese ZFS-Speicherdokumentation angepasst wurde. Seine Tutorials und Erkenntnisse haben zahllosen Unraid-Nutzern geholfen, fortgeschrittene Speichertechniken zu meistern. Wir schätzen seine anhaltenden Beiträge zur Unraid-Gemeinschaft sehr.

ZFS bringt fortschrittliche Datenintegrität, flexible Speicher-Konfigurationen und hohe Leistung in Ihr Unraid-System. Dieser Leitfaden erklärt die grundlegenden Konzepte von ZFS und führt Sie durch die Verwaltung von ZFS-Pools direkt über das Unraid WebGUI. Egal, ob Sie einen neuen ZFS-Speicher einrichten oder einen bestehenden Pool integrieren, Sie finden hier die notwendigen Schritte und den Kontext, um sicher anzufangen.


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 supports ZFS for any storage pool. You can create a new ZFS pool, import one from another system, or use Unraid’s unique hybrid ZFS setup: add a ZFS-formatted disk directly to the Unraid array (not a pool) and combine ZFS features with Unraid’s parity protection.

Example

You can use ZFS snapshots and replication on a single disk as a backup target, or replicate a fast SSD ZFS pool to a ZFS disk in the array protected by Unraid parity - getting the best of both worlds.

notiz

The hybrid ZFS-in-array approach is helpful for specific backup or replication scenarios but is not a replacement for a full ZFS pool. ZFS disks in the array are managed individually; you do not get the combined performance, redundancy, or self-healing of a true multi-disk ZFS pool. For full ZFS functionality, always use dedicated ZFS pools.

Pools, Vdevs und Redundanz

Ein ZFS-Pool (genannt "Zpool") besteht aus einem oder mehreren Vdevs (virtuellen Geräten). Jedes Vdev ist eine Gruppe physischer Festplatten mit einem eigenen Redundanzgrad. ZFS schreibt Daten über Vdevs hinweg, aber jedes Vdev ist für seine eigene Fehlertoleranz verantwortlich.

vorsicht

Redundanz ist immer pro VDEV gegeben. Wenn ein VDEV ausfällt, fällt der gesamte Pool aus, selbst 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 Slot-Anzahl ist nur für Daten-VDEVs gedacht. Support-VDEVs (wie Protokoll- oder Cache-Laufwerke) können separat hinzugefügt werden, nachdem der Pool erstellt wurde.

  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

Überprüfen Sie vor dem Abschluss die Abschnitte über Zuordnungsprofile und Topologie, um eine fundierte Entscheidung zu treffen.

  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)

You can add a standalone ZFS disk to your Unraid array (not a ZFS pool) to combine ZFS features with Unraid's parity protection.

What dies 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 Bit Rot nicht selbstständig heilen kann, wird ZFS Korruption erkennen und Sie alarmieren, damit Sie aus dem Backup wiederherstellen können, bevor ein stiller Datenverlust auftritt.

  • ZFS features: You can utilize ZFS snapshots and replication on this disk, making it ideal for backup targets, specific datasets, or scenarios where you want ZFS features alongside traditional Unraid storage.

To add a ZFS disk to the array:

  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 Zuweisungsprofil, 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 Ihren Bedürfnissen entspricht:

ProfilRedundanzLeistungErweiterungSpeichereffizienzTypische Anwendungsfälle
StripeKeineSchnell, aber riskantHinzufügen von mehr Festplatten100%Temporärer/Cache-Speicher
Spiegel1:1 (RAID 1-Stil)Ausgezeichnet für zufälligen I/OHinzufügen von mehr Spiegelungen50%Hohe Leistung, einfache Erweiterung
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-Toleranz
RAIDZ22 Festplatten pro VdevWie Z1, aber leicht langsamere Schreibvorgänge (zusätzliche Parität)Neue Vdevs hinzufügenMittelWichtige Daten, 2-Festplatten-Toleranz
RAIDZ33 Festplatten pro VdevWie Z2, mit mehr Schreibaufwand (für maximale Sicherheit)Neue Vdevs hinzufügenNiedrigerMission-kritisch, 3-Festplatten-Toleranz
How wählen
  • 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 Festplatten in einem großen RAIDZ2-Vdev einfügen, können Sie zwei beliebige Festplatten ohne Datenverlust verlieren. Die Erweiterung bedeutet jedoch, dass man ein weiteres vollständiges Vdev hinzufügen muss.
  • Sie erzielen bessere Parallelleistung, wenn Sie Festplatten in mehrere kleinere RAIDZ1-Vdevs aufteilen. Seien Sie vorsichtig; wenn im selben Vdev zwei Festplatten 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

Plan your pool’s layout to fit your needs and future growth. Unlike the Unraid array, you can’t add a single disk to an existing vdev using the WebGUI.


Kompression und RAM

ZFS offers advanced features that can significantly improve Unraid's storage efficiency and performance. Two common topics of interest are compression and memory requirements.

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.

Hinweis

Aktivieren Sie die ZFS-Komprimierung für die meisten Unraid-ZFS-Pools. Sie ist sicher, effizient und beeinträchtigt selten Kompatibilität oder Stabilität.

Der ZFS RAM-Mythos - Klicken zum Erweitern/Einklappen

Sie könnten auf den veralteten Ratschlag gestoßen sein: „ZFS benötigt 1 GB RAM pro 1 TB Speicher." Dies trifft auf die meisten Nutzer nicht mehr zu. ZFS nutzt RAM für seinen Adaptive Replacement Cache (ARC), der häufig abgerufene Lesevorgänge beschleunigt.

Unraid begrenzt ZFS automatisch auf die Nutzung eines angemessenen Teils des Arbeitsspeichers Ihres Systems (normalerweise 1/8 des gesamten RAMs). Dadurch kann ZFS gut performen, ohne Docker-Container, VMs oder das Unraid-OS zu beeinträchtigen.

info

ZFS skaliert gut mit dem verfügbaren Speicher. Mehr RAM kann die Cache-Performance verbessern, aber ZFS arbeitet zuverlässig mit bescheidener Hardware. Lassen Sie sich von alten Empfehlungen nicht davon abhalten, ZFS auf Unraid zu nutzen.


Importieren von auf anderen Systemen erstellten ZFS-Pools

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

Wie importiert man einen ZFS-Pool - Klicken zum Erweitern/Einklappen
  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 wird den ZFS-Pool automatisch erkennen und importieren. Unterstützende Vdevs (wie Log, Cache/L2ARC, Spezial/Dedup) werden unter Subpools im WebGUI aufgelistet. Es ist nicht notwendig, Subpools separat nach dem Beginn des Imports hinzuzufügen. Unraid importiert sie automatisch zusammen mit den Hauptdatenträgern, sobald alle notwendigen 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ützende Vdevs als Subpools. Die meisten Nutzer benötigen diese nicht, aber fortgeschrittene Nutzer könnten ihnen begegnen:

Unterstützender vdev (Unterpool)ZweckRisiko/Anmerkungen
Spezial-VdevSpeichert Metadaten und kleine DateienDer Pool wird unlesbar, wenn er verloren geht.
Dedup-VdevErmöglicht DeduplizierungBenötigt große Mengen RAM; riskant für die meisten Nutzer. Vermeiden Sie es, es sei denn, Sie haben spezielle Bedürfnisse.
Log-Vdev (SLOG)Verbessert die Synchronisierungs-SchreibleistungOptional. Nur sinnvoll für bestimmte Arbeitslasten.
Cache vdev (L2ARC)Bietet SSD-basierten Lese-CacheOptional. Kann Lese-Geschwindigkeiten für große Arbeitssätze verbessern.
Reserve-VdevIn Unraid nicht unterstützt (ab 7.1.2)
vorsicht

Die meisten Unraid-Nutzer sollten unterstützende Vdevs/Subpools vermeiden, es sei denn, Sie haben spezielle und gut verstandene Bedürfnisse. Sie sind für spezialisierte Arbeitslasten ausgelegt und können Komplexität oder Risiken einführen, wenn sie missbraucht werden.


Kritische unterstützende vdev-Laufwerke beim Import nicht zugewiesen

When you import a ZFS pool into Unraid, you need to assign every drive from your original pool, including those used for support vdevs, to the pool slots. Unraid will automatically recognize each drive’s role (data, log, cache, special, or dedup) once the array starts. You don’t need to specify which drive serves what purpose manually.

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 Laufwerk beim Import fehltErgebnis
Spezial-vdev oder Dedup vdevPool wird nicht importiert oder ist unbenutzbarDiese Vdevs speichern kritische Metadaten oder Deduplizierungstabellen. Ohne sie kann %%ZFS
Log-Vdev (SLOG)Pool 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-Vdev (L2ARC)Pool wird importiert, aber Lesecache geht verloren.Der Pool funktioniert normal, aber Sie verlieren den Leistungsschub durch den L2ARC-Cache. Es gehen keine Daten verloren.
Hinweis

Weisen Sie beim Import in Unraid immer alle physischen Laufwerke aus Ihrem ursprünglichen ZFS-Pool zu, einschließlich aller unterstützenden Vdevs. Dies gewährleistet eine reibungslose Erkennung und Integration. Für neue Pools, die in Unraid erstellt werden, sind unterstützende Vdevs optional und im Allgemeinen für die meisten Nutzer 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 keine Festplatte zu einem bestehenden RAIDZ-Vdev hinzufügen, um es zu vergrößern.

Möglichkeiten zur Erweiterung Ihres Pools umfassen:

  • Hinzufügen eines neuen Vdev: Erweitern Sie Ihren Pool, indem Sie ein weiteres Vdev hinzufügen (wie eine neue Spiegelung oder RAIDZ-Gruppe). Dies erhöht die Kapazität, aber Sie müssen Festplatten in Sets hinzufügen, die der Konfiguration des Vdevs entsprechen.
  • Ersetzen von Laufwerken durch größere: Tauschen Sie jedes Laufwerk in einem Vdev nacheinander gegen eine größere Festplatte aus. Siehe Laufwerkaustausch für detaillierte Verfahren. Nachdem alle Laufwerke ersetzt wurden und der Pool sich aufgelöst hat, erhöht sich die Kapazität des Vdevs.
  • Erstellen eines neuen Pools: Das Starten eines neuen ZFS Pools hält Dinge für verschiedene Datentypen oder Arbeitslasten organisiert und unabhängig.
Planning vorwärts

Bevor Sie Ihren Pool aufbauen, überlegen Sie, wie viel Speicher Sie benötigen werden - nicht nur heute, sondern auch in Zukunft. ZFS belohnt gute Planung, besonders wenn Sie disruptive Upgrades 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 & DockerStore the appdata share for fast, responsive containers and databases. This supports snapshots for easy rollbacks and can also host VMs for high I/O.Viele Nutzer wählen hierfür einen 2-Festplatten-%%ZFS
%%ZFSzfs%%-Pool für wichtige DatenUse a ZFS mirror or RAIDZ2 pool for irreplaceable files like photos, tax records, and user share data. ZFS checks for corruption and self-heals with redundancy.
Tägliches Backup oder ReplikationszielUse a ZFS disk (even within the Unraid array) as a replication target. You can replicate other pools locally or from another Unraid server.Nutzen Sie zfs send/receive oder Tools wie Syncoid für schnelle und zuverlässige Backups und Wiederherstellungen.
%%Snapshotsnapshot%%-basierter WiederherstellungspoolKeep point-in-time snapshots of critical data or containers. snapshots can be auto-scheduled and are space-efficient.

Vermeidung häufiger ZFS-Fehler

ZFS ist ein leistungsfähiges Dateisystem, aber es gibt mehrere häufige Fallstricke, die seine Vorteile untergraben können. Es ist wichtig, die folgenden Punkte zu beachten, bevor Sie Ihren Pool konfigurieren für eine reibungslosere Erfahrung:

  • Unterschiede in der Festplattengröße 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 identisch große Laufwerke in jedem Vdev.

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

  • ZFS disk vs. full zpool: A single ZFS-formatted disk in the Unraid array does not offer the redundancy or features of a dedicated ZFS pool. To leverage advanced functionality, use standalone pools.

  • Deduplizierung ohne ausreichenden RAM: Deduplizierung erfordert erheblichen Speicher, und wenn Sie es ohne genügend RAM aktivieren, kann die Leistung erheblich beeinträchtigt werden. Aktivieren Sie die Deduplizierung nur, wenn Sie die Anforderungen vollständig verstehen.

  • Vdev-Redundanz ist lokal: Die Redundanz in ZFS ist lokal für jedes Vdev und wird nicht über den Pool verteilt. Stellen Sie sicher, dass Sie Ihr Vdev-Layout planen, um das gewünschte Maß an Belastbarkeit zu erreichen.