ZFS Storage Pool-Verwaltung unter Linux

ZFS ist eines der leistungsfähigsten Dateisysteme für Linux-Server und bietet integriertes Volume-Management, Datenintegritätsprüfung und fortschrittliche Funktionen wie Snapshots und Replikation. In dieser Anleitung lernen Sie, ZFS-Pools in Produktionsumgebungen zu erstellen, zu konfigurieren und zu verwalten.

ZFS installieren und Pool erstellen

Unter Ubuntu und Debian installieren Sie ZFS mit dem folgenden Befehl:

sudo apt update
sudo apt install zfsutils-linux
zfs version

Um einen gespiegelten Pool mit zwei Festplatten zu erstellen:

sudo zpool create datapool mirror /dev/sdb /dev/sdc
sudo zpool status datapool

Für höhere Redundanz erstellen Sie einen RAIDZ2-Pool:

sudo zpool create storagepool raidz2 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf

Überprüfen Sie den Pool-Status jederzeit mit zpool status und zpool list, um die Kapazitätsnutzung einzusehen.

Datasets, Kompression und Quotas

ZFS-Datasets ermöglichen eine flexible Organisation der Daten innerhalb eines Pools. Jedes Dataset kann eigene Einstellungen besitzen:

sudo zfs create datapool/documents
sudo zfs create datapool/backups
sudo zfs set compression=lz4 datapool/documents
sudo zfs set quota=500G datapool/backups
sudo zfs set atime=off datapool/documents

Die LZ4-Kompression bietet ein hervorragendes Verhältnis zwischen Geschwindigkeit und Kompressionsrate. Überprüfen Sie die aktive Kompressionsrate mit:

zfs get compressratio datapool/documents

Quotas begrenzen den maximalen Speicherplatz, den ein Dataset belegen darf. Mit reservation können Sie umgekehrt Speicherplatz garantieren.

Snapshots und Rollback

Snapshots sind eine der wertvollsten Funktionen von ZFS. Sie erstellen eine punktgenaue Kopie des Dateisystems ohne zusätzlichen Speicherverbrauch:

sudo zfs snapshot datapool/documents@2026-01-03
sudo zfs list -t snapshot

Um auf einen früheren Zustand zurückzukehren:

sudo zfs rollback datapool/documents@2026-01-03

Für automatische Snapshots richten Sie einen Cron-Job ein:

# /etc/cron.d/zfs-snapshots
0 */6 * * * root zfs snapshot datapool/documents@auto-$(date +\%Y\%m\%d-\%H\%M)

Ältere Snapshots können Sie mit zfs destroy bereinigen. Für die Replikation auf einen externen Server verwenden Sie zfs send und zfs receive.

Scrubbing und Pool-Wartung

Regelmäßiges Scrubbing überprüft die Datenintegrität und repariert automatisch beschädigte Blöcke mithilfe der Redundanzinformationen:

sudo zpool scrub datapool
sudo zpool status datapool

Richten Sie automatisches Scrubbing ein:

# /etc/cron.d/zfs-scrub
0 2 * * 0 root zpool scrub datapool

Überwachen Sie den Pool-Zustand regelmäßig mit zpool status und achten Sie auf Warnungen bezüglich fehlerhafter Sektoren. Bei Festplattenausfällen ersetzen Sie die defekte Platte mit zpool replace. Für Produktionsumgebungen empfiehlt sich die Einrichtung von E-Mail-Benachrichtigungen über ZFS-Events mit dem ZFS Event Daemon (ZED).