Demos, Caches, Snapshots, … weiter ausgeführt

This commit is contained in:
Peter 2021-11-17 22:44:24 +01:00
parent c51d349279
commit 9c9fa7450c
Signed by: pludi
GPG Key ID: FB1A00FEE77E2C36
1 changed files with 117 additions and 30 deletions

View File

@ -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,59 +47,132 @@ 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, …
Redundanz
---------
Caches
------
- Spezielle Datasets
- Verhalten sich wie Blockdevices
- Gerne genutzt für VM Images, Swap Space, ...
Snapshots
---------
- 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
<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
==================
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)