Snímky ZFS: Jak je vytvářet, obnovovat a automatizovat?

10 min čtení - 5. května 2026

hero section cover
Obsah
  • Snímky ZFS: Jak je vytvářet, obnovovat a automatizovat?
  • Jak snímky ZFS fungují
  • Vytváření snímků
  • Obnovení ze snímků
  • Správa a ořezávání snímků
  • Automatizace retence pomocí nástroje Sanoid
  • Replikace mimo pracoviště pomocí zfs send
  • Poznámka k ochraně před ransomwarem
  • Doporučené video
  • Závěrečné myšlenky
Sdílet

Naučte se vytvářet, obnovovat a automatizovat snímky ZFS v systému Linux. Zahrnuje příkazy, zpětné obnovení, zásady uchovávání a replikaci mimo pracoviště pomocí nástroje Sanoid

Snímky ZFS: Jak je vytvářet, obnovovat a automatizovat?

Snímek systému ZFS je bodová kopie souborového systému určená pouze pro čtení. Je vytvořen okamžitě, nezabírá žádné místo, dokud se data nezmění, a umožňuje vrátit nebo obnovit soubory během několika sekund. Pokud spravujete servery, instance VPS nebo cokoli s daty, jejichž ztrátu si nemůžete dovolit, měly by být snímky součástí vašeho pracovního postupu.

Tento příspěvek se zabývá tím, jak snímky ZFS fungují, jak je používat a jak automatizovat jejich uchovávání, aby se nehromadily.

Jak snímky ZFS fungují

Systém ZFS používá model kopírování při zápisu (CoW). Při pořizování snímku systém ZFS neduplikuje žádná data. Pouze zaznamená aktuální stav stromu ukazatelů bloků. Nové zápisy jdou do volných bloků, zatímco snímek se stále odkazuje na originály.

To znamená, že snímky se vytvářejí v mikrosekundách bez ohledu na velikost datové sady a při vytváření spotřebovávají nulový prostor navíc. Prostor začnou využívat až při změně živé datové sady, protože snapshot si ponechává původní bloky, které by jinak byly uvolněny.

Tím se zásadně liší od nástrojů pro zálohování na úrovni souborů, jako je rsync nebo tar, které skenují a kopírují celé soubory. Pokud změníte 4KB z 10GB souboru, rsync zkopíruje celý soubor. Systém ZFS uloží pouze blok o velikosti 4KB.

Snímky jsou také neměnné. Na úrovni jádra je vynuceno, že jsou určeny pouze pro čtení, takže procesy v uživatelském prostoru (včetně ransomwaru) je nemohou měnit. V kombinaci s integrovaným kontrolním součtem systému ZFS to znamená, že při obnově můžete ověřit integritu dat.

Vytváření snímků

Předpoklady

Budete potřebovat nainstalovaný systém ZFS a nastavený fond. V systému Ubuntu 20.04+:

sudo apt update && sudo apt upgrade -y
sudo apt install zfsutils-linux -y
sudo modprobe zfs

Vytvořte fond. Pro jeden disk (typicky na VPS):

sudo zpool create tank /dev/sdb

U zrcadleného nastavení na vyhrazeném serveru používejte ID disků místo názvů zařízení, abyste se vyhnuli problémům po restartu:

sudo zpool create tank mirror /dev/disk/by-id/ata-DISK1 /dev/disk/by-id/ata-DISK2

Zapněte kompresi (LZ4 je rychlá a účinná):

sudo zfs set compression=lz4 tank

Poté vytvořte datové sady pro pracovní zátěže:

sudo zfs create tank/web
sudo zfs create tank/databases

Pořízení snímku

Základní příkaz:

sudo zfs snapshot tank/web@before-update

Pro názvy s časovým razítkem (užitečné s cronem):

sudo zfs snapshot tank/db@$(date +%Y%m%d_%H%M%S)

Pro zachycení všech podřízených datových sad najednou použijte příznak rekurzivní:

sudo zfs snapshot -r tank@daily_backup

Ověřte pomocí:

sudo zfs list -t snapshot

Obnovení ze snímků

Obnovení jednotlivých souborů

Každá datová sada ZFS má ve svém přípojném bodě skrytý adresář .zfs/snapshot. V seznamu ls se nezobrazí, ale můžete do něj přímo přejít:

ls /tank/web/.zfs/snapshot/before-update/

Chcete-li obnovit jednotlivý soubor:

cp -p /tank/web/.zfs/snapshot/before-update/config/app.conf /tank/web/config/

Příznak -p zachovává oprávnění a časové značky.

Obnovení celé sady dat

Pokud potřebujete vrátit vše, například po neúspěšné aktualizaci:

sudo zfs rollback tank/web@before-update

Je to téměř okamžité, protože systém ZFS aktualizuje ukazatele bloků, nikoli kopíruje data. Je však destruktivní: všechny změny provedené po vytvoření snímku jsou trvale ztraceny.

Pokud mezi cílovým a aktuálním stavem existují novější snímky, systém ZFS vrácení zablokuje. Pomocí parametru -r jej vynutíte a tyto mezisnímky odstraníte:

sudo zfs rollback -r tank/db@20260426_090000

Dobrý zvyk: před vrácením zpět vytvořte snímek aktuálního (poškozeného) stavu, abyste měli v případě potřeby náhradní řešení.

Metoda obnovyRychlostRiziko ztráty datNejlepší pro
Obnovení souborů prostřednictvím souboru .zfsZávisí na velikosti souboruŽádnéNáhodné smazání, obnova jednotlivých souborů
Úplné obnoveníOkamžitéVysoká (ztráta všech změn po provedení snímku)Neúspěšné aktualizace, problémy celého systému
Klonování pro testováníOkamžitýŽádné (vytvoří paralelní datovou sadu)Ověření před odevzdáním zpětného kopírování

Správa a ořezávání snímků

Snímky začínají na nulové velikosti, ale rostou s tím, jak se pod nimi mění živá data. Kontrola využití prostoru:

zfs list -t snapshot -o name,used,refer,creation

Sloupec USED ukazuje, kolik místa je pro daný snímek jedinečné. REFER zobrazuje celkovou velikost datové sady v době pořízení snímku.

Chcete-li snímek odstranit:

sudo zfs destroy tank/web@before-update

Snímky můžete mazat také podle vzoru:

sudo zfs destroy tank/web@daily-2026-04-%

Vždy nejprve proveďte suché spuštění:

sudo zfs destroy -nv tank/web@daily-%

ZFS technicky zvládne miliony snímků, ale po několika tisících na datovou sadu se výkon zhorší. Příkazy jako zfs list a zfs destroy se znatelně zpomalí. Udržujte retenci na uzdě.

Automatizace retence pomocí nástroje Sanoid

Sanoid je standardní nástroj pro automatizaci vytváření a ořezávání snímků ZFS. V souboru sanoid.conf definujete zásady uchovávání a o zbytek se postará on.

Typická produkční konfigurace může vypadat takto:

Typ pracovní zátěžeHodinovýDenněTýdenníMěsíční
Standardní výroba24-4830812
Databáze (vysoká odlivovost)72301224
Protokoly / nízká priorita12-24703
Statická média0703

Sanoid podporuje také dílčí hodinové snímky prostřednictvím parametru frequently. Nastavením frequently = 96 a frequent_period = 15 získáte snímek každých 15 minut.

Naplánujte aplikaci Sanoid prostřednictvím programu cron, aby se spouštěla každou minutu nebo každých 15 minut, a bude automaticky vytvářet a ořezávat snímky.

Replikace mimo pracoviště pomocí zfs send

Snímky na jednom serveru chrání před náhodnými změnami a selháním softwaru, ale ne před ztrátou hardwaru. K tomu slouží replikace mimo pracoviště pomocí zfs send a zfs receive přes SSH:

zfs send tank/web@backup | ssh user@remote zfs receive backup/web

Pro inkrementální přenosy (odesílání pouze toho, co se změnilo od posledního snímku):

zfs send -i tank/web@old_snap tank/web@new_snap | ssh user@remote zfs receive backup/web

Tento proces automatizuje doprovodný nástroj Sanoidu, syncoid, který se stará o inkrementální odesílání, obnovu chyb a protokolování.

Poznámka k ochraně před ransomwarem

Snímky systému ZFS jsou na úrovni jádra určeny pouze pro čtení, což znamená, že je standardní malware nemůže upravovat ani šifrovat. To je silná vrstva ochrany. Není však neprůstřelná: pokud útočník získá přístup roota, může snímky odstranit ještě před zašifrováním vašich dat.

Snímky by měly být jednou z vrstev širší strategie. Kombinujte je s replikací mimo pracoviště, omezeným přístupem root a zabezpečením na úrovni sítě. Nespoléhejte se pouze na snímky.

Doporučené video

Závěrečné myšlenky

Snímky ZFS jsou rychlé, prostorově úsporné a jejich použití je jednoduché, jakmile pochopíte základy. Nenahrazují zálohování mimo pracoviště, ale vyplňují mezeru, kterou tradiční zálohovací nástroje nemohou: okamžité body obnovy s nulovými režijními náklady, které můžete provádět tak často, jak potřebujete.

Pokud používáte systém ZFS na serveru VPS nebo dedikovaném serveru, nastavte systém Sanoid, definujte zásady uchovávání a automatizujte replikaci. Konfigurace zabere 30 minut a ušetří hodiny, když se něco pokazí. Vyzkoušejte jej na VPS nebo dedikovaném serveru FDC.

Blog

Tento týden byly představeny

Další články
Snímky ZFS: Jak je vytvářet, obnovovat a automatizovat?

Snímky ZFS: Jak je vytvářet, obnovovat a automatizovat?

Naučte se vytvářet, obnovovat a automatizovat snímky ZFS v systému Linux. Zahrnuje příkazy, zpětné obnovení, zásady uchovávání a replikaci mimo pracoviště pomocí nástroje Sanoid

10 min čtení - 5. května 2026

Jak nainstalovat a používat Redis na VPS

9 min čtení - 7. ledna 2026

Další články
background image

Máte dotazy nebo potřebujete vlastní řešení?

icon

Flexibilní možnosti

icon

Globální dosah

icon

Okamžité nasazení

icon

Flexibilní možnosti

icon

Globální dosah

icon

Okamžité nasazení