Hlavní navigace

XFS a JFS: Odstrčené souborové systémy?

Adam Štrauch 19. 8. 2008

XFS a JFS jsou tu s námi již dobrých pár let, a jelikož oba pocházejí od velkých firem, tak se jejich uplatnění najde spíše na serverech. XFS nabízí velké množství vlastností, o kterých se ostatním může jenom zdát. JFS se drží spíše hesla "méně je někdy více". Oba jsou ale zajímavé a hlavně dostupné pod licencí GNU/GPL.

XFS

Historie

XFS je druhým souborovým systém (hned po JFS), který přinesl do linuxového jádra žurnálování. Vyvinula ho firma Silicon Graphics v roce 1993. Poprvé se objevil a systému IRIX 5.3 v roce 1994. Na začátku nebyl vyvíjen pod svobodnou licencí, té se dočkal v květnu roku 2000, a rok poté se objevil v Linuxu (jádro 2.4 i 2.6). Dnes je XFS obsaženo ve většině linuxových distribucí. FreeBSD podporuje XFS pro čtení od prosince roku 2005, od června i experimentální podporu pro zápis. Ovšem nedoporučuje se používat na FreeBSD jako primární souborový systém.

Vlastnosti

XFS přináší do světa Linuxu opravdu zajímavou dávku vlastností, ale také má několik nedostatků. To je například fakt, že se nedá zmenšit, pouze zvětšit (online), je pomalý při práci s metadaty (mazání, vytváření souborů a adresářů), občas v něm po výpadku zůstanou prázdné soubory, občasné zamrzání systému za určitých podmínek (velké množství I/O operací a jádro s volbou CONFIG_4KSTACKS) při používání LVM.

XFS je 64 bitový souborový systém a na jádře 2.6 může mít velikost bez jednoho bytu 8 EB. Na 32-bit Linuxu je tento limit snížen na 16 TB. Jedná se o serverový souborový systém, takže podpora sdílení dat přes NFS je samozřejmostí. Stejně tak nechybí ani kvóty nebo nastavení POSIX práv na soubory a adresáře.

Žurnálování

O žurnálování jsem toho napsal mnoho v minulých článcích a XFS nějak nevybočuje z řady. Stejně jako reiserfs a ext3/4 žurnáluje pouze metadata. Bohužel na tom při výpadcích není tak dobře jako zmíněné tři souborové systémy, protože se mu občas stává, že po neočekávaném vypnutí stroje, například způsobeným výpadkem proudu, se ze souborů v tu dobu otevřených pro psaní stanou prázdné soubory. Proto se ve spojení s XFS doporučuje používat RAID pole a UPS.

Allocation groups

Tato vlastnost vylepšuje výkon při paralelním přístupu k datům. Projeví se ještě víc při použití více jak jednoho fyzického zařízení v kombinaci s větším počtem procesorových jader v jednom systému. Princip je takový, že celý oddíl je interně „rozkouskovaný“ do tzv. allocation groups (AG). Poté se každý AG stará o vlastní inody a o vlastní volný prostor nezávisle na ostatních AG.

Striped allocation

Pokud se XFS vytvoří na poli jako je RAID 0, tak se sám stará o rovnoměrné rozprostření inodů, žurnálu i samotných dat na všechna zařízení v tomto poli.

Extent based allocation

XFS podporuje tzv. extenty. Ty slouží ke spojování velkého množství souvislých bloků pod jeden ukazatel. To vylepšuje výkon, ale zároveň snižuje míru fragmentace. Extenty se alokují větší, než jsou zprvu potřeba, a pokud se do souboru bude později znovu zapisovat, je pravděpodobné, že zápis začne tam, kde skončil ten minulý.

Delayed allocation

Stejně jako relativně nový souborový systém ext4, XFS podporuje „zpožděnou alokaci“. Při využití této vlastnosti se souborový systém snaží fyzický zápis co nejvíce oddálit a ukládá data do bufferu. Pokud se soubor uzavře nebo dojde prostor v bufferu, data se zapíší na disk do bloků jdoucích za sebou. Tím se snižuje fragmentace.

Řídké soubory

Některá řešení (často databázové servery) potřebují vytvořit velký soubor, ale ještě nemají data, kterým by ho zaplnila. Řídké soubory (Sparse files) slouží právě pro tyto účely. Soubor se sice vytvoří velký, ale není fyzicky alokovaný a „díry“, které v něm jsou, nezabírají zbytečně místo na disku.

Extended attributes

XFS podporuje také tzv. Extended attributes. Ty umožňují ke každému inodu (soubory, adresáře, symlinky, device nody, …) uložit velké množství informací formou „klíč=hodnota“ rozdělených do dvou namespace root (může editovat pouze root) a user (mohou editovat uživatelé i root). Každá hodnota může obsahovat až 64kB binárních dat a klíč 256 znaků.

Direct I/O

Pro aplikace, které vyžadují vysokou propustnost dat, obsahuje XFS funkce, které umožňují přímý přístup k I/O operacím, kde se nebude využívat cache. Aplikace je tak napojena přímo na disk používající DMA, což dává aplikaci přístup k plné šířce pásma.

Garantovaná šířka pásma

XFS API dává možnost, aby si aplikace vyhradila pro sebe šířku pásma. To se hodí například u streamování videa, kdy by například zálohování mohlo způsobit „záškuby“, kterých by si všimli lidé sledující konkrétní stream. Tato vlastnost je z pohledu linuxových souborových systémů u XFS vcelku unikátní.

Online defragmentace

I když XFS používá pokročilé techniky pro zabránění fragmentace, pravda je taková, že k fragmentaci bude docházet. XFS nabízí možnost za běhu defragmentovat celý souborový systém pomocí nástroje xfs_fsr.

Zálohování

Běžné zálohování pomocí rsync a cp se bohužel neobejde bez použití tzv. snapshotů. Jedná se o zpřístupnění „zmraženého“ stavu nějakého souborového systému tak, aby se s ním dalo normálně pracovat, ale zároveň aby nabízel právě ten jeden stav, který vznikl při vytváření snapshotu. Ten se pak zazálohuje a zničí. XFS na to jde jinak a používá dva nástroje xfsdump a xfsrestore. Ty zkopírují stav souborového systému do jednoho souboru v pořadí, v jakém jsou na disku uloženy jednotlivé inody. Spolehlivě se tak zazálohují i atributy všech inodů.

JFS

Historie

JFS začalo vyvíjet IBM v roce 1990 pro operační systém AIX a byl úzce spjat s jeho memory managementem. Dnes je tento souborový systém znám jako JFS1. V roce 1995 začaly práce na vylepšování celého JFS. Cílem bylo udělat ho více přístupný pro ostatní operační systémy. Po letech vývoje se JFS dostalo do operačního systému OS/2 Warp Server a později i OS/2 Warp Client. V prosinci roku 1999 se zdrojové kódy předaly open source komunitě a začalo se pracovat na portování JFS na Linux. JFS byl tedy první linuxový souborový systém, který podporoval žurnálování. První stabilní vydání se v Linuxu objevilo o rok a kousek později v červnu. Původní JFS se zatím vyvíjelo dále a součástí AIX je teď JFS2.

Vlastnosti

JFS obsahuje také pár zajímavých vlastností. Samozřejmě nesmíme opomenout žurnál, který jsem popisoval v mnoha předchozích případech. S XFS má také společné AG a extenty.

B+ Tree

B+ Tree je používán pro ukládání inodů. Vyhledávání ve velké adresářové struktuře je díky němu mnohem rychlejší. Podobného algoritmu využívá i reiserfs a reiser4. Podrobnější popis fungování tohoto stromu naleznete v jednom z minulých článků.

Compression

Komprese v JFS je dostupná pouze v první verzi a využívá variaci na LZ algoritmus. Komprese je velmi náročná na CPU a doporučuje se používat pouze tam kde je potřeba (dokumenty, logy, jiné textové soubory, …) a kde je dostatečná rezerva ve výkonu.

Concurrent Input / Output (CIO)

JFS běžně používá tzv. read-shared a write-exclusive. To znamená, že číst může ze souboru více procesů, ale zapisovat pouze jeden. To vede ke zvýšení režie hlavně u databází. Proto si databáze mohou tento mechanismus vypnout, protože si udržují data v souborech v konzistentním stavu samy.

JFS Superblocks

„Superbloky“ udržují informace o celém souborovém systému. Jsou to například velikost souborového systému, počet bloků, flagy se stavem, velikost AG, velikost bloků.

Závěr

XFS má z principu větší režii kolem metadat, protože jeho struktura je složitější než u jiných souborových systémů. Na druhou stranu mu tato složitost zvětšuje výkon u paralelních operací nad souborovým systémem (více aplikací čte různá data). Na domácí použití bych ho nedoporučil, protože tam se většinu času pracuje primárně s jedním nebo malým počtem souborů (přehrávání multimédií, psaní dokumentu, …) a jeho potenciál se nevyužije. Na servery to je ale jedna z nejlepších možností.

JFS je podobný případ jako XFS, hodí se také pro servery a pro domácí použití je slabší. Jeho výkon je o něco vyšší, ale zase postrádá množství vlastností XFS. Na poli serverů si tyto souborové systémy budou konkurovat a administrátor by se měl rozhodovat podle vlastností, které potřebuje, případně podle výkonu pro konkrétní činnost.

A abych nakonec odpověděl na otázku z titulku. Ne, XFS ani JFS nejsou odstrčené souborové systémy. Nejsou jen na očích uživatelů běžných distribucí a používají se většinou pouze na serverech, takže o nich není běžně slyšet.

Našli jste v článku chybu?
Podnikatel.cz: Hledáte investora? Neunáhlete se

Hledáte investora? Neunáhlete se

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

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

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

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

Přehledná titulka, průvodci, responzivita

Podnikatel.cz: Alza.cz má StreetShop. Mall.cz více výdejních míst

Alza.cz má StreetShop. Mall.cz více výdejních míst

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu

DigiZone.cz: Sat novinky: slovenská TV8 HD i ruský NTV Mir

Sat novinky: slovenská TV8 HD i ruský NTV Mir

Vitalia.cz: Manželka je bio, ale na sex moc není

Manželka je bio, ale na sex moc není

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Lupa.cz: EET v e-shopech? Zdražení a horší komfort

EET v e-shopech? Zdražení a horší komfort

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Lupa.cz: Seznam mění vedení. Pavel Zima v čele končí

Seznam mění vedení. Pavel Zima v čele končí

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

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

Jsou čajové sáčky toxické?

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

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

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

Mondelez stahuje rizikovou čokoládu Milka