Ext3 - žurnálování pro každého

13. 11. 2001
Doba čtení: 4 minuty

Sdílet

Když se před časem nějaký recenzent počítačového periodika rozepisoval o možnostech nasazení Linuxu v oblasti enterprise serverů, bylo jeho dobrým zvykem pokárat systém za absenci žurnálového souborového systému coby garanta spolehlivosti uložení dat známého z komerčních Unixů. Dnes už je naštěstí situace jiná. Máme na výběr ne jeden, ale hned několik alternativních a plně použitelných souborových systémů.

Vedle etablovaného ReiserFS, kterému už nikdo neubere jeho prvenství (první stabilní implementace, zařazení do komerční distribuce, začlenění do stabilní verze jádra) a o kterém si čtenář mohl přečíst například v této sérii článků, jsou zde i další exempláře, které si říkají o pozornost. Je tu XFS, který má za sebou podařenou minulost v operačním systému Irix, stejně jako JFS, jenž si tutéž slávu vydobyl u IBM AIX. A také Ext3, který má ty nejlepší předpoklady stát se nástupcem tradičního souborového systému v Linuxu a na který si v dnešním článku posvítíme.

Nepředpokládám, že by čtenáři ROOTa potřebovali být poučováni o základních vlastnostech žurnálového souborového systému, přesto si dovolím charakterizovat jeho výhody v několika bodech:

  • Souborový systém (ss) představuje formát, kterým jsou na disku uspořádány soubory a adresáře. V Linuxu je možné používat různé souborové systémy, které se liší svými vlastnomi, výkonem či spolehlivostí.
  • Žurnálový souborový systém se od klasického ss liší přítomností speciální datové struktury (žurnálu), kam zapisuje, jaké operace provádí se soubory.
  • Pokud dojde k výpadku napájení, může se stát, že data na disku jsou v nekonzistentním stavu (v okamžiku výpadku byla část dat v paměti) a je nutné je opravit, což u klasického souborového systému může znamenat časově velmi náročnou operaci, neboť je nutné projít celou datovou oblast a zkontrolovat ji programem fsck na případné chyby. I tak je taková oprava někdy sázkou do loterie a může dojít k poškození dat.
  • Žurnálový ss naproti tomu zajištuje, že data jsou na disku uložena v „permanentně konzistentním stavu“, resp. všechny nesrovnalosti je možné rekostruovat během několika vteřin z právě za tímto účelem vedeného žurnálu.

Ext3 je založen na ss Ext2, který je již dlouhou dobu stabilním bodem v Linuxu a se svým předchůdcem je také obousměrně(!) kompatibilní. To je také největší trumf Ext3 oproti jeho konkurentům.

Pokud jste chtěli například nahradit Ext2 za ReiserFS, nezbylo vám, než pracně zazálohovat všechna data, znovu vytvořit ss a obnovit zálohu. V případě Ext3 vám naproti tomu stačí mít příslušnou verzi balíku e2fstools a můžete téměř za běhu vytvářet a rušit žurnál například takto:

tune2fs -j /dev/hda1 - vytvoří žurnál na svazku hda1
tune2fs -O ^has_journal /dev/hda1 - zruší žurnál na svazku hda1

Ext3 dává svým uživatelům možnost vybrat si, zda budou preferovat maximální možnou odolnost proti nekonzistenci dat, nebo zda požadují maximální výkon, avšak vykoupený relativně nižší úrovní bezpečnosti. Vybírat je možné ze třech úrovní, které se specifikují při mountování ss:

  • data=journal – do žurnálu se zapisují jak operace s metadaty (souborové entity), tak i s vlastními daty. Po nekorektním vypnutí je možné souborový systém v plném rozsahu rekonstruovat. Tento režim představuje maximální ochranu před poškozením dat.
  • data=ordered – do žurnálu se sice zapisují pouze transakce s metadaty, ale operace s daty jsou uloženy ještě před zápisem metadat. Díky tomu jsou metadata v každém okamžiku konzistentní. Tato volba je implicitním nastavením, nerozhodete-li se jinak.
  • data=writeback – žurnálují se pouze metadata. Zápisové operace probíhají v optimálním pořadí s ohledem na výkon. Po nekorektním vypnutí bude souborový systém v pořádku, ovšem v datech může dojít k chybám. Tento režim je co do bezpečnosti ekvivalentní systému Ext2 při zachování rychlého průběhu programu fsck.

mount /dev/hda1 /mnt/space -t ext3 -o data=journal

Jak získat Ext3

Nejsnáze tak, že upgradujete na distribuci, ve které již Ext3 najdeme. Například jsou to aktuální verze distribucí RedHat (7.2), Mandrake (8.1), SuSE (7.3), Turbolinux a snad i některé další. Pokud budete chtít o podporu Ext3 rozšířit svou starší distribuci, budete k tomu potřebovat dostatečně novou verzi programů e2fsprogs. V době psaní tohoto článku nebyl Ext3 součástí oficiální verze jádra 2.4, takže budete potřebovat ještě jádro s podporou Ext3. Nejschůdnější cesta dnes vede přes alternativní větev -ac, ve které je Ext3 již zabudován. Jeho začlenění do oficiální větve je možné očekávat ve velmi blízké době. K nalezení jsou i patche pro různé verze jader řady 2.2 i 2.4.

Stabilita

RedHat zvolil Ext3 jako hlavní souborový systém ve své distribuci, a to už něco znamená. Za poslední rok prošel Ext3 obrovský kus cesty, byl testován na mnoha strojích a velmi dobře si poradil i s náročnými stress testy. Má za sebou i dlouhodobé instalace, za něž jmenujme databázi služby rpmfind.net, která údajně již více než dva roky Ext3 spokojeně užívá. Není důvod předpokládat, že by Ext3 nebyl stabilní právě u vás.

Výkon

Ačkoliv žurnálový souborový systém představuje pro počítač vyšší zátěž, autoři Ext3 se chlubí, že je jejich souborový systém dokonce rychlejší než Ext2. Má toho být docíleno tím, že zápisy jsou prováděny inteligentněji se snahou minimalizovat zbytečné přesuny hlavy disku. I když jsem se velmi snažil toto tvrzení ověřit měřením, nepodařilo se mi to, neboť výsledky aplikačních testů jednotlivých souborových systémů si byly velice podobné a odchylky získané opakovaným měřením byly leckdy větší než odchylky mezi sebou navzájem. Proto jsem od publikování výsledků upustil se závěrem, že Ext3 se mi nezdá o nic pomalejší než Ext2 a nebo třeba ReiserFS.

bitcoin_skoleni

Ext3 není ani prvním ani posledním žurnálovým ss, který se v Linuxu objeví, ovšem jeho vlastnosti a především kompatibilita z něj činí ideální volbu pro všechny uživatele, kteří doposud pošilhávali po dovednostech žurnálového ss, ale odrazovaly je složité procedury s převodem dat. Nyní, když jej můžete získat bezbolestně s distribucí, nezbývá, než dát sbohem historii v podobě Ext2 a svěřit svá data dokonalejšímu Ext3.

Zajímavé odkazy

Autor článku