Přejít na obsah

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.

  1. 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.
  2. 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/sdf
  3. ZIL (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.
  4. 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:

  1. Standardní dataset (souborový systém) – Používá se pro ukládání souborů.
  2. Zvol (ZFS Volume) – Blokové zařízení uvnitř ZFS, které lze použít například pro iSCSI nebo jako disk pro virtuální stroje.
  3. Snapshoty – Neměnná kopie datasetu k určitému časovému bodu.
  4. Klony – Zapisovatelné kopie snapshotu.

Správa datasetů

Vytvoření datasetu:

zfs create moje_data/dokumenty

Tímto příkazem vytvoříme dataset „dokumenty“ uvnitř zpools „moje_data“.

Smazání datasetu:

zfs destroy moje_data/dokumenty

Nastavení vlastností datasetu:

1. Komprese – Snižuje velikost uložených dat a zvyšuje výkon.

zfs set compression=lz4 moje_data/dokumenty

2. Kvóty – Omezuje maximální velikost datasetu.

zfs set quota=100G moje_data/dokumenty

3. Rezervace – Zajišťuje, že dataset má vždy určitou velikost k dispozici.

zfs set reservation=50G moje_data/dokumenty

4. 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@snapshot1

Obnova ze snapshotu:

zfs rollback moje_data/dokumenty@snapshot1

Základní administrace ZFS

Kontrola stavu zpoolu

zpool status

Zobrazí 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/sde

Tento 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/dokumenty

Nastavení kvót

Kvóty omezují maximální velikost datasetu.

zfs set quota=100G moje_data/dokumenty

Export 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_data

A následně na novém systému importovat:

zpool import moje_data