Provozujeme linuxový server (5) - výběr filesystému

Volba souborového systému je pro server velmi důležitá. Na jedné straně si nemůžete dovolit nasadit něco nestabilního, na straně druhé potřebujete rozumný výkon a určitou obnovu do konzistentního stavu v případě výpadku.

18.4.2005 06:00 | Ondřej Čečák | přečteno 21727×

Filesystém (souborový systém) zajišťuje uložení informací (ve formě souborů a adresářů) na disk a následně jejich zpětné vyvolání. U filesystémů, které umí Linux pořádně využívat, je třeba zvážit několik důležitých aspektů:

Výhodou je také, pokud si souborový systém udržuje tzv. žurnál, kam si zapisuje probíhající operace. Pokud během diskových operací například vypadne proud, bude podle žurnálu následně jasné, že filesystém nebyl odmountován korektně a že nemusí být v konzistentním stavu – následná oprava pak zajistí, aby se souborový systém do konzistentního stavu dostal. Obvykle se neřeší stav vlastních dat; pokud chcete předejít jejich ztrátě např. v důsledku zmíněného výpadku elektrického proudu, bude vhodnější investice např. do UPS.

Filesystémy podporované Linuxem

Linux podporuje širokou škálu souborových systémů. Pro naše účely si je rozdělíme na tři skupiny:

Speciální souborové systémy jsou používány zpravidla za určitým účelem a hodí se především pro ně s tím, že je nemá cenu dávat na systémové svazky – na rozdíl od nativních filesystémů, které jsou pro to určené. Linux také podporuje souborové systémy jiných operačních systémů, které spadají do skupiny třetí.

Speciální filesystémy

iso9660

ISO 9660 je standard vydaný International Organization for Standardization, který definuje filesystém na CD-ROMu (popř. i DVD). Jeho výhodou je to, že je podporován mnohými operačními systémy, samozřejmě včetně Linuxu.

cramfs

Cramfs je navržen jako malý, jednoduchý a snadno komprimovatelný souborový systém. Používá se například v ebbedded zařízeních, distribuce Debian GNU/Linux ho používá jako souborový systém pro initrd, SUSE během instalace.

Nativní filesystémy

EXT2

Souborový systém ext2 byl původně navržen Rémy Cardem a vycházel z návrhu ext. První verze ext2 vyšla v roce 1993. V Linuxu byl ext2 dlouhou dobou standardem a stále je dostatečně široce podporován. Jeho hlavní výhodou je stabilita ("rock-stable"), ovšem vzhledem k tomu, že jeho kód už není sdílený s filesystémem ext3, tak je postupně méně používán a tím pádem i testován; takže se může stát, že něco nebude fungovat správně (např. v nových jádrech nebo s novými vlastnostmi).

Ext2 není žurnálový filesystém, lze ho rozšířit o podporu ACL a kvót. Obslužné programy z balíku e2fsprogs jsou často používané, otestované a bezproblémové. Pokud nepotřebujete používat pokročilejší funkce a nepotřebujete žurnálování, chcete použít jádro řady 2.2 nebo 2.4 a nemáte paměti na rozdávání, bude ext2 rozhodně dobrá volba.

EXT3

Souborový systém ext3 navrhl v roce 1999 Stephen Tweedie. Ext3 přidává k filesystému ext2 podporu žurnálu, ale jako takový může být stále namountován jako ext2. Pro uživatele ext2 je navíc zajímavá možnost bezpečného upgradu z ext2 na ext3. Utility pro správu ext2 mohou být také použity pro ext3.

Ext3 je dobrý kompromis mezi stabilitou a funkcemi. Rozumně v něm fungují ACL, žurnál je poměrně čistě dodělaný a téměř nedegraduje výkon. Výhodou také je, že ho lze bezpečně zmenšit a zvětšit, a dokonce i zvětšit přimountovaný filesystém. Ext3 je velmi otestovaný a široce podporovaný filesystém, takže pokud nemáte speciální požadavky, bude určitě dobrou volbou.

Ext3 je v jádře od 2.4.15, v řadě 2.6 od první verze.

JFS

JFS byl vytvořen firmou IBM původně pro AIX, záhy byl portován na OS/2, poté zpět na AIX a následně na Linux. JFS byl vytvořen s důrazem na vysokou spolehlivost a rychlost. Postupem času uvolněný pod open source licencí. JFS má žurnál, kvóty zvládne při použití externího patche, EA/ACL v něm nejsou implementovány vůbec, filesystém může být pouze zvětšen.

JFS je v jádře řady 2.4 od verze 2.4.20, ve větvi 2.6 je od první verze, začleněn byl už do vývojářské větve 2.5.6.

ReiserFs

ReiserFs (v3) byl představen v roce 2001 Hansem Reiserem z týmu Namesys a jeho výhodou je excelentní výkon při práci s malými nebo mnoha soubory (při použití velkých souborů je jeho výkon průměrný až podprůměrný). V dřívějších dobách obsahoval pár nepříjemných chyb a jeho programy nebyly příliš spolehlivé, ovšem současný stav by už měl být plně srovnatelný s ostatními filesystémy.

Reiserfs má žurnál, kvóty a ACL umí, ovšem pouze s externími patchi, které zřejmě nejsou příliš otestované; navíc pro reiserfs neexistuje klasický dump. Reiserfs lze zvětšit i zmenšit, ovšem zejména to druhé asi ne bez rizika. Na místě je také otázka perspektivy, v blízké budoucnosti totiž lze očekávat nástup reiser4, který je celý napsán od nuly.

Tento souborový systém je v jádře od první verze 2.4, stejně tak i ve 2.6.

XFS

XFS je filesystém s žurnálem, který vyvinula (představen byl v roce 1993) SGI pro svůj komerční IRIX. V květnu 2000 byl XFS uvolněn pod open source licencí.

XFS je asi nejbohatší co se týká funkcí – má žurnál, bezproblémů podporuje EA/ACL, kvóty byly už v návrhu (takže jsou elegantně součástí metadat). XFS umí efektivně pracovat s mnoha soubory, jeho výkon je rozumně vyvážený.

Souborový systém XFS má výborné obslužné programy (xfsdump/xfsrestore), řadu speciálních vlastností (např. "zmrazení" filesystémů nebo zvětšování za chodu). Jeho snad jedinou nevýhodou je velikost kódu – ačkoli byl oproti původnímu kódu z IRIXu téměř celý přepsán, je stále dost veliký.

XFS je v jádře řady 2.6 od první verze – zařazen byl už ve vývojové větvi 2.5 (konkrétně od 2.5.36). V řadě 2.4 je až od verze 2.4.25 (předtím byl dostupný formou patche).

Filesystémy pro zpětnou kompatibilitu

FAT

Původní verze FAT 12 byla představena firmou Microsoft v roce 1980 a sloužila jako souborový sytém pro MS DOS, později MS Windows.

Podpora v Linuxu pro (V)FAT je velmi dobrá, bez problémů funguje čtení a zápis. FAT je velmi často používán na malých, přenosných zařízeních jako například USB flashdisky, fotoaparáty, PDA apod.

NTFS

NTFS je souborový systém navržený pro novější operační systémy Windows, v současné době je používají MS Windows NT, 2k, XP a Windows 2003 Server. Oproti FAT má některá vylepšení – například metadata, žurnál nebo ACL.

Kvůli postoji firmy Microsoft není volně dostupná specifikace, takže open source vývojáři pracující na podpoře NTFS v Linuxu postupují metodou pokus/omyl. V současné době funguje bez problém pouze čtení, existuje také nějaký kód pro zápis, ovšem ten má mnohá omezení (mj. u souborů lze pouze měnit obsah za předpokladu, že se nezmění jejich velikost; po takovémto zápisu se musí provádět kontrola a oprava filesystému apod.) a proto se zápis na oddíly s NTFS nedoporučuje. Existuje ovšem project Captive (shodou okolností z Česka), který bezpečný zápis umožňuje.

ufs

UFS je souborový systém používaný mnohými unixy; je odvozený od FFS, který vytvořen jako filesystém pro první UNIX v Bell Labs.

UFS byl vytvořen Kirk(em) McKusick(em), první verze byla představena v roce 1994, druhá o 8 let později. (trochu stranou také stojí UFS pro Mac OS X od firmy Apple). Linux dokáže UFS i UFS2 bezpečně číst, na UFS také zapisovat (ovšem jako experimentální volba).

ostatní

Linux také zvládne přečíst (popřípadě zapisovat na) řadu dalších souborových systémů, za zmínku rozhodně stojí HFS a HFS+ (používá se na počítačích Macintosh, případně např. přehrávači iPod).

V případě, že chcete s nenativním souborovým systémem pracovat (především na něj zapisovat), podívejte se do dokumentace. Ne vždy musí být zápis naprosto bezpečný a poškození nebo ztrátu dat si asi nepřejete.

Závěr

Jaký filesystém si tedy zvolit? To záleží především na vašich požadavcích a typu operací, které budete s diskem pravděpodobně provádět. Volba podporovaných souborových systémů je celkem široká, stačí si jen vybrat.

Jaké používáte filesystémy na svých serverech? Které vlastnosti u nich považujete za důležité a bez kterých se klidně obejdete? Podělte se o své zkušenosti v diskuzi pod článkem.

Odkazy, dodatky

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=772