ZFS Einführung ============== Inhalt ------ ::: {.container} ::: {.col} 1. Geschichte 2. Pools 3. Datasets - Volumes 4. Snapshots ::: ::: {.col} 6. Caches 7. Besondere Features - Deduplikation - Kompression ::: ::: *Nicht* behandelt ----------------- - Austausch von Platten - Eingebautes Sharing via NFS/CIFS/iSCSI - Root auf ZFS - Verschlüsselung Geschichte ========== Geschichte ---------- - 2001: Beginn der Entwicklung bei Sun für Solaris - 2005: Erster Public Release, Code wird Open Source - 2006-2010: Portierung auf Linux, MacOS, FreeBSD - Ab 2010: Oracle macht ZFS zu Closed Source, offene Entwicklung weiter als OpenZFS 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 Demo ---- 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 Volumes ------- - 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 Demo ---- 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 Besondere Features ================== Deduplikation ------------- - Prüfsumme über Blöcke, wenn gleich wird nur 1 Kopie gespeichert - Keine rückwirkende Änderung - Braucht **viel** RAM (👍·π: 5GB pro 1TB Daten) - 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 ----- ZFS Demo VM : https://cloud.usrspace.at/s/eB4ifqQBNtLz322 Wikipedia zu ZFS : https://en.wikipedia.org/wiki/ZFS ZFS Administration (Aaron Toponce) : https://pthree.org/2012/12/04/zfs-administration-part-i-vdevs/ Präsentation ist [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode.de) Fragen? =======