linux:zfs
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
linux:zfs [2018/12/20 11:28] – [L2ARC (Cache) hinzufügen] ckolb | linux:zfs [2022/06/03 08:28] (aktuell) – [kleine Blöcke auf Special Device auslagern] Tippfehler beseitigt ckolb | ||
---|---|---|---|
Zeile 35: | Zeile 35: | ||
Fügt dem Pool '' | Fügt dem Pool '' | ||
Als Cache sollte eine SSD verwendet werden. Man kann z.B. auch eine SSD entsprechend partitionieren und eine kleine Partition für den ZIL verwenden. | Als Cache sollte eine SSD verwendet werden. Man kann z.B. auch eine SSD entsprechend partitionieren und eine kleine Partition für den ZIL verwenden. | ||
+ | |||
+ | ===== Special Device hinzufügen ===== | ||
+ | <code bash> | ||
+ | Auf dem Special-Device werden die Metadaten gespeichert. Dadurch ggf. enormer Performance-gewinn. Das Redundanzlevel sollte dem des Pools entsprechen, | ||
+ | Die nötige Kapazität der SSD hängt vom Datenbestand ab. Falls die SSD voll ist, werden weitere Metadaten auf den Haupt-Pool geschrieben. | ||
+ | ==== kleine Blöcke auf Special Device auslagern ==== | ||
+ | Um die Performance beim schreiben/ | ||
+ | Dazu gibt man die maximale Größe von Blöcken an, die auf dem Special Device gespeichert werden sollen. Blöcke, die größer als die angegebene Größe sind, werden auf den regulären Datasets gespeichert. Datenblöcke mit max. der angegebenen Größe werden auf dem Special Device gespeichert. | ||
+ | <code bash>zfs set special_small_blocks=16K pool</ | ||
+ | Ab jetzt werden Blöcke bis 16kB auf dem Special Device gespeichert. | ||
+ | Es ist möglich, diese Option für jedes Dataset separat und unabhängig einzustellen. | ||
+ | |||
+ | **ACHTUNG: | ||
+ | Wenn '' | ||
+ | ===== TRIM für SSDs ===== | ||
+ | Wenn man einen SSD-Pool hat, kann es sinnvoll sein, TRIM zu aktivieren. Dies kann die Schreibperformance verbessern. | ||
+ | '' | ||
+ | <code bash> | ||
+ | Einstellung kann überprüft werden mit: | ||
+ | <code bash> | ||
+ | |||
+ | Auf Debian gibt es noch die Option '' | ||
+ | <code bash>zfs set org.debian: | ||
+ | Wenn man diese Option aktiviert, wird der Pool am ersten Sonntag im Monat vollständig getrimmt. | ||
+ | |||
+ | Die beiden Optionen '' | ||
+ | |||
+ | Es ist auch möglich einen Pool manuell zu trimmen. Dazu führt man folgendes Kommando aus. | ||
+ | <code bash> | ||
===== Datasets erstellen ===== | ===== Datasets erstellen ===== | ||
Es ist empfehlenswert direkt in den Pools keine Daten zu speichern, da sonst einige tolle Funktionen von ZFS nicht sinnvoll genutzt werden können. Daher sollte man sogenannte Datasets anlegen. Diese stellen quasi Unterdateisysteme dar. Es kann z.B. auch sinnvoll sein für jeden Benutzer ein eigenes Dataset unter ''/ | Es ist empfehlenswert direkt in den Pools keine Daten zu speichern, da sonst einige tolle Funktionen von ZFS nicht sinnvoll genutzt werden können. Daher sollte man sogenannte Datasets anlegen. Diese stellen quasi Unterdateisysteme dar. Es kann z.B. auch sinnvoll sein für jeden Benutzer ein eigenes Dataset unter ''/ | ||
Zeile 42: | Zeile 71: | ||
<code bash>zfs list</ | <code bash>zfs list</ | ||
+ | ==== Datasets in anderes Verzeichnis mounten ==== | ||
+ | Datasets können einfach an einen beliebigen Ort im Verzeichnisbaum gemountet werden. Dafür gibt es die Option '' | ||
+ | <code bash>zfs set mountpoint=/ | ||
+ | Mountet '' | ||
==== Quota ==== | ==== Quota ==== | ||
Für die Datasets können Quotas gesetzt werden, sodass diese eine maximal vorgegebene Größe nicht überschreiten können. | Für die Datasets können Quotas gesetzt werden, sodass diese eine maximal vorgegebene Größe nicht überschreiten können. | ||
Zeile 61: | Zeile 94: | ||
==== ZVOL erstellen ==== | ==== ZVOL erstellen ==== | ||
Ein ZVOL mit einer Kapazität von 10GB auf dem Pool " | Ein ZVOL mit einer Kapazität von 10GB auf dem Pool " | ||
- | <code bash>zfs create -V 10G pool/vm_1</ | + | <code bash>zfs create -V 10G pool/zvol_1</ |
Die Abbilder finden sich unter / | Die Abbilder finden sich unter / | ||
Also z.B. "/ | Also z.B. "/ | ||
+ | |||
+ | ==== ZVOL für VMs ==== | ||
+ | Gängige Dateisysteme verwenden eine Blockgröße von 4 kiB (4096 Bytes). Die standardblockgröße von ZVOLs ist aber 8kiB (8192 Bytes). | ||
+ | Um optimale performannce zu erreichen, sollten ZVOLs für VMs mit einer Blockgröße von 4kiB erzeugt werden. | ||
+ | Die Blockgröße eines ZVOL kann nachträglich nicht mehr geändert werden. | ||
+ | <code bash>zfs create -b 4K -V 10G pool/ | ||
==== ZVOL vergrößern ==== | ==== ZVOL vergrößern ==== | ||
Das ZVOL " | Das ZVOL " | ||
Zeile 73: | Zeile 112: | ||
* Synchrones Schreiben generell deaktivieren. Hier für das Dataset " | * Synchrones Schreiben generell deaktivieren. Hier für das Dataset " | ||
<code bash>zfs set sync=disabled pool/ | <code bash>zfs set sync=disabled pool/ | ||
+ | ACHTUNG: wahrscheinlich ist es sinnvoller stattdessen dem Pool ein [[linux: | ||
===== Defekte Festplatte ersetzen ===== | ===== Defekte Festplatte ersetzen ===== | ||
<code bash> | <code bash> |
linux/zfs.1545305283.txt.gz · Zuletzt geändert: 2018/12/20 11:28 von ckolb