IO Writes:
Sync Einstellungen unter ZFS
Für einen performanten Zugriff auf die Hardware muss ZFS die Größe der Sektoren der Festplatte (physical block size) kennen.
Wie ermittle ich die Block Size meiner Patten?
lsblk -o NAME,MOUNTPOINT,PHY-SEC
Anzeigen der aktuellen ashift wertes wenn man schon einen Pool hat
zpool get ashift <pool>
Ashift beim erstellen setzten
zpool create -o ashift=12 <POOLNAME> <VDEVS>
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.
Ist ein Zusammenschluss aus mehreren vdevs zu einem großen Speicherpool.
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.
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.
Dieser Cache liegt im Ram des Betriebssystems.
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.
zpool status zpool status -v zpool status -v pool
zfs get compression
zfs get all
zfs set compression=lz4 <pool>
zfs get compressratio
zpool iostat -v 1
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>
zpool list -v
zpool scrub pool
zfs snapshot <pool>/<dataset>@<snap_name>
zfs snapshot -r <pool>@<snap_name>
zfs list -t snapshot
zfs destroy <pool><dataset>@<snap_name>
zfs rollback <pool>/<dataset>@<snap_name>
zfs-stats -a ???
zilstat
zfs get compression <name> zfs get all <name>| grep compress
In den meisten Fällen ist lz4 die beste und schnellste Variante
zfs set compression=lz4 <name>