Hlavní navigace

ReiserFS a žurnálování na Linuxu: praxe

Miroslav Petříček

Dnešní článek se zabývá praktickými aspekty použití souborového systému ReiserFS a srovnání jeho výkonu s výkonem klasického Ext2.

Instalace

Pokud ReiserFS není součástí vaší distribuce, budete si jej muset sami stáhnout a zkompilovat. Je k tomu zapotřebí mít zdrojové kódy jádra a vlastní ReiserFS patch, který můžete nalézt na http://devlinux­.com/projects/re­iserfs/downlo­ad.html. Aplikace patche se provádí například příkazem:

cat linux-2.4.0-test9-reiserfs-3.6.18-patch | patch -p0

v adresáři /usr/src

Potom při konfiguraci je nutné zatrhnout volbu Filesystems → Reiserfs support a dále již nainstalovat nové jádro běžným způsobem.

Nástroje pro vytváření a kontrolu reiserfs oblastí jsou v podadresáři fs/reiserfs/utils. A jejich instalace lze provést příkazy: make ; make install v tomto adresáři.

Systém se vytváří příkazem mkreiserfs jehož parametrem je disková partition, kterou má program naformátovat. Tato operace způsobí ztrátu všech dat uložených na této oblasti.

ReiserFS bývá ideálním souborovým systémem pro svazky /var a /home; kam se často zapisuje a je zde důležitá vysoká spolehlivost. Pokud používáte zvláštní svazek pro squid-cache, změňte jej taky na ReiserFS – nebudete litovat.

Naopak Ext2 bych určitě ponechal pro /boot i samotný /, zejména pokud nemáte distribuci která ReiserFS podporuje přímo. Zavádění jádra z ReiserFS není právě triviální a usnadníte si tím případný upgrade. Problémy asi nastanou i při nasazení na adresáře, které jsou sdíleny přes NFS. Občas zlobí i qmail – tady je vhodné postupovat podle informací uvedených na http://www.je­di.claranet.fr/qma­il-tuning.html. Z vlastní zkušenosti však mohu konstatovat, že qmail mi na ReiserFS pracuje spolehlivě i s defaultním nastavením.

Nyní se však už budu věnovat srovnání Ext2 a ReiserFS

Mongo

K samotnému ReiserFS je dodáván testovací benchmark Mongo. Tento program je zvláště navržen pro měření výkonu souborového systému. Nachází se v podadresáři fs/reiserfs/u­tils/bench ve stromové struktuře aktuálních zdrojových kódů jádra. Je doplněn poznámkou, že jej sami autoři ReiserFS používají k vyhodnocování výkonu nových verzí. Program pracuje tak, že vytváří specifickou souborovou strukturu s různou průměrnou velikostí souborů (100, 1000 a 100000 B) a měří čas potřebný pro provedení vybraných operací (Create, Copy, Read, Stat a Delete).

Z měření vyplývá, že ReiserFS je efektivnější při práci s malými soubory. Ext2 je zase lepší u souborů středních a výkon se téměř vyrovnává u zde neuvedených výkonů se soubory velkými (>100 kB).

V minulém článku jsem se zmínil o vlastnosti ReiserFS ukládat paty souborů do jednoho bloku, aby se ušetřilo místo na disku. Uvedl jsem, že tato vlastnost má negativní vliv na výkon, neboť soubor pak na disku není uložen souvisle, ale fragmentovaně. Toto chování však lze vypnout, namountováním příslušného svazku s přepínačem notail. Proto jsem všechny následující benchmarky provedl jak s nastaveným, tak i nenastaveným přepínačem.

Další rady pro optimalizaci ReiserFS hledejte na:
http://www.je­di.claranet.fr/re­iserfs-tuning.html

Test operací s reálnými daty

První čas je doba, za kterou byl obsah adresáře obsahujícího reálná data z proxy-cache serveru překopírován do adresáře jiného. Data jsou tvořena větším množstvím podadresářů a souborů s různou velikostí. Dále byla měřena doba, kterou počítač potřeboval k nalezení neexistujícího řetězce v těchto datech pomocí příkazu rgrep. Efektivitu ukládání ukazuje třetí test, který sledoval, kolik místa potřeboval ten který souborový systém k uložení zmíněných dat.

Tabulka č. 84
alokovaná kapacita disku
Ext2 97120 kB
ReiserFS  87332 kB
ReiserFS (notail) 129064 kB

Co se týče rychlosti, tak v tomhle testu jasně zvítězil ReiserFS v režimu notail. Pokud vezmeme v úvahu kapacitu potřebnou k uložení dat, tak musím připomenout, že u 1GB partition, na které byly testy prováděny je nutné staticky vyhradit asi 30MB na uložení žurnálu. Tato hodnota je stanovena fixně při formátování a s rostoucím objemem dat se už dále nezvyšuje. Pro uložení mého vzorku tedy ReiserFS spotřeboval výrazně méně diskového prostoru než Ext2.

Test kompilace kernelu

Jako poslední byl proveden klasický linuxový benchmark – kompilace jádra. Na zvláštním diskovém oddíle naformátovaným nejprve systémem Ext2 a posléze ReiserFS byla měřena doba kompilace jádra verze 2.4.0-test9 se standardním nastavením parametrů. Ta na Ext2 trvala 7min a 9s, zatímco ReiserFS totéž zvládl za 7 min a 2s v režimu notail a 7min a 25s ve standardním režimu. Můžeme tedy říci, že v tomto testu podávají oba systémy vyrovnané výkony.

Další výsledky benchmarkových testů jsou k dispozici na:
http://www.na­mesys.com/who­le.shtml

Závěr

Výsledky potvrzují, že ReiserFS je zpravidla rychlejší souborový systém než Ext2, avšak nedá se to říci absolutně, neboť v některých testech má navrch jeho konkurent. ReiserFS efektivněji ukládá data na disk, na který se potom vejde více dat, zejména jsou-li rozptýlena do spousty menších souborů a adresářů. Navíc je zde něco, co nelze prostým srovnáním rychlostí podchytit – ReiserFS dává díky žurnálování příslib mnohem větší spolehlivosti než Ext2. Právě tato vlastnost a nikoliv jeho výkon, je hlavní důvod proč je podle mne ReiserFS lepší souborový systém.

Našli jste v článku chybu?