ZFS – Zettabyte File System

Meine Empfehlung für ein anständiges Server-Dateisystem mit Redundater Sicherung, ist das von Sun Microsystems entwickeltes transaktionales Dateisystem ZFS. Nicht nur Geschwindigkeit, Sicherheit und Benutzerfreundlichkeit, sprechen für das Dateisystem, sondern auch die wunderbar einfache Verwaltung und Erweiterung.

ZPOOL vs. ZFS:

Zpool steuert Operationen des jeweiligen Pools um Festplatten hinzufügen, entfernen, ersetzen und verwalten.
Mit zfs hingegen erstellt, zerstört und verwaltet man das Dateisystem und auch die einzelnen Volumen.

wichtige zpool Befehle:

Erstellen eines neuen RAID0 Pools über die Festplatten sdb und sdc:
zpool create pool0 sdb sdc

Erstellen eines neuen RAID1 Pools über die Festplatten sdb und sdc:
zpool create pool1 mirror sdb sdc

Erstellen eines neuen RAID10 Pools über die Festplatten sdb, sdc und sdd, sde:
zpool create pool2 mirror sdb sdc mirror sdd sde

Erstellen eines neuen RAID5 Pools über die Festplatten sdb, sdc und sdd:
zpool create pool3 raiz sdb sdc sdd

Allgemein den Status der Pools abfragen:
zpool status

Den Status eines spezifischen pool0 Pools abfragen:
zpool status pool0

Den Pool pool0 exportieren:
zpool export pool0

Den Pool pool0 importieren:
zpool import pool0

Den Zugiff (IO Status) der Pools einsehen:
zpool iostat

Den Zugiff (IO Status) eines spezifischen Pools einsehen:
zpool iostat pool0

Den Zugiff (IO Status) der Pools periodisch alle Sekunde einsehen:
zpool iostat 1

Den Zugiff (IO Status) eines spezifischen Pools alle 4 Sekunden einsehen:
zpool iostat pool0 4

wichtige zfs Befehle:

Ein Volumen mit dem Namen test auf dem Datenpool / festplattenpool pool0 erstellen:
zfs create pool0/test

Ein Volumen mit dem Namen test auf dem Datenpool / festplattenpool pool0 erstellen und unter /mnt/test mounten:
zfs create pool0/test -m /mnt/test

Dem Volumen test eine Kapazität von 150 Gigabyte zuweisen:
zfs set quota=150G pool0/test

Die maximale Kapazität des Volumens test abgragen:
zfs get quota pool0/test

Die maximale Kapazität des Volumens test auf 250 Gigabyte anpassen:
zfs set quota=250G pool0/test

Die maximale Kapazität des Volumens test entfernen:
zfs set quota=none pool0/test

Ein Volumen test2 auf dem Datenpool pool0 anlegen:
zfs create pool0/test2

250 Gigabyte für das Volumen test2 reservieren
zfs set reservation=150G pool0/test2

Die Speicherplatzreservierung für das Volumen test2 aufheben:
zfs set reservation=none pool0/test2

Den Moutpoint für das Volumen test2 auf /home/test ändern:
zfs set mountpoint=/home/test pool0/test2

Alle Volumen mit ihren Mountpoints ausgeben:
zfs list

Datensicherung / Snapshot:

Eine Sicherung des Volumens test2 mit dem Namen Freitag erstellen:
zfs snapshot pool0/test2@freitag

Eine Sicherung mit dem Namen now der kompletten Volumen auf dem Datenpool pool0 erstellen:
zfs snapshot -r pool0@now

Alle Sicherungen anzeigen:
zfs list -t snapshot

Die Datensicherung now auf dem Datenpool pool0 löschen
zfs destroy pool0@now

Die Kompression für das Volumen pool0/test2 festlegen:
zfs set compression=on pool0/test2

Standardmäßig ist die Kompression aus, zur Auswahl stehen unteranderem die Kompressionen LZ4 und GZIP-7. Ich empfehle die Kompression LZ4, da diese mit dynamischen Blockgrößen funktioniert. Denn bei GZIP-7 kann es im schlimmsten Fall dazu kommen, dass die komprimierten Daten auf Grund der fixen Blockgröße mehr Platz benötigen als unkomprimiert. Eine Komprimierung ist nur bei ausreichender CPU-Leistung und RAM-Größe zu empfehlen. Pro TB an Speicherplatz kann man pauschal mit einem GB RAM rechen.

Über Raffael Haberland 15 Artikel
Informatikstudent an der Technischen Universität Darmstadt,