Demos, Caches, Snapshots, … weiter ausgeführt
This commit is contained in:
parent
c51d349279
commit
9c9fa7450c
147
zfs-intro.md
147
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,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)
|
||||
|
|
Loading…
Reference in New Issue