ext3

ext3 je žurnálovací systém souborů vytvořený pro operační systém Linux a je přímým a zpětně kompatibilním následníkem souborového systému ext2. Ext3 je výchozím souborovým systémem mnoha populárních linuxových distribucí. První zmínku o práci na rozšíření možností souborového systému ext2 učinil Stephen Tweedie v únoru 1999 v e-mailové konferenci pro jádro Linuxu[1] a jeho změny byly začleněny do oficiálního kódu jádra od verze 2.4.15 v listopadu 2001.[2]

Následníkem ext3 je souborový systém ext4, který je s ext3 zpětně kompatibilní (dopředně kompatibilní je jen částečně kvůli novým strukturám na disku).

Výhody

Ačkoli je výkon (rychlost) v některých specifických operacích nižší, než u konkurentů jako je JFS2, ReiserFS a XFS, má tu významnou výhodu, že umožňuje jednoduchý přechod z původního ext2 na ext3 bez nutnosti kompletní zálohy a obnovy dat. Další výhodou je jeho dlouhá historie a široké nasazení, které zajišťuje dostatek aktivních vývojářů a vysokou úroveň jeho kódu.

Souborový systém ext3 nabízí oproti svému předchůdci ext2:

  • žurnálování (informace o dokončených operacích)
  • indexy souborů v adresáři implementované stromy (do té doby se používal pouze lineární seznam, v ext3 se používá jen na malé adresáře)
  • možnost změnit velikost souborového systému za běhu (od listopadu 2004)

V linuxové implementaci ext3 jsou dostupné tři způsoby žurnálování:

  • žurnál - metadata i obsah souborů se ukládají do žurnálu a teprve poté jsou zapsány na disk. Nejspolehlivější, ale zároveň nejpomalejší metoda, protože jsou data zapisována dvakrát.
  • writeback - metadata se žurnálují, ale obsah souborů ne. Toto je nejrychlejší způsob, ale přináší riziko, že při pádu budou data zapsána tam, kam nemají. Při dalším mountu se tedy může stát, že k souborům, se kterými systém v tu chvíli pracoval, budou na konec zapsány různé nesmysly.
  • ordered - podobné jako writeback, s tím rozdílem, že si vynucuje zapsání souboru, než jej v metadatech označí jako zapsaná. Tento způsob je dobrým kompromisem mezi výkonem a stabilitou, a z toho důvodu je použit jako výchozí.

Bez těchto prvků je ext3 systém zpětně kompatibilní k předešlému ext2 systému. Tento fakt umožňuje úspěšně testovat aplikace pro údržby a opravy ext2 souborových systémů, které lze taktéž použít u novějšího systému ext3 bez větších změn. Ext2 a ext3 systémy sdílejí společnou sadu utilit (e2fsprogs), které zahrnují např. fsck tool.

Nevýhody

Funkčnost

Od doby, kdy ext3 systém směřoval k plné kompatibilitě s ext2, je mnoho diskových struktur podobných strukturám na ext2. Následkem toho, ext3 postrádal řadu rysů, typických pro novější systémy. Příkladem může být dynamická alokace i-node a variabilní velikost bloků. Souborový systém nemůže být kontrolován nástrojem e2fsck, když je namountován pro zápis. Dump souborového systému, který je namountován pro čtení a zápis (rw), může způsobit poškození dat v dumpu. Ext3 nepodporuje extent, vlastnost užitou v systémech JFS2 a ext4.

Defragmentace

Neexistuje žádný nástroj pro defragmentaci, který lze použít za běhu ext3, avšak systém fragmentaci aktivně předchází. Existuje pouze offline defragmentátor pro ext2 (e2defrag), který však vyžaduje nejprve konverzi ext3 zpět na ext2 systém. Pokud je ext3 špatně nastaven, e2defrag může způsobit poškození. Existují defragmentační nástroje jako je Shake a defrag, které kopírují každý soubor a „počítají“ s tím, že nově alokovaný soubor už nebude fragmentovaný (díky předcházení fragmentace). Nicméně tato metoda funguje pouze pokud je souborový systém přiměřeně prázdný. Poloprázdné systémy souborů nejsou však obvykle fragmentovány.

Neobnovitelnost smazaných souborů

Ext3 na rozdíl od ext2 vynulovává ukazatele v i-nodech smazaných souborů. Dělá to kvůli zjednodušení čtení a zápisu na souborový systém během nahrávání žurnálu po nečistém mountu. To ovšem brání tomu, aby šly soubory obnovit. Jediný způsob jak data obnovit se dá použít jen tehdy, když víte, na kterém bloku data začínají a končí. Tím je mazání poněkud bezpečnější než na ext2, což by mohlo být považováno i za výhodu.

Komprese

Podpora pro transparentní kompresi (dostupná jako neoficiální patch pro ext2) není v ext3 dostupná.

Velikostní limity

Ext3 má určenou relativně malou maximální velikost jak pro jednotlivé soubory, tak celý souborový systém. Tyto limity závisejí na velikosti bloku souborového systému viz tabulka (data pocházejí z předešlé verze ext2):

Velikost blokuMax. velikost souboruMax. velikost souborového systému
1 kiB16 GiB2 TiB
2 kiB256 GiB8 TiB
4 kiB2 TiB16 TiB
8 kiB2 TiB32 TiB

Pozn.: 8 kB velikost bloku je dostupná pouze u architektur, které umožňují 8 kB stránky.

Žádné výpočty kontrolních součtů v žurnálu

Ext3 neprovádí kontrolní součet během zápisu v žurnálovacím systému. Pokud barrier=1 není dostupná jako mount option (v /etc/fstab) a pokud hardware provádí zápis do cache mimo pořadí, riskuje se poškození souborového systému. Tato volba standardně není zpřístupněná na nejpopulárnějších distribucích Linuxu.

Reference

  1. Stephen C. Tweedie. Re: fsync on large files [online]. Linux kernel mailing list, 17. února 1999. Dostupné online. 
  2. Rob Radez. 2.4.15-final [online]. Linux kernel mailing list, 23. listopadu 2001. Dostupné online. 

Související články

Externí odkazy