diff options
author | Peter Ludikovsky <peter@ludikovsky.name> | 2021-11-17 22:44:24 +0100 |
---|---|---|
committer | Peter Ludikovsky <peter@ludikovsky.name> | 2021-11-17 22:44:24 +0100 |
commit | 9c9fa7450cb1d71ddb4e34a5930d2878742100a1 (patch) | |
tree | 9e80d97ed88f5dd0b0aa77c3a4657bf4fa723246 | |
parent | c51d349279239965dd0e68b604505fb99d0c9160 (diff) |
Demos, Caches, Snapshots, … weiter ausgeführt
-rw-r--r-- | zfs-intro.md | 145 |
1 files changed, 116 insertions, 29 deletions
diff --git a/zfs-intro.md b/zfs-intro.md index 9a6add4..920a7ef 100644 --- a/zfs-intro.md +++ b/zfs-intro.md @@ -4,16 +4,30 @@ ZFS Einführung Inhalt ------ -- Geschichte -- Pools -- Datasets +::: {.container} +::: {.col} +1. Geschichte +2. Pools +3. Datasets - Volumes -- Redundanz -- Caches -- Snapshots -- Besondere Features +4. Snapshots +::: + +::: {.col} +5. Redundanz +6. Caches +7. Besondere Features - Deduplikation - Kompression +::: +::: + +*Nicht* behandelt +----------------- + +- Austausch von Platten +- Eingebautes Sharing via NFS/CIFS +- Root auf ZFS Geschichte ========== @@ -33,40 +47,100 @@ Features Pools ----- -- ZFS ist Dateisystem und Volume Manager gleichzeitig -- Basis: Blockdevices -- Blockdevices können zu `vdev`s zusammengefasst werden -- Blockdevices und `vdev`s bilden zusammen einen Storage Pool -- Viele Einstellungen schon hier möglich, werden runter vererbt +- ZFS ist Dateisystem und Volume Manager gleichzeitig +- Basis: Blockdevices +- Blockdevices können zu `vdev`s zusammengefasst werden +- Blockdevices und `vdev`s bilden zusammen einen Storage Pool +- Viele Einstellungen schon hier möglich, werden runter vererbt Demo ---- +<aside class="notes"> + +- Einfachen Stripe-Pool anlegen: + `zpool create -oashift=12 -R/mnt tank /dev/sd{b,c,d,e}` +- "Raid-10" Pool: + `zpool create -oashift=12 -R/mnt tank mirror /dev/sd{b,c} mirror /dev/sd{d,e}` +- RAID-Z ("RAID-5") Pool: + `zpool create -oashift=12 -R/mnt tank raidz /dev/sd{b,c,d,e}` +- Allgemeine Einstellungen: + - `zfs get compression tank` + - `zfs get dedup tank` + - `zfs get all tank` +</aside> Datasets -------- -- Datasets entsprechen eigentlichen Dateisystemen -- Können verschachtelt werden -- Settings eines Datasets werden vererbt -- Standardmäßig so groß wie das übergeordnete Dataset -- Quotas können gesammt, pro User oder pro Gruppe vergeben werden +- Datasets entsprechen eigentlichen Dateisystemen +- Können verschachtelt werden +- Settings eines Datasets werden vererbt +- Standardmäßig so groß wie das übergeordnete Dataset +- Quotas können gesammt, pro User oder pro Gruppe vergeben werden -### Volumes +Volumes +------- -- Spezielle Datasets -- Verhalten sich wie Blockdevices -- Gerne genutzt für VM Images, Swap Space, … +- Spezielle Datasets +- Verhalten sich wie Blockdevices +- Gerne genutzt für VM Images, Swap Space, ... -Redundanz +Snapshots --------- -Caches ------- +- Werden durch CoW ermöglicht +- Halten den exakten Stand fest +- Sind keine Kopie sondern der eingefrorene Zustand +- Können auf andere Rechner, Pools, Datasets übertragen werden -Snapshots ---------- +<aside class="notes"> + +CoW +: Copy on Write, neue Daten überschreiben nicht den vorhandenen Block + sondern werden in einen neuen Block geschrieben und Referenzen auf + den alten werden bereinigt. + +</aside> + +Demo +---- + +<aside class="notes"> + +- Dataset anlegen: `zfs create tank/zfsintro` +- Dataset mit Quota: `zfs create -o quota=1G tank/zfsintro/data` +- Quota ändern: `zfs set quota=5G tank/zfsintro` +- Quota für User: `zfs set userquota@backup=1G tank/zfsintro` +- Volume anlegen: `zfs create -b 4096 -V 2G tank/swap` +- Snapshot anlegen: `zfs snaphot tank/zfsintro/data@snap1` +- Snapshot in `$DATASET/.zfs/snapshot`, Readonly + +</aside> + +Caches: RAM +----------- + +- ARC Read-Cache, Default: zwischen `max(32MB, 1/32 RAM)` und ½ RAM +- Write-Cache, schreibt zumindest alle 5-30 Sekunden auf die Platte + +Caches: Disken +-------------- + +- Pro Pool +- Schnelle Medien (SSD, M2, ...) +- Lesen: L2ARC (Level 2 ARC), kann auch Dedup-Tabelle halten +- Schreiben: SLOG als Schreib-Cache + - Sollte gespiegelt sein, sonst Risiko des Datenverlusts +- Können im Betrieb hinzugefügt und entfernt werden + +<aside class="notes"> + +ARC +: Adaptive Replacement Cache + +</aside> Besondere Features ================== @@ -74,18 +148,31 @@ Besondere Features Deduplikation ------------- +- Prüfsumme über Blöcke, wenn gleich wird nur 1 Kopie gespeichert +- Keine rückwirkende Änderung +- Braucht **viel** RAM (1GB RAM / 1TB Dataset zusätzlich) +- Sinnvoll für Archive + Kompression ----------- +- Wie Dedup auf Block-Level +- Wie Dedup keine rückwirkende Änderung +- Unterschiedliche Verfahren je nach Anforderung vorhanden +- *Sehr* sinnvoll für Datasets mit viele Text-Dateien (Logs, + Mail-Spool, ...) + Links ===== Links ----- -<dl> -<dt>ZFS Demo VM</dt><dd>https://cloud.usrspace.at/s/eB4ifqQBNtLz322</dd> -</dl> +ZFS Demo VM +: https://cloud.usrspace.at/s/eB4ifqQBNtLz322 + +Wikipedia zu ZFS +: https://en.wikipedia.org/wiki/ZFS Präsentation ist [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode.de) |