Hlavní navigace

ZFS je v Linuxu k dispozici díky FUSE

Petr Krčmář

O souborovém systému ZFS, který vyšel z dílen společnosti Sun, se v poslední době hovoří velmi intenzivně po celém světě. ZFS znamená poměrně zásadní průlom v souborových systémech a nabízí řadu jinde nevídaných funkcí. Není tedy divu, že jej chceme mít i v Linuxu. Už nyní je to možné díky projektu FUSE.

Proč chtít ZFS?

ZFS je souborový systém zcela nové generace, který integruje nejdůležitější funkce do jednoho transparentního rozhraní. Tím naprosto zásadně zjednodušuje administraci diskových polí a souborových systémů.

Zatímco běžně potřebujeme v Linuxu spravovat RAID, na něm provozovat logical-volume-management a nad ním teprve provozovat souborový systém, ZFS zvládne všechno najednou a ještě nás zbaví veškeré náročné konfigurace. O ZFS jsme se zmiňovali v samostatném článku.

Autorem ZFS je společnost Sun Microsystems, která jej vyvinula pro vlastní operační systém OpenSolaris. V současné době se už ale přebírají i další operační systémy jako FreeBSD nebo Mac OS X. Samozřejmě bychom rádi viděli ZFS i v Linuxu.

Problémy s licencí

S portací na Linux to ovšem nebude tak snadné. V současné době je totiž problém v nekompatibilitě licencí obou systémů. Není tedy možno jednoduše vzít kód Solarisu a přenést jej do Linuxu.

Linus Torvalds ovšem přiznal, že pokud Sun změní licenci Solarisu na GNU GPL 3, pak je to dostatečný důvod k přechodu i pro Linux. Vyřešily by se tím právě problémy s kompatibilitou licencí jednotlivých částí systému, mezi jinými i právě ovladače ZFS.

Zatím ovšem k ničemu podobnému nedošlo a ačkoliv jsou naděje poměrně slušné, musíme si najít jinou cestu. Jedním z řešení je samozřejmě zcela nová implementace napsaná na „čisté louce”.

Lékem je FUSE

FUSE je zkratka pro Filesystem in User SpacE. Jedná se o modul do jádra operačního systému, který vytváří rozhraní pro tvorbu dalšího kódu, který zpracovává samotný souborový systém. Výhoda tohoto kódu je pak v tom, že nemusí běžet v jádře, ale stačí mu klasický uživatelský prostor.

FUSE je dnes již součástí hlavního linuxového stromu, a tak jej můžete najít rovnou v nových jádrech. Dnes se využívá především pro různé virtuální souborové systémy, kdy je možno například dálkově přistupovat do Wikipedie tak, že se jednotlivé články tváří jako reálné soubory na vašem disku. Všechny změny se pak opět zapisují po síti do Wiki.

Toto pochopitelně není jediné možné využití FUSE a už teď jsou k dispozici implementace reálných souborových systémů jako Ext2FS nebo NTFS. Nespornou výhodou FUSE je i jeho multiplatformnost. Kromě Linuxu jej tak nalezneme na FreeBSD, OpenSolarisu, Mac OS X a za pomoci rozšiřující vrstvy také na NetBSD.

FUSE + ZFS = ZFS na Linuxu

Protože je ZFS velmi žádaným artiklem, odpověď na sebe samozřejmě nedala dlouho čekat a v rámci Google Summer of Code 2006 byla vyvinuta nová implementace ZFS právě pro FUSE. Za její vývoj je zodpovědný Ricardo Manuel da Silva Correia a projekt je napsán v jazyku C.

V současné době je možno vývoj označit za pokročilý, rozhodně ale ne za dokončený. Už ale existují uživatelé, kteří linuxový ZFS intenzivně testují a reálně používají. Stále jsou tu však některé nedodělky.

Correia dává v této fázi přednost funkčnosti a zatím se neohlíží na výkon. Je to samozřejmě zcela logický postup – nejdříve to bude fungovat, pak to zrychlíme. Přestože sám autor žádné testy neprováděl, našli se jiní.

Chris Samuel provedl vlastní sadu testů a zjistil, že ZFS podává zhruba poloviční výkon proti jaderné implementaci XFS. To sice není nijak oslňující, ale na „neoptimalizovaný” kód je to velmi působivé.

Navíc například už zmiňovaná implementace NTFS-3g, která používá také FUSE, se výkonnostně chová v podstatě stejně jako nativní NTFS. Prostor pro zlepšení tu tedy zcela jistě je a FUSE by na výkon neměl mít žádný negativní dopad.

Dalším aktuálním nepříjemným problémem je velká konzumace paměti. ZFS pod FUSE dokáže při větší zátěži alokovat až 500 MB systémové paměti. Correia o tomto problému dobře ví a snaží se najít optimální východisko. Řešením by mohl být tcmalloc, což je velmi rychlý alokátor paměti vyvinutý vývojáři od Google.

Co už umí

ZFS na FUSE je plnohodnotnou implementací POSIXového souborového systému. Chris Samuel, který prováděl výkonnostní testy, jej například používá pro zálohování svého domovského adresáře. Využívá při tom především možnosti snapshotů, kdy je možno udržovat více verzí struktury jen s minimální spotřebou diskového prostoru (rozdílové ukládání).

Možná vás napadne jedno omezení, které plyne z použití FUSE – z takto implementovaného ZFS nebude možno bootovat. Je to samozřejmě logická úvaha, ovšem v praxi je dokázáno, že to možné je!

V konferenci zfs-fuse se objevil příspěvek, ve kterém Cameron Patrick popisuje postup a uvádí, že se mu ze ZFS podařilo úspěšně nastartovat systém.

V principu jde o to vytvořit inicializační ramdisk (initramfs), ve kterém bude k dispozici jak FUSE, tak i samotný ovladač pro ZFS. Kromě toho bylo ještě potřeba upravit ZFS tak, aby dokázal pracovat s dev a suid soubory. Samozřejmě běh systému ze ZFS není bez problémů, je ovšem zřejmé, že v budoucnu bude možno systém přímo na tomto souborovém systému provozovat.

Co nás čeká?

Vývoj jde kupředu poměrně rychle a jakmile budou doimplementovány některé chybějící funkce, vyladěn výkon a vychytány některé chybky, bude možno ZFS pořádně otestovat a konečně nasadit na linuxové počítače.

Jsem si jist, že pokud se vše podaří, distributoři promptně zareagují a nabídnou nám funkce ZFS už v základní instalaci svých systémů. Já se rozhodně těším. Co vy?

Odkazy

Anketa

Kdy nainstalujete ZFS?

Našli jste v článku chybu?

26. 7. 2007 10:48

uživatel si přál zůstat v anonymitě
No já bych na otestovování bral distro, které běží kompletně nad NTFS. Odpadá pak instalace Ext2 ovladačů pod windows, pokud disk nosíte v šuplíku i jinam.

25. 6. 2007 15:51

Jen je potřeba mít nainstalované SFW* balíčky aby se na něm dalo rozumně pracovat ;-)
Vitalia.cz: Paštiky plné masa ho zatím neuživí

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

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

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

Přehledná titulka, průvodci, responzivita

DigiZone.cz: Test Philips 24PFS5231 s Bluetooth repro

Test Philips 24PFS5231 s Bluetooth repro

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

1. den EET? Problémy s pokladnami

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

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

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

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

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

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

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

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

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

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

EET: Totálně nezvládli metodologii projektu

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

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

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

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

Spor o mortadelu: podle Lidlu falšovaná nebyla

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

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