Zfs: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „= Einführung in ZFS: Pools, Datasets und ZVOLs = ZFS („Zettabyte File System“) ist ein modernes Dateisystem, das zusätzlich als Volume-Manager fungiert.…“) |
(kein Unterschied)
|
Version vom 11. Juli 2025, 07:45 Uhr
Einführung in ZFS: Pools, Datasets und ZVOLs
ZFS („Zettabyte File System“) ist ein modernes Dateisystem, das zusätzlich als Volume-Manager fungiert. Es wurde entwickelt, um die Verwaltung großer Datenmengen zu vereinfachen, die Datenintegrität zu verbessern und klassische Grenzen von Dateisystemen und RAID-Konfigurationen zu überwinden.
ZFS basiert auf einem hierarchischen Aufbau, den man verstehen sollte, um es sinnvoll einzusetzen.
ZFS Pool
Der ZFS Pool (zpool) ist die oberste Verwaltungseinheit in ZFS. Ein Pool besteht aus einem oder mehreren physischen Laufwerken, die zu sogenannten virtuellen Geräten (vdevs) kombiniert werden. Diese können einfache Platten, Spiegelungen (Mirror) oder RAID-Z-Setups sein.
Der Pool bündelt alle physischen Ressourcen zu einem gemeinsamen Speicherraum, aus dem alle weiteren ZFS-Objekte wie Datasets oder ZVOLs dynamisch ihren Speicher beziehen.
Wichtige Merkmale eines Pools:
- Gemeinsamer Speicherplatz für alle Objekte.
- Verwaltung von Redundanz und Fehlertoleranz auf Pool-Ebene.
- Selbstheilung durch Checksummen und automatische Reparatur bei Redundanz.
Man kann sich den Pool als „Speichersee“ vorstellen, in den alle Festplatten zusammenfließen.
Dataset
Ein Dataset ist ein logisches Dateisystem innerhalb des Pools. Datasets ermöglichen es, den gemeinsamen Speicherplatz feingranular aufzuteilen und für unterschiedliche Zwecke anzupassen.
Besonderheiten:
- Jedes Dataset kann eigene Einstellungen haben, wie Kompression, Deduplikation, Quotas (Obergrenzen) oder Reservations (Mindestgarantien).
- Datasets sind hierarchisch organisiert. Unterdatasets können angelegt werden, die wiederum eigene Einstellungen erben oder überschreiben.
- Snapshots und Clones werden auf Dataset-Ebene erstellt.
Datasets nutzt man typischerweise, um verschiedene Verzeichnisse, Benutzerbereiche oder Anwendungen sauber getrennt zu verwalten, während sie trotzdem den gleichen Pool nutzen.
ZVOL
Ein ZVOL ist kein Dateisystem, sondern ein blockbasiertes virtuelles Gerät, das im Pool angelegt wird. Es verhält sich wie eine virtuelle Festplatte, auf die blockweise zugegriffen wird.
Besondere Eigenschaften:
- ZVOLs werden oft für iSCSI-LUNs oder als virtuelle Festplatten in Virtualisierungssystemen verwendet.
- Sie eignen sich für Workloads, die keinen Dateisystemzugriff, sondern direkten Blockzugriff benötigen.
- Wie Datasets können auch ZVOLs Snapshots und Replikationen nutzen.
ZVOLs sind also eine Art „virtueller Datenträger“, der aus dem Pool bereitgestellt wird, aber nicht als klassisches Dateisystem erscheint.
Unterschiede im Überblick
| Objekt | Beschreibung | Typischer Einsatz |
|---|---|---|
| Pool | Verwaltungseinheit, die physische Geräte bündelt | Gemeinsamer Speicherraum |
| Dataset | Logisches Dateisystem mit eigenen Eigenschaften | Dateispeicherung, Benutzerverzeichnisse, Anwendungen |
| ZVOL | Virtuelles Blockgerät innerhalb des Pools | Virtuelle Maschinen, iSCSI, blockbasierte Anwendungen |
Wann verwendet man Datasets, wann ZVOLs?
Datasets sind die Standardwahl in ZFS. Sie sind normale Dateisysteme und bieten sich an, wenn man Dateien und Verzeichnisse speichern möchte.
Typische Einsatzzwecke:
- Ablage von Benutzerdateien, Dokumenten, Medien.
- Speicherung von Konfigurationsdaten oder Anwendungsdaten.
- Backup-Ziele (z. B. rsync, ZFS send/receive).
- Home-Verzeichnisse auf einem Server.
- Webserver- oder Datenbankdateien, sofern die Datenbank mit Dateizugriff arbeitet.
Vorteile von Datasets:
- Unterstützen Dateisystemfunktionen wie Quotas, Snapshots, Deduplikation, Kompression.
- Einfach zu verwalten und direkt mountbar.
- Sehr performant für dateibasierte Workloads.
ZVOLs sind dann sinnvoll, wenn man Blockgeräte braucht, also „virtuelle Festplatten“, nicht Dateisysteme.
Typische Einsatzzwecke für ZVOLs:
- iSCSI-LUNs, um über das Netzwerk Blockspeicher bereitzustellen.
- Virtuelle Maschinen, die ihr eigenes Dateisystem innerhalb des ZVOLs haben.
- Raw-Device-Nutzung für Anwendungen, die direkten Blockzugriff brauchen.
Vorteile von ZVOLs:
- Das Gast- oder Zielsystem entscheidet selbst über das Dateisystem.
- Blockgenauer Zugriff, der für manche Virtualisierungs- oder Storage-Anwendungen wichtig ist.
- Snapshots und Replikation trotzdem möglich.
Grundregel
Wenn man Dateien speichern will, nimmt man ein Dataset. Wenn man ein Blockgerät benötigt, nimmt man ein ZVOL.
Beispiele für die Entscheidung
| Anwendung | Empfehlung | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Samba-Fileserver für Benutzer | Dataset | Webserver mit statischen Inhalten | Dataset | Backup-Speicherziel (rsync) | Dataset | KVM-VMs mit Raw-Disks | ZVOL | Bereitstellung einer iSCSI-LUN | ZVOL | Docker-Daten | Dataset | Datenbank mit Raw-Device-Ansatz | ZVOL (selten nötig) |
Fazit
ZFS bietet mit seinem hierarchischen Aufbau eine flexible Struktur: Ein Pool bildet die Grundlage, Datasets erlauben die Organisation auf Dateisystemebene, und ZVOLs bieten Blockgeräte für Spezialanwendungen. Die Wahl zwischen Dataset und ZVOL hängt allein vom Anwendungsfall ab: dateibasiert oder blockbasiert.