Zum Inhalt springen
labkompass

Command Builder · ZFS

ZFS-Pool-Konfigurator

Stell deinen Pool zusammen: Topologie, Platten, ashift, Kompression und Datasets. Der Konfigurator erzeugt einen zpool-create-Entwurf mit Probelauf (-n), zeigt die Topologie wie zpool status und listet die Befehle, mit denen du vorher und nachher prüfst. Ausgeführt wird nichts — und ohne -n löscht der Befehl die genannten Platten.

Vorlage übernehmen:

Namen aus ls -l /dev/disk/by-id/ — leer lassen ergibt Platzhalter. Die Liste bleibt im Browser.

Optionen

Datasets

Datasets sind eigene Dateisysteme im Pool — mit eigenen Snapshots, Quotas und Eigenschaften.

Erweiterte Optionen▾

Probelauf: zpool zeigt nur, welches Layout entstehen würde — es wird nichts angelegt und nichts gelöscht.

Generierter Befehl

zpool create \
  -n -o ashift=12 \
  -O compression=lz4 -O acltype=posixacl -O xattr=sa -O dnodesize=auto \
  tank \
  mirror /dev/disk/by-id/PLATTE-1 /dev/disk/by-id/PLATTE-2

Das bedeuten die Parameter

tank
Name des Pools — er wird auch der Name des obersten Datasets und (ohne mountpoint) der Mountpunkt /<name>.
mirror
Jede Platte eines vdevs enthält dieselben Daten. Schnell bei zufälligen Zugriffen, ideal für VMs; Kapazität = eine Platte pro vdev.
-n
-n zeigt nur das Layout, das entstehen würde. Erst wenn es stimmt, ohne -n ausführen.
-o ashift=12
-o ashift=12: 4-KiB-Blöcke. Passt zu praktisch allen aktuellen HDDs und SSDs und zu künftigen Ersatzplatten.
-O compression=lz4
-O compression=lz4: kaum CPU-Last, spart bei Text, Logs und Datenbanken spürbar Platz; bei bereits komprimierten Daten bricht ZFS früh ab.
-O acltype=posixacl
-O acltype=posixacl -O xattr=sa -O dnodesize=auto: POSIX-ACLs und erweiterte Attribute effizient im Inode — wie in den Anleitungen der OpenZFS-Doku.

Erst der Probelauf, dann der echte Befehl

Mit -n rechnet zpool das Layout nur durch und gibt es aus — ohne eine Platte anzufassen. Stimmt die Vorschau, gleichst du die Seriennummern mit lsblk ab, sicherst alles, was noch auf den Platten liegt, und entfernst erst dann -n. Ein einmal angelegtes vdev lässt sich nur eingeschränkt ändern: ashift ist fest, ein RAIDZ-vdev wird nie wieder schmaler, und aus einem Pool mit RAIDZ lässt sich kein Daten-vdev mehr entfernen.

Alle Optionen im Überblick

OptionBedeutungErklärung
PoolnamePoolnameName des Pools — er wird auch der Name des obersten Datasets und (ohne mountpoint) der Mountpunkt /<name>.
mirrorMirror (gespiegelt)Jede Platte eines vdevs enthält dieselben Daten. Schnell bei zufälligen Zugriffen, ideal für VMs; Kapazität = eine Platte pro vdev.
mirrorRAIDZ1 (1 Parität)Verkraftet einen Ausfall pro vdev. Bei großen Platten ist das Risiko während des Resilvers hoch.
mirrorRAIDZ2 (2 Paritäten)Verkraftet zwei Ausfälle pro vdev — der übliche Kompromiss für NAS mit vielen großen Platten.
mirrorRAIDZ3 (3 Paritäten)Verkraftet drei Ausfälle pro vdev — für sehr große oder breite vdevs.
mirrorEinzelplatten (ohne Redundanz)Jede Platte ist ein eigenes vdev, Daten werden verteilt. Kein Schutz vor Plattenausfall.
Platten pro vdevPlatten pro vdevWie viele Platten eine Mirror- oder RAIDZ-Gruppe bilden.
Anzahl vdevsAnzahl vdevsMehrere gleiche vdevs werden zusammengeschaltet: mehr Kapazität und Leistung — aber fällt ein vdev aus, ist der Pool verloren.
Platten (eine pro Zeile)Platten (eine pro Zeile)Gerätenamen über /dev/disk/by-id ändern sich nicht, wenn Platten umgesteckt werden.
Probelauf (-n)Probelauf (-n)-n zeigt nur das Layout, das entstehen würde. Erst wenn es stimmt, ohne -n ausführen.
-o ashift=1212 — 4-KiB-Sektoren (empfohlen)-o ashift=12: 4-KiB-Blöcke. Passt zu praktisch allen aktuellen HDDs und SSDs und zu künftigen Ersatzplatten.
-o ashift=1213 — 8 KiB-o ashift=13: für SSDs mit 8-KiB-Seiten; kostet bei RAIDZ mehr Platz.
-o ashift=129 — 512 Byte-o ashift=9: nur für echte 512n-Platten.
-o ashift=12automatisch erkennenZFS übernimmt die Sektorgröße, die die Platte meldet — manche Platten melden 512 Byte, obwohl sie intern mit 4 KiB arbeiten.
-O compression=lz4lz4 (schnell, empfohlen)-O compression=lz4: kaum CPU-Last, spart bei Text, Logs und Datenbanken spürbar Platz; bei bereits komprimierten Daten bricht ZFS früh ab.
-O compression=lz4zstd (stärker)-O compression=zstd: entspricht zstd-3 — mehr Ersparnis bei mehr CPU-Last, gut für Archive und Backups.
-O compression=lz4nicht setzen (Default on = lz4)Seit OpenZFS 2.2 ist compression=on (lz4) bereits Default.
-O compression=lz4aus-O compression=off: nur sinnvoll, wenn praktisch alles vorkomprimiert ist.
autotrim (SSDs)autotrim (SSDs)-o autotrim=on: meldet freigegebene Blöcke laufend an SSDs. Bei HDDs ohne Wirkung.
Zugriffszeiten aus (atime=off)Zugriffszeiten aus (atime=off)-O atime=off: kein Schreibvorgang beim bloßen Lesen. Default ist atime=on mit relatime=on, was schon wenig kostet.
Linux-ACLs (Samba, NFS, Container)Linux-ACLs (Samba, NFS, Container)-O acltype=posixacl -O xattr=sa -O dnodesize=auto: POSIX-ACLs und erweiterte Attribute effizient im Inode — wie in den Anleitungen der OpenZFS-Doku.
MountpunktMountpunkt-O mountpoint=…: Wo der Pool eingehängt wird. Leer = /<poolname>.
Erzwingen (-f)Erzwingen (-f)-f übergeht Schutzwarnungen, etwa wenn auf einer Platte noch Daten erkannt werden.
DatasetsDatasetsDatasets sind eigene Dateisysteme im Pool — mit eigenen Snapshots, Quotas und Eigenschaften.

Häufige Fragen

Wurden die erzeugten Befehle getestet?

Die Befehlsformen liefen in einer Wegwerf-VM mit Debian 13 und OpenZFS 2.4.4 auf virtuellen Platten, mit und ohne -n. Deine Gerätenamen und dein Layout kann der Konfigurator nicht prüfen — dafür ist der Probelauf da.

Warum /dev/disk/by-id statt /dev/sda?

Namen wie /dev/sda vergibt der Kernel beim Start in Erkennungsreihenfolge; nach einem Umbau kann sda eine andere Platte sein. Die Namen unter /dev/disk/by-id enthalten Modell und Seriennummer und bleiben stabil — so empfiehlt es die OpenZFS-FAQ.

Welches ashift ist richtig?

Für praktisch alle aktuellen Festplatten und SSDs ashift=12 (4 KiB). Es lässt sich pro vdev nie mehr ändern, und eine spätere Ersatzplatte arbeitet sehr wahrscheinlich mit 4 KiB. ashift=9 passt nur zu echten 512-Byte-Platten.

Bleiben meine Plattennamen privat?

Ja. Die Plattenliste wird weder gespeichert noch in die Adresszeile geschrieben; nur unkritische Einstellungen wie Topologie und ashift lassen sich per Link teilen.

Passende Tools