summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Ludikovsky <peter@ludikovsky.name>2021-11-17 22:44:24 +0100
committerPeter Ludikovsky <peter@ludikovsky.name>2021-11-17 22:44:24 +0100
commit9c9fa7450cb1d71ddb4e34a5930d2878742100a1 (patch)
tree9e80d97ed88f5dd0b0aa77c3a4657bf4fa723246
parentc51d349279239965dd0e68b604505fb99d0c9160 (diff)
Demos, Caches, Snapshots, … weiter ausgeführt
-rw-r--r--zfs-intro.md145
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)