Základy ZFS
Základy ZFS
ZFS: Základní stavební prvky a administrace pro začátečníky
Úvod
ZFS je moderní souborový systém s integrovanou správou úložiště, který se používá hlavně na serverech a NAS zařízeních. Tento článek vysvětlí základní stavební prvky ZFS a poskytne praktické příkazy pro jeho administraci.
Základní stavební prvky ZFS
Zpool (ZFS Storage Pool)
Zpool je základní jednotka úložiště v ZFS. Je to obdoba RAID pole, kde ZFS spravuje fyzické disky jako jednu logickou jednotku.
Funkce a vlastnosti zpoolu:
- Dynamicky přidává nebo odebírá disky
- Automaticky rozkládá data mezi více disky
- Nabízí ochranu proti ztrátě dat díky vestavěnému RAID-Z
- Podporuje různé konfigurace diskových skupin (VDEV - Virtual Devices)
- Podporuje vestavěné zrcadlení, stripování a paritní ochranu dat
- Zajišťuje samoléčivé mechanismy pro detekci a opravu poškozených dat
Cache a logování v ZFS
ZFS používá několik úrovní cache a logovacích mechanismů pro optimalizaci výkonu a ochranu dat.
ARC (Adaptive Replacement Cache)
- Primární cache uložená v RAM.
- Uchovává často přistupovaná data a dynamicky se přizpůsobuje podle potřeby.
- Čím více RAM má systém, tím lépe funguje ARC.
L2ARC (Level 2 Adaptive Replacement Cache)
- Sekundární cache umístěná na rychlých SSD.
- Slouží ke zrychlení přístupu k datům, která se nevejdou do ARC.
- Pomáhá hlavně při práci s velkými datasetů, kdy RAM nestačí.
Přidání SSD jako L2ARC:
zpool add moje_data cache /dev/sdfZIL (ZFS Intent Log)
- Uchovává nezapsaná data při synchronních operacích.
- Pokud není SLOG, ZIL se nachází na stejném místě jako hlavní data.
- Při použití samostatného SLOG zařízení se výkon synchronního zápisu dramaticky zlepšuje.
SLOG (Separate Intent Log)
- Speciální logovací zařízení, které zvyšuje výkon synchronních operací zápisu.
- Nejčastěji se používá samostatný NVMe nebo SSD disk. Minimální doporučená konfigurace jsou 2 disky v zrcadle ( RAID1)
- Využívá se hlavně ve virtualizaci nebo databázových aplikacích.
Přidání SSD jako SLOG:
zpool add moje_data log /dev/sdg
Dataset (Souborový systém)
Dataset je základní logická jednotka uvnitř ZFS, která umožňuje správu dat v rámci zpoolu. Každý dataset se chová jako samostatný souborový systém a podporuje různé vlastnosti, které lze spravovat nezávisle na ostatních datasetech.
Typy datasetů v ZFS:
- Standardní dataset (souborový systém) – Používá se pro ukládání souborů.
- Zvol (ZFS Volume) – Blokové zařízení uvnitř ZFS, které lze použít například pro iSCSI nebo jako disk pro virtuální stroje.
- Snapshoty – Neměnná kopie datasetu k určitému časovému bodu.
- Klony – Zapisovatelné kopie snapshotu.
Správa datasetů
Vytvoření datasetu:
zfs create moje_data/dokumentyTímto příkazem vytvoříme dataset „dokumenty“ uvnitř zpools „moje_data“.
Smazání datasetu:
zfs destroy moje_data/dokumentyNastavení vlastností datasetu:
1. Komprese – Snižuje velikost uložených dat a zvyšuje výkon.
zfs set compression=lz4 moje_data/dokumenty2. Kvóty – Omezuje maximální velikost datasetu.
zfs set quota=100G moje_data/dokumenty3. Rezervace – Zajišťuje, že dataset má vždy určitou velikost k dispozici.
zfs set reservation=50G moje_data/dokumenty4. Snapshoty datasetu
Snapshoty umožňují vytvoření okamžité kopie dat, ke které se lze později vrátit.
POZOR: Snapshoty jsou obrazy v čase, ALE POZOR, velikost snapshotu se odvýjí od toho, kolik dat se od doby snapshotu změnilo, tedy se postupně “nafukuje” a v případě zapomenutého snapshotu po delší dobu např. snapshot starý několik měsíců na databázovém serveru může zabírat značnou část kapacity ZPOOLu.
Proto snapshoty používáme jako nástroj pro krátkodobé uchovávání stavu dat, např. ochrana proti ransomware, nebo pojistka před zásadním upgradem OS ve virtuálním stroji.
Vytvoření snapshotu:
zfs snapshot moje_data/dokumenty@snapshot1Obnova ze snapshotu:
zfs rollback moje_data/dokumenty@snapshot1Základní administrace ZFS
Kontrola stavu zpoolu
zpool statusZobrazí informace o zpools, včetně případných chyb a chybějících disků.
Přidání VDEVu do zpoolu
Doporučená praktika, je přidávat VDEVy stejného charakteru. Např. pokud máme již ZPOOL s raidz2 se 6ti 960GB disky, je dobré přidávat identické VDEVy. Není to podmínka, pouze dobrá praktika, kvůli optimálnímu rozložení dat.
zpool add moje_data /dev/sdeTento příkaz přidá nový disk do existujícího zpoolu.
Nastavení komprese
ZFS podporuje transparentní kompresi dat, což šetří místo na disku.
zfs set compression=lz4 moje_data/dokumentyNastavení kvót
Kvóty omezují maximální velikost datasetu.
zfs set quota=100G moje_data/dokumentyExport a import zpoolu
Pokud chceme zpool přesunout na jiný systém, musíme ho nejprve exportovat ze stávajícího systému:
zpool export moje_dataA následně na novém systému importovat:
zpool import moje_data