facebook LinkedIN LinkedIN - follow
IT SYSTEMS 12/2014 , ITSM (ITIL) - Řízení IT

Moderní souborové systémy



TurrisS příchodem nového tisíciletí se dramaticky změnily požadavky na možnosti ukládání dat. Zatímco dříve byly souborové systémy omezeny na jednotlivé kusy úložných médií, počítalo se v gigabajtech a data byla využívána pouze klientskými aplikacemi, dnes je situace jiná. Úložné systémy sestávají z mnoha různých heterogenních zařízení, objem dat se počítá na petabajty a více a souborové systémy slouží nejen aplikacím, ale také virtuálním strojům. Tyto změny si vyžádaly zásadní přehodnocení přístupu k designu souborových systémů.


Souborové systémy jsou jedním ze základních stavebních kamenů operačních systémů. Strmý nárůst důležitosti technologií pro ukládání dat tlačený enormními objemy dat, které je nutné zpracovávat, způsobil, že se souborové systémy dostaly do popředí zájmu, mnohdy na úkor honby za výkonem a dalšími parametry. Moderní souborové systémy zavádějí celou řadu nových a pokročilých metod určených k zajištění dynamické škálovatelnosti a zachování integrity dat. Kromě toho implementují ochranné mechanismy zaručující odolnost vůči selháním hardwaru i softwaru ve snaze předejít poškození uložených dat.

Tento článek nabízí základní přehled klíčových vlastností moderních souborových systémů a blíže představuje dva pokročilé souborové systémy vyvíjené a nasazované na platformě Linux, respektive Unix: Btrfs a ZFS.

Klíčové pojmy z oblasti souborových systémů

Žurnál

Žurnálování spočívá v tom, že než přikročí souborový systém k provedení změn zaznamená údaje o všech změnách v samostatně uloženém žurnálu (logu). V případě havárie jsou instrukce uložené v žurnálu znovu prováděny, dokud není souborový systém zpět v konzistentním stavu. Všechny změny jsou tedy atomické, tj. buď k nim dojde, nebo nedojde, a proto systém nezůstane nekonzistentní i když je například provádění zápisu přerušeno uprostřed operace.

Copy-on-write (COW)

Copy-on-write je optimalizační strategie, kterou lze využít i pro vytváření tzv. snapshotů (snímků) souborových systémů, neboli kopií celého souborového systému, jež je možné použít k vrácení systému do dřívějšího stavu. Veškerá změněná data jsou zapisována do nově alokovaných bloků (tj. nikoliv přepisována na místě) a následně jsou metadata aktualizována tak, aby ukazovala na nově zapsaná data.

Deduplikace

Deduplikace je metoda komprimace dat založená na principu identifikování opakujících se částí a nahrazování „duplicitních“ kopií pouhými odkazy na první uloženou část. Čím větší kus dat, který se v úložném systému opakuje, se podaří nalézt, tím větší úspora místa. Souborové systémy, které obsahují podporu deduplikace, mohou potenciálně ušetřit výrazné procento potřebné kapacity úložiště, avšak musí zároveň dbát na to, aby deduplikační algoritmus nezpůsobil poškození integrity dat.

Snímky a klony

Souborové systémy, které využívají metodu copy-on-write, mohou poměrně snadno (bez velké zátěže systému a bez potřeby velkého navýšení kapacity úložiště) vytvářet tzv. snímky (snapshoty) a klony sebe sama. Data zapisovaná do nových bloků při copy-on-write tvoří vlastní souborový systém a původní instance dat tvoří snímek – vytvoření snímku tedy nezahrnuje žádnou režii. Pokud (a dokud) se data nezmění, jsou sdílena souborovým systémem a snímkem, a proto je kapacita úložiště využívána maximálně efektivně. Klony se od snímků liší tím, že jde o plnohodnotné nové souborové systémy, do kterých lze zapisovat. Když se v klonovaném systému data změní, dojde k vytvoření nových datových bloků, ale nezměněné oblasti jsou i nadále sdíleny.


Co musí souborový systém umět?

Jak roste počet a zvětšuje se pestrost způsobů využití počítačů, tak také vznikají stále nové druhy datových úložišť, kterým je obvykle nutné přizpůsobovat možnosti nakládání s daty. V některých oblastech se technologie prudce vyvíjí a dosahuje se stále lepších výsledků (například ve způsobech optimalizace diskových operací při použití nepohyblivých disků – SSD – solid state drive). U jiných druhů úložišť naopak vývoj stagnuje, což způsobuje mnohá omezení (například u spotřebitelských paměťových karet, které se používají ve fotoaparátech, chytrých mobilních telefonech apod. – navzdory neustále se zvyšující kapacitě těchto tzv. flash pamětí se na nich z důvodu zpětné kompatibility v drtivé většině případů používá zastaralý a charakteristice média zcela nevyhovující souborový systém FAT). Přesto však můžeme stanovit několik okruhů vlastností moderního souborového systému, které je nutné sledovat při rozhodování o tom, jakou technologii použít v produkčním prostředí. Jsou to zejména:

Spolehlivost

Odladění a stabilizace kódu souborového systému je náročný úkol, který se měří na roky a často na desetiletí. Není náhoda, že řada souborových systémů, které lze dnes označit za moderní a pokročilé, začala být vyvíjena už v 90. letech minulého století. Kvalitní návrh systému byl později adaptován na nové potřeby, ale roky testování a ladění kódu se nyní projevují stabilitou a spolehlivostí. Příkladem takového systému je VxFS (VERITAS File System) nebo XFS. Nicméně, i souborové systémy, které jsou považovány za „nové“, mají za sebou poměrně dlouhá léta vývoje. Například vývoj ZFS a Btrfs, což jsou do jisté míry přelomové systémy, o nichž ještě bude řeč dále, začal již v roce 2001 respektive 2007.

Integrita dat

Souborový systém musí zajistit maximální možnou ochranu před tichým poškozením dat, tj. takovým poškozením, které vzniká nepozorovaně. V závislosti na použitém datovém médiu může být narušení integrity dat způsobeno nedokonalou izolací, kvůli které unikne elektrický náboj (flash paměti, SSD), ztrátou magnetické orientace bitů (magnetická média) nebo třeba chemickým rozpadem materiálu (optická média). Mezi další příčiny poškození integrity dat lze zařadit softwarové chyby ve firmwaru úložiště, výkyvy v elektrickém napětí atp. Souborové systémy používají různé způsoby, jak se s podobnými problémy vypořádat. V některých případech je možné potíže předvídat a předcházet jim, jindy je nutné s poškozením počítat a připravit se na potřebu detekce narušené integrity a následnou obnovu původního stavu, aby nedošlo ke ztrátě dat. Například ZFS a Btrfs implementují jeden z nejpokročilejších způsobů ochrany integrity dat, který je založený na kontrolních součtech. Jednou z metod využívaných v rámci těchto dvou souborových systémů je tzv. data scrubbing. Tato technika používá kontrolní součty k odhalování poškozených dat a automaticky opravuje chyby s pomocí existujících kopií (ze snímků nebo interního RAIDu). Protože systém neustále kontroluje integritu a opravuje případné chyby, snižuje se pravděpodobnost, že se chyby, byť malé, nahromadí natolik, že již opravit nepůjdou.

Odolnost

V případě havárie systému, mechanického poškození úložiště, výpadku proudu apod. je potřeba, aby se souborový systém dokázal vyrovnat s náhlým přerušením činnosti a aby byl schopný nejen zachovat všechna již uložená data, ale také obnovit data, se kterými se v okamžiku havárie pracovalo. Jednou z prvních široce používaných technologií, které měly zamezit ztrátě dat v popsaných situacích, bylo tzv. žurnálování. Řada dnes používaných souborových systémů, včetně například XFS, Ext4 nebo NTFS, používá žurnál. Další technologie zajišťující odolnost souborového systému proti haváriím je copy-on-write (COW). Jak ZFS, tak Btrfs jsou založené na copy-on-write.

Bezpečnost

Souborové systémy musí poskytovat možnost definovat přístupová práva k jednotlivým souborům a adresářům pro uživatele a skupiny uživatelů. Pokročilé souborové systémy implementují ACL (access control list), což jsou atributy umožňující jemnější nastavení přístupových práv pro konkrétní uživatele a procesy. Další bezpečnostní kritérium je šifrování dat, které však bývá často implementováno na úrovni správce disků (volume management) nebo přímo v operačním systému.

Kapacita

Ohromné objemy dat, které je potřeba ukládat, přenášet, distribuovat a zpracovávat, vyžadují možnost vytváření souborových systémů ve velikostech, které se před pár desetiletími zdály absurdní. Dnešní souborové systémy proto umožňují škálování do velikostí, jež si lze jen těžko představit. V této kategorii vede ZFS, protože se jedná o 128bitový souborový systém (na rozdíl od Btrfs, XFS a dalších, které jsou 64bitové), což teoreticky umožňuje adresovat až 278 bajtů (což je mnohonásobně více, než kolik se odhaduje, že na celém světě existuje úložné kapacity). K poměrně novým technologiím, které pomáhají pokročilým souborovým systémům řešit kapacitní otázky, patří také deduplikace.

Výkon

Rychlost a výkon souborových systémů jsou důležité vlastnosti s ohledem na objemy dat, které je potřeba zpracovávat, ale mnohdy ustupují do pozadí, protože ostatní výše uvedené charakteristiky mají hlubší dopad na celkovou použitelnost systému. Vzhledem k tomu, že limitujícím faktorem pro rychlost souborového systému zůstávají možnosti použitého úložného média, zaměřuje se optimalizace kódu souborových systémů zejména na to, aby dokázal systém po výkonnostní stránce držet krok s rostoucími kapacitami úložišť.

Dnes nejrozšířenější souborové systémy už nestačí

Ext4 je výchozí souborový systém v řadě linuxových distribucí. Je sice neustále vyvíjen, ale používá zastaralé technologie a navzdory podpoře mnoha pokročilých funkcí funguje více méně jako nouzové řešení, dokud nebude k dispozici nový souborový systém.

Podobně je na tom NTFS ve světě Windows, kde se Microsoft snaží potíže vyřešit s pomocí nově navrženého souborového systému ReFS, který však stále není připravený na produkční nasazení a navíc postrádá některé důležité funkce, jež lze najít v Btrfs i ZFS, například online komprimaci, deduplikaci nebo podporu pro vytváření snímků pomocí copy-on-write.


ZFS a Btrfs

Podívejme se podrobněji na dva zástupce moderních souborových systémů, které jsou navržené tak, aby od počátku vyhovovaly vysokým nárokům vyplývajícím z nutnosti podporovat masivní škálovatelnost při zachování bezpečnosti uložených dat a rozumného výkonu.

ZFS

ZFS vyvinula firma Sun Microsystems pro svůj systém OpenSolaris a představen byl v roce 2005. ZFS je kombinací souborového systému a správce logických disků, podporuje komprimaci dat, kontinuální kontrolu integrity dat a automatické opravy a využívá copy-on-write pro vytváření snímků a klonů.

Vzhledem k tomu, že firma Sun vydala ZFS pouze s licencí CDDL, která – ač jde o open-source licenci – není kompatibilní s licencí GPL, kterou používá Linux, nebyl ZFS poměrně dlouho portován na Linux. Nasazení ZFS bylo proto omezené na nativní (Open)Solaris a BSD systémy, jež používají licence kompatibilní s CDDL. Tato skutečnost hrála roli jako jeden z motivačních faktorů pro začátek vývoje Btrfs.

Red Hat

Btrfs

Btrfs je souborový systém pro Linux založený na principu copy-on-write a využití datové struktury postavené na tzv. B-stromech (v angličtině B-tree – odtud název souborového systému). Podobně jako ZFS i Btrfs chrání integritu dat pomocí snímků, klonů a kontrolních součtů, podporuje využití více fyzických úložných zařízení v rámci jednoho souborového systému a poskytuje řadu pokročilých funkcí pro ochranu (a obnovu) dat a škálování.

Vývoj Btrfs začal v roce 2007 ve firmě Oracle a přestože Oracle koupil v roce 2009 Sun Microsystems (a tím pádem i ZFS), projekt pokračoval. Kód byl v roce 2009 začleněn do hlavní větve linuxového jádra a v srpnu 2014 byl diskový formát systému označen za stabilní. Btrfs umožňuje velmi inteligentní a bezpečnou konverzi linuxových souborových systémů Ext2, Ext3 a Ext4 na Btrfs, což výrazně usnadňuje jeho nasazení.

Btrfs je ve většině linuxových distribucí k dispozici jako „technology preview“ (například v Red Hat Enterprise Linuxu od verze 6), ale některé distribuce už jej nabízejí jako plně podporovaný souborový systém, který je považovaný za dostatečně zralý a stabilní na to, aby mohl nést kořenový oddíl. Jsou to například SUSE Linux Enterprise Server nebo Oracle Linux.

Závěr

Obří objemy dat a neustálé navyšování kapacity datových úložišť si vynutily návrh nových souborových systémů, které využívají řadu pokročilých technologií pro zajištění škálovatelnosti, odpovídajícího výkonu a ochrany dat před poškozením a neoprávněnou manipulací. Stojí za zmínku, že řada dnes nasazovaných moderních souborových systémů vzniká jako svobodný software. Firmy se naučily využívat výhod open-source vývoje a téměř všichni velcí hráči staví své systémy na linuxovém základu.

Robert Krátký Robert Krátký
Autor článku působí jako Technical Writer ve společnosti Red Hat.
Chcete získat časopis IT Systems s tímto a mnoha dalšími články z oblasti informačních systémů a řízení podnikové informatiky? Objednejte si předplatné nebo konkrétní vydání časopisu IT Systems z našeho archivu.