Uživatelské nástroje

Nástroje pro tento web


it:linux:file_systems

Srovnání souborových systémů: Btrfs, ZFS a role v imutabilitě

Při návrhu moderní IT infrastruktury, zálohovacích serverů nebo imutabilních (neměnných) operačních systémů (jako je např. NixOS) už klasické souborové systémy jako Ext4 nebo XFS často nestačí. Na scénu nastupují pokročilé souborové systémy nové generace: Btrfs (B-tree File System) a ZFS (Zettabyte File System).

Oba tyto systémy kombinují vlastnosti tradičního souborového systému s pokročilým správcem logických disků (Volume Manager) a oba využívají klíčovou technologii CoW (Copy-on-Write), která z nich dělá dokonalé partnery pro imutabilní architektury.

Co je to Copy-on-Write (CoW)?

Tradiční souborové systémy při úpravě souboru přepíší stávající data přímo na disku (In-place update). Pokud během tohoto zápisu vypadne proud, soubor se snadno poškodí.

Systémy Btrfs a ZFS fungují na principu Copy-on-Write:

1. Pokud se soubor modifikuje, systém stávající data nepřepíše.
2. Nová data se zapíší na úplně jiné, volné místo na disku.
3. Jakmile je zápis bezpečně dokončen, systém pouze aktualizuje metadata (ukazatele), aby odkazovala na nové umístění.
4. Stará data zůstanou nedotčená, dokud je systém neuvolní, což umožňuje okamžité vytváření **snapshotů** (snímků) s nulovou režií.

Představení systémů

Btrfs (B-tree File System)

Btrfs byl vyvinut společností Oracle v roce 2007 s cílem vytvořit moderní, čistě linuxový souborový systém, který by konkuroval tehdy dominantnímu ZFS od Sun Microsystems. Dnes je stabilní součástí hlavní větve Linuxového jádra (mainline kernel) a je výchozím souborovým systémem v distribucích jako Fedora nebo openSUSE.

ZFS (Zettabyte File System)

ZFS představuje absolutní špičku v oblasti enterprise ukládání dat. Vznikl v roce 2001 v Sun Microsystems pro operační systém Solaris. Kvůli licenčním neshodám (CDDL licence vs. GPL licence Linuxu) nemůže být ZFS přímo integrováno do linuxového jádra. Vyvíjí se proto jako nezávislý open-source projekt OpenZFS, který lze do Linuxu snadno doinstalovat jako modul.

Detailní srovnání vlastností

Vlastnost Btrfs ZFS
Integrace v Linuxu Nativní (přímo v jádře) Externí modul (OpenZFS)
Nároky na RAM Nízké / Běžné Vysoké (vyžaduje velkou cache - ARC)
Kontrola integrity (Self-healing) Ano (pomocí CRC32c) Ano (silnější, pomocí fletcher4 nebo SHA-256)
Správa disků (RAID) Flexibilní, ale RAID5/6 je stále rizikový Extrémně robustní (RAID-Z1, Z2, Z3)
Šifrování Závislé na vrstvě pod ním (dm-crypt/LUKS) Nativní vestavěné šifrování
Odesílání snapshotů Ano (`btrfs send/receive`) Ano (`zfs send/recv`) – efektivnější

Role v imutabilitě (Neměnné infrastruktuře)

Imutabilní systémy těží z pokročilých vlastností CoW systémů ve dvou klíčových oblastech: Snapshotech a Podsvazcích (Subvolumes).

1. Okamžité atomické snapshoty

Protože CoW nepřepisuje stará data, vytvoření snapshotu (snímku celého systému v daném čase) je záležitostí zlomku sekundy, bez ohledu na to, zda má disk 10 GB nebo 10 TB.

  • V imutabilním provozu to umožňuje vytvořit snapshot systému před každou aktualizací. Pokud se systém chová nestabilně, lze se jedním příkazem vrátit (rollback) k předchozímu stavu.

2. Koncept "Erase Your Darlings" (Obnova při bootu)

V pokročilých imutabilních konfiguracích (např. u NixOS) se využívá vlastnost Btrfs/ZFS k vytvoření dokonale čistého stavu při každém startu počítače:

1. Kořenový adresář (`/`) je vytvořen jako subvolume (podsvazek).
2. Při každém bootu skript v initramfs tento subvolume **kompletně smaže** a okamžitě ho obnoví z předem připraveného prázdného snapshotu.
3. Systém nastartuje v absolutně čistém stavu, přesně tak, jak je definován v konfiguraci.
4. Trvalá uživatelská data (např. `/home` nebo `/var/lib/databases`) jsou namontována z jiných, samostatných subvolumů, které se při bootu nemažou.

Který z nich vybrat?

Zvolte Btrfs, pokud:

  • Chcete jednoduchou správu bez nutnosti ladit paměť RAM.
  • Používáte běžný notebook nebo workstation a chcete mít systémové nástroje přímo v jádře bez rizika, že se po aktualizaci jádra nenačte externí modul.
  • Potřebujete snadno měnit velikost disků za chodu nebo kombinovat disky různých velikostí.

Zvolte ZFS, pokud:

  • Stavíte enterprise server, diskové pole (NAS) nebo robustní cloudovou infrastrukturu.
  • Máte k dispozici dostatek ECC RAM (doporučuje se zhruba 1 GB RAM na 1 TB diskového prostoru).
  • Vyžadujete maximální možnou ochranu před tichým poškozením dat (Bit Rot) a pokročilé softwarové RAID konfigurace (RAID-Z).

Související články:

Tagy: linux storage btrfs zfs openzfs cow snapshots immutability

it/linux/file_systems.txt · Poslední úprava: autor: admin