User Tools

Site Tools


linux:storage:zfs

This is an old revision of the document!


ZFS

Gundlangen

IO Writes:

  • Asynchronous - Eine Applikation schreibt etwas in das Storage und das Storage meldet sobald dieses den IO im Ram zwischenlagert ein OK zurück. Fällt die Storage aus gehen die IO's die noch im Ram liegen verloren
  • Synchronous - Eine Applikation schreibt etwas in das Storage und das Storage meldet erst ein Ok zurück wenn diese die Daten auf den Disken runterschrieben hat. Dies kostet Performance ist jedoch Crash Consistent


Sync Einstellungen unter ZFS

  • standard - nur synchrone Schreibvorgänge werden mithilfe des ZIL abgesichert
  • always - jeder Schreibvorgang findet unter Verwendung des ZIL statt
  • disabled - der ZIL wird deaktiviert



vdev (virtual device)

Ist ein virtuelles Gerät, auf dem die in ZFS gespeicherten Daten abgelegt werden. Es kann sich dabei um eine Festplatte, eine reguläre Datei, ein RAID-Z/Mirror handel.

Pool

Ist ein Zusammenschluss aus mehreren vdevs zu einem großen Speicherpool.

Dataset

Bezeichnet ZFS-Dateisysteme, Volumes und Snapshots. Datasets sind in einer Vererbungshierarchie organisiert und immer einem bestimmten zpool zugeordnet. Sie dienen der Strukturierung von Pools und ermöglichen eine Anpassung an verschiedene Anforderungen.

Copy-On-Write

Beschreibt die Funktion von Dateisystemen, Blöcke nicht direkt zu überschreiben, sondern eine Kopie der neuen Daten in einem anderen freien Block abzulegen. Nachdem ein neuer Block erfolgreich abgespeichert wurde, wird der entsprechende Zeiger angepasst. Sollte das System während eines Schreibvorgangs abstürzen, entsteht somit kein inkonsistenter Zustand des Dateisystems. Ausschließlich die in dem Moment geschriebenen Daten gehen verloren, währenddessen die vorherige Version des Blocks noch unverändert ist. Darüber hinaus ermöglicht dieses Konzept das schnelle und einfache An legen von Snapshots.

ARC (Adaptive Replacement Cache)

Dieser Cache liegt im Ram des Betriebssystems.

L2ARC (Level 2 ARC)

Dieser Cache wird in den meisten Fällen auf SSDs ausgelagert (muss konfiguriert werden). Wenn der Ram für den Cache zu klein wird werden alle Objekte die aus dem ARC raus fliegen würden in den L2ARC geschrieben.

ZIL (ZFS Intent Log)


SLOG (ZFS Separate Intent Log)




Pools

Anzeigen des Status von einem oder allen Pools

zpool status -v pool


Anzeige welche Pools bzw. Datensets Compression aktiv haben

zfs get compression


ZFS Optionen

Anzeigen aller ZFS Optionen für einen bzw. allen Pools

zfs get all


Compression setzten

zfs set compression=lz4 <pool>


Anzeigen der Compression Rate

zfs get compressratio


IO Stats

IO Stats anzeigen

zpool iostat -v 1


Caching

ARC

Anzeig der aktuellen Auslastung des Caches in Bytes

cat /proc/spl/kstat/zfs/arcstats |grep c_
c_min 4 536870912
c_max 4 2147483648
arc_no_grow 4 0
arc_tempreserve 4 0
arc_loaned_bytes 4 0
arc_prune 4 0
arc_meta_used 4 0
arc_meta_limit 4 536870912
arc_meta_max 4 0


Arc Cache Size setzten

vim /etc/modprobe.d/zfs.conf
# Min 512MB / Max 2048 MB Limit
options zfs zfs_arc_min=536870912
options zfs zfs_arc_max=2147483648

Es wird ein Reboot für diese Einstellung benötigt.
Kontrolle der aktuellen Einstellungen:

cat /sys/module/zfs/parameters/zfs_arc_min
536870912
cat /sys/module/zfs/parameters/zfs_arc_max
2147483648


L2ARC Device hinzufügen

zpool add -f <pool> cache <device>


L2ARC Device entfernen

zpool remove <pool> <device>


ZIL bzw. SLOG Device hinzufügen

zpool add -f pool log /dev/sda2


ZIL bzw. SLOG Device entfernen

zpool remove <pool> <device>

Auslastung der Pools anzeigen inkl. der Disken

zpool list -v


ZFS Health

Scrub

zpool scrub pool


Snapshots

Erstellen eines Snapshots auf einem Dateset

zfs snapshot <pool>/<dataset>@<snap_name>


Erstellen eines Snapshots auf einem Pool sprich auf allen Datasets

zfs snapshot -r <pool>@<snap_name>


Anzeigen der aktuellen Snapshots

zfs list -t snapshot


Löschen eines Snapshots

zfs destroy <pool><dataset>@<snap_name>


Rückstieg auf einen Snapshot

zfs rollback <pool>/<dataset>@<snap_name>



zfs-stats -a ??? zilstat

linux/storage/zfs.1581674206.txt.gz · Last modified: by stone