Optimalizace XFS

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
Příspěvek byl publikován v rubrice Linux, Systémy souborů, XFS. Můžete si uložit jeho odkaz mezi své oblíbené záložky.