Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

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

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.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

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.

Adam Štrauch

Adam Štrauch

Adam Štrauch je redaktorem serveru Root.cz a svobodný software nasazuje jak na desktopech tak i na routerech a serverech. Ve svém volném čase se stará o komunitní síť, ve které je již přes 100 členů.

Školení: Django framework: Struktura a základy vývoje (nejen) webových aplikací

Django je vyspělý webový framework napsaný v jazyce Python, který podporuje extrémně rychlý vývoj společně s dodržováním principů dobrého návrhu. Snaží se co nejvíce automatizovat a drží se principu DRY (z anglického Don't Repeat Yourself — neopakuj se).

  • Instalace potřebného softwaru
  • Programování v Pythonu: příkazy, funkce, datové typy, moduly, objekty, výjimky
  • Struktura aplikace v Djangu
  • Typické záležitosti webových aplikací: Napojení na databázi, zpracování vstupu od uživatele, přihlášení či generování dynamického obsahu.
  • Implementace principu MVC: modely, pohledy (views) a šablony
  • Seznámení s užitečnými komponenty frameworku Django
  • Šikovné praktiky

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 2,64

Přehled názorů

JFS v linuxu
LENIN POWER! 19. 8. 2008 00:40
Nový
├ 
Re: JFS v linuxu
Adam Štrauch 19. 8. 2008 03:07
Nový
│
└ 
Re: JFS v linuxu
anonymní uživatel 19. 8. 2008 16:12
Nový
├ 
Re: JFS v linuxu
ToM 19. 8. 2008 10:18
Nový
└ 
Re: JFS v linuxu
GEDIK 19. 8. 2008 14:56
Nový
 
└ 
Re: JFS v linuxu
LENIN POWER! 19. 8. 2008 23:33
Nový
Defragmentace
Martin Doucha 19. 8. 2008 00:47
Nový
└ 
Re: Defragmentace
Adam Štrauch 19. 8. 2008 03:06
Nový
RE: XFS a JFS: Odstrčené souborové systémy?
FLEK. 19. 8. 2008 06:31
Nový
├ 
RE: XFS a JFS: Odstrčené souborové systémy?
Radovan Garabík 19. 8. 2008 08:20
Nový
├ 
RE: XFS a JFS: Odstrčené souborové systémy?
Ivan 19. 8. 2008 10:45
Nový
│
└ 
RE: XFS a JFS: Odstrčené souborové systémy?
dan 19. 8. 2008 17:15
Nový
│
 
├ 
RE: XFS a JFS: Odstrčené souborové systémy?
lyon 19. 8. 2008 20:41
Nový
│
 
└ 
RE: XFS a JFS: Odstrčené souborové systémy?
Sten 19. 8. 2008 23:43
Nový
└ 
RE: XFS a JFS: Odstrčené souborové systémy?
Adam Štrauch 19. 8. 2008 11:34
Nový
 
└ 
RE: XFS a JFS: Odstrčené souborové systémy?RE: XFS a JFS: Odstrčené souborové…
Heron 19. 8. 2008 16:32
Nový
 
 
├ 
RE: XFS a JFS: Odstrčené souborové systémy?RE: XFS a JFS: Odstrčené souborové…
Adam Štrauch 19. 8. 2008 18:09
Nový
 
 
└ 
RE: XFS a JFS: Odstrčené souborové systémy?RE: XFS a JFS: Odstrčené souborové…
Shr3k 23. 8. 2008 03:14
Nový
aaa
machrostroj 19. 8. 2008 07:27
Nový
└ 
Re: aaa
Dan Ohnesorg 19. 8. 2008 10:57
Nový
 
└ 
Re: aaa
Filip Jirsák 19. 8. 2008 14:47
Nový
journaling FS
j. 19. 8. 2008 07:38
Nový
└ 
Re: journaling FS
Zdenek 19. 8. 2008 10:13
Nový
 
└ 
Re: journaling FS
j. 19. 8. 2008 11:09
Nový
 
 
└ 
Re: journaling FS
M. Lox 19. 8. 2008 16:15
Nový
Překlep
David Kolibáč 19. 8. 2008 07:46
Nový
└ 
Re: Překlep
Adam Štrauch 19. 8. 2008 11:32
Nový
FS
cpu 19. 8. 2008 07:58
Nový
├ 
Re: FS - SPAD fs - FS od BLEKa.
Petr Šmíd 19. 8. 2008 08:15
Nový
│
├ 
Re: FS - SPAD fs - FS od BLEKa.
Sten 20. 8. 2008 00:21
Nový
│
└ 
Re: FS - SPAD fs - FS od BLEKa.
Zdenek Jindra 20. 8. 2008 20:27
Nový
└ 
Re: FS
msk 20. 8. 2008 12:25
Nový
Zournaling
Michal Kára 19. 8. 2008 08:29
Nový
├ 
Re: Zournaling
dayvee 19. 8. 2008 09:09
Nový
│
└ 
Re: Zournaling
Heron 19. 8. 2008 09:21
Nový
│
 
└ 
Re: Zournaling
M. Lox 19. 8. 2008 16:17
Nový
└ 
Re: Zournaling
capslock 19. 8. 2008 09:38
Nový
 
└ 
Re: Zournaling
Michal Kára 19. 8. 2008 09:43
Nový
 
 
└ 
Re: Zournaling
capslock 19. 8. 2008 20:42
Nový
 
 
 
└ 
Re: Zournaling
anonymní uživatel 20. 8. 2008 08:53
Nový
Stratu dat sposobenu FS ziaden RAID nezachrani
Rado1 19. 8. 2008 11:01
Nový
RE: XFS a JFS: Odstrčené souborové systémy?
anonymní uživatel 19. 8. 2008 11:11
Nový
└ 
RE: XFS a JFS: Odstrčené souborové systémy?
Izak 19. 8. 2008 12:26
Nový
 
└ 
RE: XFS a JFS: Odstrčené souborové systémy?
anonymní uživatel 19. 8. 2008 12:41
Nový
Zajimave
vtech 19. 8. 2008 12:22
Nový
├ 
Re: Zajimave
M. Lox 19. 8. 2008 16:18
Nový
└ 
Re: Zajimave
Boogie 19. 8. 2008 20:40
Nový
JFS - nesynchronizace
Izak 19. 8. 2008 12:30
Nový
├ 
Re: JFS - nesynchronizace
vtech 19. 8. 2008 12:34
Nový
│
├ 
Re: JFS - nesynchronizace
Petr Šmíd 19. 8. 2008 12:40
Nový
│
│
├ 
Re: JFS - nesynchronizace
vtech 19. 8. 2008 12:56
Nový
│
│
└ 
Re: JFS - nesynchronizace
vtech 19. 8. 2008 12:59
Nový
│
│
 
└ 
Re: JFS - nesynchronizace
Petr Šmíd 19. 8. 2008 13:09
Nový
│
│
 
 
├ 
Re: JFS - nesynchronizace
Zdenek 19. 8. 2008 13:15
Nový
│
│
 
 
│
└ 
Re: JFS - nesynchronizace
vtech 19. 8. 2008 13:20
Nový
│
│
 
 
│
 
└ 
Re: JFS - nesynchronizace
Zdenek 19. 8. 2008 13:59
Nový
│
│
 
 
│
 
 
└ 
Re: JFS - nesynchronizace
vtech 19. 8. 2008 14:14
Nový
│
│
 
 
│
 
 
 
└ 
Re: JFS - nesynchronizace
Zdenek 19. 8. 2008 14:24
Nový
│
│
 
 
│
 
 
 
 
└ 
Re: JFS - nesynchronizace
vtech 19. 8. 2008 14:30
Nový
│
│
 
 
├ 
Re: JFS - nesynchronizace
vtech 19. 8. 2008 13:16
Nový
│
│
 
 
│
├ 
Re: JFS - nesynchronizace
X125 19. 8. 2008 13:19
Nový
│
│
 
 
│
│
└ 
Re: JFS - nesynchronizace
vtech 19. 8. 2008 13:22
Nový
│
│
 
 
│
│
 
└ 
Re: JFS - nesynchronizace
anonymní uživatel 19. 8. 2008 13:50
Nový
│
│
 
 
│
│
 
 
└ 
Re: JFS - nesynchronizace
vtech 19. 8. 2008 14:15
Nový
│
│
 
 
│
└ 
Re: JFS - nesynchronizace
astray 19. 8. 2008 14:32
Nový
│
│
 
 
│
 
└ 
Re: JFS - nesynchronizace
vtech 19. 8. 2008 14:40
Nový
│
│
 
 
└ 
Re: JFS - nesynchronizace
vtech 19. 8. 2008 13:18
Nový
│
│
 
 
 
└ 
Re: JFS - nesynchronizace
Marki 19. 8. 2008 13:50
Nový
│
└ 
Re: JFS - nesynchronizace
Kvakor 19. 8. 2008 21:16
Nový
│
 
└ 
Re: JFS - nesynchronizace
vtech 20. 8. 2008 09:22
Nový
├ 
Re: JFS - nesynchronizace
Ondra 19. 8. 2008 14:02
Nový
└ 
Re: JFS - nesynchronizace
HFechs 20. 8. 2008 00:50
Nový
JFS pod openSUSE
C3 19. 8. 2008 12:51
Nový
└ 
Re: JFS pod openSUSE
Michal Kubeček 25. 8. 2008 01:28
Nový
Vratit honorar - ETOOMANYERRORS
Yenya 19. 8. 2008 15:19
Nový
├ 
Re: Vratit honorar - ETOOMANYERRORS
Karel a Karel 19. 8. 2008 16:19
Nový
├ 
Re: Vratit honorar - ETOOMANYERRORS
FOK 19. 8. 2008 16:36
Nový
│
└ 
Re: Vratit honorar - ETOOMANYERRORS
Sten 20. 8. 2008 00:01
Nový
│
 
└ 
Re: Vratit honorar - ETOOMANYERRORS
LENIN POWER! 20. 8. 2008 11:48
Nový
└ 
Re: Vratit honorar - ETOOMANYERRORS
Field 19. 8. 2008 18:29
Nový
XFS na primarke
Dodo 19. 8. 2008 17:18
Nový
├ 
Re: XFS na primarke
anonymní uživatel 19. 8. 2008 17:35
Nový
├ 
Re: XFS na primarke
anonymní uživatel 19. 8. 2008 21:14
Nový
└ 
Re: XFS na primarke
Izak 20. 8. 2008 09:48
Nový
 
└ 
Re: XFS na primarke
zippy 20. 8. 2008 15:46
Nový
 
 
├ 
Re: XFS na primarke
anonymní uživatel 20. 8. 2008 18:25
Nový
 
 
└ 
Re: XFS na primarke
anonymní uživatel 20. 8. 2008 18:27
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem