XFS je velice výkonný systém souborů vyvinutý společností SGI (Silicon Graphics). Má spoustu dobrých vlastností: dynamické vytváření inod (na rozdíl od statického jako např. v ext3), žurnálování (pouze metadat, podobně jako ostatní FS), quoty, acl (implementované přímo v FS), online defragmentaci, extenze, optimalizovaný přístup mnoha procesů (XFS rozděluje disk na AG — Allocation Groups, které mají vlastní supernode), vymezenou rychlost přístupu k datům (při přístupu přes DMAPI).
Co mu však příliš nejde je práce s mnoha malými soubory. Tedy, ne že by je neuměl uložit a přečíst :-), ale práce, zejména mazání, s větším množství souborů mu nejde příliš rychle. To se dá určitým nastavením zlepšit. Pojďme na to:
Velikost žurnálu
Žurnál je místo na disku, kam se ukládají veškeré operace s daty (vytvoření souboru, umístění do adresářové struktury, …). Pokud dojde k vypnutí systému, ovladač FS projde žurnál a opraví případné chyby. Díky tomu je oprava velice rychlá.
Velikost žurnálu se nastavuje při vytvoření FS a jeho velikost je možno nastavit parametrem -l size=xm
, kde x
udává velikost žurnálu v MB. Doporučuji nastavit na max tj. 128MB.
mkfs.xfs -l size=128m /dev/hXX
Počet vyrovnávacích pamětí
XFS si ukládá spoustu dat v RAM, výchozí nastavení není příliš štědré. Nastavíme tedy počet bufferů na max tj. 8. Nastavuje se jako parametr při mountu:
/dev/hXX /mnt/XX xfs defaults,logbufs=8 1 2
Dále je možné si pohrát v velikostí těchto vyrovnávacích pamětí parametry biosize,logbsize
, ty jsem nechal v defaultním nastavení. Více viz man mount, sekce xfs.
Čas posledního přístupu k souboru a adresáři
Standardně se na FS ukládá čas přístupu k jednotlivým souborům a dokonce do jednotlivých adresářů (což neplatí pouze pro XFS). Tato položka se prakticky nepoužívá, je tedy zbytečné ji ukládat. Nastavuje se parametry při mountu:
/dev/hXX /mnt/XX xfs defaults,noatime,nodiratime,logbufs=8 1 2
Online defragmentace
Zní to skoro jako vtip. Ze zkušeností vím, že XFS si ze všech FS, se kterými jsem měl tu čest se setkat, měl nejnižší fragmentaci souborů a součastně jako jediný v linuxu poskytuje nástroj na defragmentaci těch několika málo fragmentovaných souborů, aby spojil těch pár fragmentů. No což, další plus.
K defragmentaci XFS slouží nástroj xfs_fsr
. Stačí jej spustit, sám si najde všechny připojené XFS oddíly (musí být připojené pro zápis) a tyto zoptimalizuje.
Nastavení větší počet souborů, aktualizace prosinec 2010
Jen v krátkosti, vytvoření systému souborů:
mkfs.xfs -l version=2,internal,lazy-count=1,size=128m -b size=4096
Parametry připojení FS:
noatime,nodiratime,attr2,nobarrier,logbufs=8,logbsize=256k,osyncisdsync