Hlavní navigace

Co umí souborový systém ZFS

Petr Krčmář

Poslední dobou je hodně slyšet o populárním souborovém systému ZFS. Probíhají jeho portace na řadu operačních systémů, všude je o něm slyšet a vy možná vůbec netušíte, o co se jedná. Pojďme se společně podívat, čím se ZFS od ostatních souborových systémů liší.

Co je to ZFS

V první řadě si musíme ujasnit, co to vlastně ZFS je. Jedná se o souborový systém vyvinutý společností Sun Microsystems. Původně byl ZFS vyvinut pochopitelně pro operační systém Solaris, ale díky jeho uvolnění pod open-source licencí CDDL může být jeho kód portován i do dalších operačních systémů. Samotná zkratka znamená Zettabyte File System.

Kde jej najdeme

Kromě Solaris 10 se můžeme nově setkat se ZFS také na BSD, chystá se podpora například pro Mac OS X.

Bohužel připravit podporu pro Linux nebude tak snadné, kvůli problémům s licencí. Jak jsem již zmínil, originální kód ZFS je k dispozici pod licencí CDDL, ale Linux používá GNU GPL. Obě tyto licence jsou navzájem nekompatibilní.

Sun se ale vyjádřil v tom smyslu, že má zájem ZFS na Linux dostat. Měl by proto vzniknout port ZFS pod FUSE, který by umožnil běh souborového systému v uživatelském prostoru, kde by odlišná licence nebyla na překážku.

Základní charakteristika

ZFS je souborový systém. Těch existuje celá řada, ale ZFS nabízí několik zásadních vlastností, které jej od ostatních „konkurentů” výrazně odlišují.

Velikost souborového systému

Především se jedná o 128 bitový souborový systém, což v praxi znamená, že dokáže teoreticky spravovat až 16 miliard miliard (16*1018) kapacit dnešních běžných 64bitových souborových systémů.

To ovšem není jediný takto vysoko nastavený limit. Stejně velký jako jeden souborový systém (čili 16 exabytů) může mít i jediný soubor, v každém adresáři může být teoreticky až 256 souborů a podobně. ZFS je tedy konstruován tak, aby byla jeho kapacita prakticky nevyčerpatelná.

Proměnlivá velikost bloků

ZFS používá k ukládání dat bloky s proměnlivou velikostí. To má řadu výhod a umožňuje například použití menších bloků v případě zapnutého kompresního mechanismu.

Komprese

ZFS přímo implementuje transparentní kompresi souborů na disku. Dokáže tak urychli většinu diskových operací tím, že zapisuje menší množství dat.

Kontrola dat

Aby byla vždy zachována konzistence všech dat, používá ZFS 64bitové kontrolní součty uložené přímo na disku. Díky nim dokáže udržet data vždy v kondici. Pokud ZFS narazí na nekonzistentní data, provede automaticky jejich opravu bez zásahu administrátora. Není tedy potřeba použít fsck ani jinou podobnou utilitu.

Kopírování při zápisu

ZFS používá metodu copy-on-write a nikdy proto nepřepisuje předchozí data. Pokud je potřeba změnit některý blok, je zaalokován nový blok, proběhne zápis dat, změní se veškerá metadata příslušející starému bloku a pak je teprve smazán starý blok.

Jak to funguje

Z pohledu aplikací se jedná o běžný POSIX souborový systém, takže není potřeba nic upravovat ani rekompilovat. Z pohledu uživatele/administrátora se jedná o další vrstvu nad virtuálními diskovými kapacitami, která nevyžaduje pro svou práci LVM.

Díky svému zcela odlišnému návrhu zachází ZFS s disky jinak než běžný souborový systém. Využívá společnou kapacitu všech dostupných jednotek, nad kterými pak vytváří vlastní strom souborových systémů. Celková kapacita se nazývá pool (jako bazén). Už tedy nejsou potřeba žádné diskové oddíly (partitions).

Aby ZFS optimalizoval svou práci, používá dynamické rozdělování zátěže na všechny jednotky. Jakmile je přidán další disk, dojde automaticky k přerozdělení dat mezi disky, takže je pak ihned používán naplno i nový disk.

Každému svazku ve stromu je pak přidělena taková kapacita, kterou potřebuje. Zároveň ale používá výkon celé diskové kapacity. Aby nedocházelo k přeplňování disků, je k dispozici samozřejmě také systém kvót.

Protože je ZFS připraven na velké zátěže, implementuje I/O reordering, který dovoluje optimalizovat jednotlivé operace. To má ohromný vliv na celkový výkon ZFS.

Poslední výhodou, o které se zmíním, je velmi snadná obsluha celého systému a rychlá práce s jednotlivými jeho částmi. Veškeré operace jako je přidávání disků, vytváření nových uzlů a podobně trvají jen několik málo sekund.

Praxe

Práce s disky se díky ZFS velmi zjednodušuje, už nejsou potřeba diskové oddíly, formátování disků, vytváření nových souborových kapacit a podobně. Vše se zjednodušuje na dva příkazy: zpoolzfs.

K vytvoření nového poolu budeme potřebovat jeden jediný příkaz:

# zpool create prvni c1t2d0

Timto jsme na jednom disku vytvořili jeden pool s názvem prvni. Můžeme si na něm vytvořit další souborové systémy s vlastní hierarchií. Řekněme, že to bude adresář  filmy:

# zfs create prvni/filmy

Ten si pak nastavíme tak, aby se automaticky připojoval do námi zvoleného mountpointu:

# zfs set mountpoint=/pub/video prvni/filmy

A to je celé. Takto si můžeme vytvořit další a další souborové systémy. Zdá se vám to jednoduché? Možností je ale mnohem více:

# zfs set quota=20g prvni/filmy

Nastavíme kvótu na 20 GB, aby se nám uživatelé moc neroztahovali. Můžeme si také zapnout kompresi, přestože nám to zrovna u filmů k ničemu nebude:

# zfs set compression=on prvni/filmy

Práce se ZFS je přesně takhle jednoduchá.

Závěrem

Bohužel ZFS zatím neumí fungovat jako kořenový souborový systém, a tak z něj nemůžeme bootovat. Podle Sunu se této funkce ale také v dohledné době dočkáme.

ZFS je už dnes velmi použitelný souborový systém s mnoha výhodami proti běžným souborovým systémům. Jeho možnosti jsou široké, ale zároveň klade minimální nároky na obsluhu a administraci. Zdá se, že většina vývojářů už pochopila jeho sílu a portování na další systémy snad na sebe nenechá dlouho čekat.

Anketa

Chcete ZFS na Linuxu?

Našli jste v článku chybu?

31. 8. 2006 15:55

To me docela zajima. Pomoci UPX jste komprimoval jenom ten spousteci .exe nebo i tech cca 80MB DLLek? Je pravda, ze OO.org pri startu dost "hrkaji" diskem, snad se to do pameti necpe vsechno :-p

18. 3. 2011 4:30

Petr (neregistrovaný)

Dost dobrý článek. Byla by aktualizace?

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

DigiZone.cz: „Black Friday 2016“: závěrečné zhodnocení

„Black Friday 2016“: závěrečné zhodnocení

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

120na80.cz: Na ucho teplý, nebo studený obklad?

Na ucho teplý, nebo studený obklad?

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Podnikatel.cz: Snížení DPH na 15 % se netýká všech

Snížení DPH na 15 % se netýká všech

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky