Filesys... what?
Filesys… what?
Klasické filesystémy Linuxu a RAID vs. Novější Software-Defined Storage a Copy-on-Write Filesystémy
Filesystém je základní komponenta operačního systému, která organizuje data na disku. Linux podporuje širokou škálu filesystémů, které se liší výkonem, spolehlivostí a způsobem práce s daty. V tomto článku se zaměříme na klasické Linuxové filesystémy a RAID ve srovnání s moderními Software-Defined Storage (SDS) a Copy-on-Write (CoW) filesystémy.
Klasické filesystémy v Linuxu
✅ Ext (Extended Filesystem)
- Ext2 – Starší filesystém bez žurnálování, vhodný pro flash disky.
- Ext3 – Přidává žurnálování, což zvyšuje odolnost proti výpadkům.
- Ext4 – Vylepšený výkon, podpora větších souborů a lepší správa fragmentace.
✅ XFS
- Výkonný souborový systém pro velké objemy dat.
- Podporuje paralelní operace, ideální pro servery a databázové aplikace.
- Není nativně Copy-on-Write, ale poskytuje žurnálování metadat.
✅ ReiserFS
- Efektivní pro malé soubory, ale zastaralý kvůli ukončení vývoje.
✅ JFS (IBM Journaled File System)
- Nízké nároky na CPU, vhodný pro servery s omezenými zdroji.
✅ RAID (Redundant Array of Independent Disks)
- Hardwarový nebo softwarový způsob zvýšení redundance a výkonu.
- Nejčastější úrovně RAID:
- RAID 0 – Striping pro výkon, žádná redundance.
- RAID 1 – Mirroring pro bezpečnost.
- RAID 5/6 – Paritní RAID, kombinuje výkon a odolnost.
- RAID 10 – Kombinuje výhody RAID 1 a 0.
Nevýhody klasických RAID řešení:
- Vyšší nároky na synchronizaci disků.
- Nutnost dedikovaného RAID řadiče (u HW RAID).
- Složitá obnova v případě výpadku více disků.
Žurnálování (Journaling)
je mechanismus používaný v některých souborových systémech k ochraně dat před poškozením při neočekávaných událostech, jako jsou výpadky napájení nebo systémové pády.
🔹 Jak žurnálování funguje?
- Před provedením jakékoli změny na disku se informace nejprve zapíší do žurnálu (logovacího souboru).
- Po úspěšném zapsání se změny aplikují na hlavní souborový systém.
- Jakmile jsou data úspěšně zapsána na disk, položka v žurnálu se odstraní.
Pokud dojde k výpadku během operace zápisu, souborový systém může po restartu systému zrekonstruovat poslední operace pomocí záznamů v žurnálu a předejít poškození dat.
🔹 Výhody žurnálování:
✅ Zvýšená odolnost proti výpadkům napájení – Žurnálování umožňuje rychlou obnovu souborového systému bez nutnosti dlouhé kontroly disku (fsck).
✅ Rychlejší opravy po havárii – Oproti ne-žurnálovacím systémům (např. Ext2) je oprava souborového systému po výpadku výrazně rychlejší.
✅ Ochrana metadat a souborových operací – Minimalizuje riziko nekonzistence dat.
🔹 Typy žurnálování:
1️⃣ Journaling metadat – Do žurnálu se zapisují pouze změny v metadatech souborového systému (např. Ext3).
2️⃣ Journaling celých dat – Do žurnálu se zapisují jak metadata, tak i samotná uživatelská data (např. ext4 s data=journal režimem, ale s vyšší režií na výkon).
3️⃣ Ordered journaling – Hybridní přístup, kde se nejprve zapíšou metadata a poté data (výchozí režim pro Ext4, poskytuje dobrý kompromis mezi výkonem a ochranou).
🔹 Žurnálování vs. Copy-on-Write (CoW)
Žurnálovací filesystémy opravují data po pádu, zatímco Copy-on-Write filesystémy (např. ZFS, Btrfs) aktivně zabraňují poškození tím, že nikdy nepřepisují existující data. CoW poskytuje lepší integritu dat než tradiční žurnálování.
Moderní Software-Defined Storage (SDS) a Copy-on-Write (CoW) filesystémy
SDS a CoW filesystémy představují moderní přístup ke správě dat, nabízející vyšší bezpečnost, výkon a efektivitu.
✅ ZFS (Zettabyte File System)
- Integrovaná podpora RAID (RAID-Z, RAID-Z2, RAID-Z3).
- Copy-on-Write (CoW) chrání data před poškozením.
- Nativní snapshoty, deduplikace a komprese.
- Samoopravující mechanismy proti bitrotu.
Bitrot (digitální hniloba) je postupná degradace a nečitelnost dat uložených na disku v důsledku fyzických chyb média nebo chyb při ukládání, které nejsou detekovány běžnými souborovými systémy.
✅ Btrfs (B-tree Filesystem)
- Copy-on-Write, podpora snapshotů a klonování souborů.
- Integrovaná správa RAID bez nutnosti HW řadiče.
- Možnost online rozšiřování filesystému.
- Dynamická alokace úložiště snižující fragmentaci.
✅ Ceph
- Distribuované software-defined úložiště vhodné pro cloud a velké datové sady.
- Nabízí blokové úložiště, objektové úložiště a souborový systém.
- Automatická replikace dat mezi uzly.
✅ GlusterFS
- SDS řešení vhodné pro horizontálně škálovatelná úložiště.
- Ideální pro velká úložiště distribuovaná napříč více servery.
✅ LVM (Logical Volume Manager) + Thin Provisioning
- Umožňuje flexibilní správu disků a jejich dynamické rozšiřování.
- Používán v kombinaci s CoW filesystémy pro snapshoty.
Srovnání přístupů: RAID vs. Software-Defined Storage
| Faktor | RAID (klasický) | SDS / CoW Filesystémy |
|---|---|---|
| Správa disků | Pevně definované pole | Dynamická alokace a škálování |
| Zálohování | Závislé na externích metodách | Vestavěné snapshoty a klonování |
| Redundance | Pevně daná úroveň RAID | Automatická replikace |
| Odolnost proti chybám | Závisí na konfiguraci | Automatická oprava dat (ZFS, Btrfs) |
| Výkon | Zvýšený, ale omezen řadičem | Optimalizovaný pro škálovatelnost |
| Náklady | Nutný RAID řadič (HW RAID) | Levnější, běží na běžném HW |
Kdy použít klasický filesystém a kdy moderní SDS?
✅ Klasické filesystémy (Ext4, XFS, RAID) jsou vhodné pro:
- Menší servery s omezenými prostředky.
- Jednoduché NAS systémy.
- Scénáře, kde není potřeba pokročilé snapshotování a CoW.
✅ Moderní SDS a CoW filesystémy (ZFS, Btrfs, Ceph, GlusterFS) jsou vhodné pro:
- Enterprise úložiště, která vyžadují vysokou dostupnost.
- Cloudová a virtualizovaná prostředí.
- Systémy s požadavky na snapshoty, replikaci a samoopravu dat.