13.2. Hlavní souborové systémy Linuxu

Před několika lety byla volba souborového systému v Linuxu otázkou několika vteřin (buď Ext2 nebo ReiserFS). Jádra řad 2.4 a 2.6 nabízejí však mnohem víc.

Při volbě souborového systému je především v situacích, kdy je požadován maximální výkon, nutné uvážit, jaké aplikace hodláte používat. Každý souborový systém má své výhody i nevýhody, které je nutné přitom brát v úvahu. Ani ten nejlepší souborový systém však nedokáže nahradit rozumné zálohování.

Termíny integrita dat nebo konzistence dat používané v této kapitole, nemají nic společného s konzistencí uživatelských dat (dat zapisovaných aplikacemi do souborů). Zda jsou data pro aplikace konzistentní, si kontrolují přímo aplikace.

[Important]Nastavení souborového systému

Všechna zde uvedená nastavení lze snadno provést pomocí programu YaST.

13.2.1. Ext2

Historie Ext2 sahá až do počátečních dnů Linuxu. Jeho předchůdce Extended souborový systém byl implementován v dubnu roku 1992 v Linuxu 0.96c. Od té doby prošel Extended souborový systém celou řadou změn až k Ext2, nejpopulárnějšímu linuxovému souborovému systému. Z trůnu ho sesadil až příchod žurnálovacích souborů.

Ext2 neumožňuje dynamickou alokaci inodů. Znamená to, že datové bloky, do jsou data ukládána, jsou vždy stejně velké. Tato skutečnost může vést k nehospodárnému využívání diskového prostoru.

Základní přehled vlastností Ext2 vám pomůže porozumět tomu, proč byl tento souborový systém (a v některých oblastech stále ještě je) nejoblíbenějším linuxovým souborovým systémem.

Spolehlivost

Od počátků svého vzniku Ext2 prošel celou řadou testů a zlepšení. To může být důvod, proč se jeví tak spolehlivým. Pokud systém není možné korektně odpojit, spustí se e2fsck, který začne kontrolovat data souborového systému. Metadata jsou spojována do konzistentního stavu a chybná nebo poškozená data nebo bloky dat jsou zapisována do příslušného souboru (nazývaného lost+found). Na rozdíl od žurnálovacích souborových systémů e2fsck nekontrolujte jen pozměněná data, ale celý systém. To u dnešních disků samozřejmě zabere mnoho času. Protože však není nutné spravovat žurnály a používá mnohem méně paměti, je v některých případech rychlejší než ostatní souborové systémy.

Jednoduchý upgrade

Souborový systém Ext2 tvoří z velké části podklad pro souborový systém další generace Ext3. Jeho spolehlivost byla elegantně zkombinována s výhodami žurnálování.

13.2.2. Ext3

Ext3 navrhl Stephen Tweedie. Na rozdíl od všech ostatních novějších souborových systémů není Ext3 založen na zcela nových základech. Jeho vývoj byl založen na Ext2. Tyto dva souborové systémy tak k sobě mají velmi blízko. Není proto problém vystavět Ext3 na již existujícím systému Ext2. Největší rozdíl, který tyto dva systémy odlišuje, je především podpneboa žurnálování v Ext3.

Ext3 nabízí tyto nejvýznamnější výhody:

Jednoduchý upgrade z Ext2

Ext3 je založen na kódu Ext2 a sdílí s ním formát dat na disku. Z toho důvodu je přechod z Ext2 na Ext3 velmi jednoduchý. Obnova při poškození a kontrola tohoto systému je extrémně rychlá a bezpečná. Pokud z nějakého důvodu Ext3 nevyhovuje vašim požadavkům, není problém vrátit se zpět k Ext2. Downgrade je stejně jednoduchý jako upgrade. Stačí čistě odpojit souborový systém Ext3 a pak ho připojit jako Ext2.

Spolehlivost a výkon

Naprostá většina žurnálovacích souborů je metadata-only. To znamená, že metadata jsou vždy udržována v konzistentním stavu, což ale není vždy garancí konzistentnosti samotných dat souborového systému. Ext3 je navržen tak, aby se staral jak o metadata tak o samotná data. Stupeň této péče lze nastavit. Povolení Ext3 v režimu data=journal poskytuje maximální bezpečnost (integritu dat),ale žurnálování dat i metdat může vést k výraznému zpomalení systému. Jednou z novějších záležitostí je režim data=ordered, který zajišťuje integritu dat i metadata, ale žurnálování provádí pouze u metadat. Ovladač souborového systému sbírá všechny bloky dat, které náleží k určitému updatu metadat. Tyto bloky jsou seskupovány do transakcí a ty jsou pak před updatem metadat zapsány na disk. Výsledkem je zajištění konzistence dat i metadat bez viditelného zvýšení zatížení systému. Třetí volbou je režim data=writeback, který umožňuje zapsat data po zapsání metadat do žurnálu. Tato volba vykazuje nejlepší hodnoty při měření výkonu. Zároveň dokáže zajistit obnovu dat při narušení integrity souborového systému. Pokud pro Ext3 nenastavíte žádný režim, použije se data=ordered.

Přechod z Ext2 na Ext3 na již existujícím systému se skládá ze dvou kroků:

Žurnály

Přihlaste se jako root a zadejte příkaz tune2fs -j. Tak vytvoříte žurnál Ext3 s výchozími parametry. Pokud chcete nastavit délku žurnálu, zadejte místo předešlého příkazu příkaz tune2fs -J spolu s volbami size= a device=. Více informací o programu tune2fs najdete v jeho manuálové stránce (man 8 tune2fs).

Nastavení typu souborového systému v /etc/fstab

Aby byl Ext3 správně rozpoznáván, je nutné ho uvést v souboru /etc/fstab. U položky diskového oddílu, u které jsme souborový systém změnili, musíte změnit typ souborového systému z ext2 na ext3. Změna se projeví po restartu počítače.

13.2.3. ReiserFS

Ten souborový systém byl jednou z hlavních novinek jádra 2.4. Pro SUSE jádra předcházející řady 2.2.x byl dostupný jako jaderný patch od verze 6.4. ReiserFS vznikl díky Hansi Reiserovi a týmu vývojářů společnosti Namesys jako alternativa ke starému Ext2. Může se pochlubit lepším využitím disku, rychlejším přístupem a mnohem lepší a rychlejší opravou dat. Zaměřuje se však na péči o metadata, ale ne o samotná data. Následující verze vy již měly obsahovat také datové žurnálování (do žurnálu jsou zapisovány informace o metadatech i aktuálních datech).

Výhody souborového systému ReiserFS:

Lepší využití disku

V ReiserFS jsou všechna data organizována ve strukturách nazývaných B* stromy. Stromová struktura umožňuje lepší využití disku,protože malé soubory lze umístit přímo do listu stromu, místo rozmístění po celém disku a spravovat pak ukazatele na umístění dat. Data navíc nejsou umisťována do bloků s pevnou velikostí (obvykle 1 nebo 4 kB), ale do bloků potřebné velikosti. Další výhoda ReiserFS spočívá v dynamickém alokování inodů. To umožňuje oproti starším systémům vyšší flexibilitu.

Vyšší diskový výkon

U malých souborů najdete informace o datech souboru a stat_data (inode) vedle sebe. Lze je přečíst jednou jednoduchou diskovou IO operací, což znamená, že je potřeba pouze jeden přístup na disk.

Rychlá obnova po poškození

V případě havárie počítače a poškození souborového systému lze souborový systém ve většině případů opravit během několika sekund. Žurnálování také urychluje pravidelné kontroly konzistence souborového systému.

Žurnálování

ReiserFS podporuje také žurnálování podobné tomu popsanému v části věnované Ext3 section, 13.2.2 – „Ext3“. Výchozí režim je data=ordered. tento režim zajišťuje jak integritu metadat, tak samotných dat, ale žurnálování používá pouze u metadat.

13.2.4. Reiser4

Krátce po vydání jádro 2.6 se rodina žurnálovacích souborvých systémů rozšířilo o nového člena: Reiser4. Reiser4 je od svého předchůdce (version 3.6) zcela odlišný. Představuje koncept modulů vylepšujících funkčnost souborového systému a vylepšenou bezpečnost.

Bezpečnostní koncept

Při návrhu souborového systému Reiser4 věnovali vývojáři zvláštní pozornost funkcím spjatým s bezpečností. Reiser4 je proto vybaven řadou bezpečnostních modulů. Jedním z nejvýznamnějším jsou „položky“ souboru. V současnosti jsou ACLs definovány pro každý soubor. V systému s velkým počtem souborů každý soubor obsahuje potřebné infromasce o právech každého uživatele, skupiny či aplikace. V systému Reiser4 jsou tyto soubory rozděleny do menších jednotek („položky“). Přístupová práva mohou být pro každou položku a uživatele nastavena zvlášť, čímž je umožněna mnohem lepší správa přístupu. Jako příklad může posloužit soubor /etc/passwd. Práva zápisu do tohoto souboru má pouze uživatel root, ostatní uživatelé mají jen práva pro čtení. S využitím položek souborového systému Reiser4 můžete rozdělit spubor na řadu položek (jednu pro každého uživatele), takže uživatel může editovat vlastní data, ale nesmí měnit data ostatních uživatelů. Tento koncept sebou přináší jak vyšší bezpečnost, tak také pružnost.

Rozšiřitelnost prostřednictvím modulů

V systému Reiser4 je řada běžných i rozšířených funkcí prováděna moduly. Lze je snadno přidávat, takže není nutné kvůli nové funkci kompilovat nové jádro nebo formátovat disk.

Lepší výkon souborového systému díky delayed alokaci

Stejně jako u XFS podporuje Reiser4 delayed alokace viz 13.2.6 – „XFS“.

13.2.5. JFS

JFS Journaling file system byl navržen společností IBM. První testovací verze JFS se v linuxové komunitě objevila na jaře roku 2000. Verze 1.0.0 vyšla roku 2001. JFS byl navržen pro výkonné servery a proto byl velký důraz kladen na jeho výkonnost. Jako plně 64 bitový souborový systém, JFS podporuje větší velikost souborů i oddílů.

Vlastnosti JFS:

Výkonné žurnálování

JFS klade stejně jako ReiserFS důraz pouze na metadata. Stejně jako ReiserFS při opravě kontroluje pouze změny v metadatech, což vede k vysoké úspoře času. Konkurenční operace vyžadují současně záznam lze spojit do jedné skupiny a tak vícenásobnými operacemi zápisu redukovat ztráty výkonu.

Vynikající organizace adresářů

JFS používá dva typy organizace adresářů. Pro malé adresáře umožňuje ukládání obsahu přímo v inodu. U větších adresářů používá B+ stromy.

Lepší využití prostoru díky dynamické alokaci inodů

JFS šetří váš čas --- inody jsou alokovány automaticky.

13.2.6. XFS

Původně společnost SGI spustila vývoj tohoto systému na začátku roku 1990 pro svůj operační systém IRIX OS. XFS měl být výkonným 64-bitovým žurnálovacím souborovým systémem určeným pro ty nejnáročnější výpočetní úlohy. XFS dosahuje vynikajících výsledků při práci s velkými soubory a špičkovým hardwarem. Stejně jako jiné žurnálovací systémy jako např. ReiserFS však kontroluje pouze integritu metadat.

Rychlý pohled na hlavní vlastnosti XFS ukáže, proč je tak dobrým souborovým systémem pro náročné výpočetní úlohy:

Vysoká stabilita díky využití alokačních skupin

Při vytvoření souborového systému XFS je souborový systém rozdělen do osmi nebo více lineárních částí stejné velikosti. Ty jsou označovány jako alokační skupiny. Na alokační skupiny lze pohlížet jako na souborový systém v souborovém systému. Jednotlivé alokační skupiny na sobě nejsou nijak závislé, takže jádro může současně adresovat několik skupin najednou. Tato funkce pak vede k vysokému výkonu souborového systému XFS.

Vysoký výkon podpořený účinnou správou diskového prostoru

Volný prostor a inody jsou spravovány B+ stromy vně alokačních skupin. Využívání B+ stromů zvyšuje výkon. S XFS je spojena funkce delayed alokace. XFS při alokaci dělí proces na dvě části. Transakce jsou uloženy v RAM a je pro ně rezervována předpokládaná velikost prostoru. XFS nerozhoduje, kde přesně budou data uložena (bloky souborového systému). Toto rozhodnutí je odloženo na poslední možnou chvíli. Některá data se tak vůbec nedostanou na disk, protože dřív než XFS rozhodne o jejich uložení, zastarají. Tímto způsobem je zvyšován výkon při zápisu a redukována fragmentace souborového systému. Vzhledem ke strategii delayed alokace je však XFS mnohem náchylnější ke ztrátám dat při pádu systému než jiné souborové systémy.

Prelokace souborového systému jako prevence fragmentace

Před zápisem dat do souborového systému, XFS rezervuje (prelokuje) volný prostor potřebný pro soubor. Tak je maximálně redukována fragmentace souborového systému. Zároveň dojde ke zvýšení výkonu, protože jednotlivé soubory nejsou rozmístěny po celém souborovém systému.