ext3

Z Wikipedie, otevřené encyklopedie

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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

Funkčnost[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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ů[editovat | editovat zdroj]

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[editovat | editovat zdroj]

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

Velikostní limity[editovat | editovat zdroj]

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 bloku Max. velikost souboru Max. velikost souborového systému
1 kiB 16 GiB 2 TiB
2 kiB 256 GiB 8 TiB
4 kiB 2 TiB 16 TiB
8 kiB 2 TiB 32 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[editovat | editovat zdroj]

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[editovat | editovat zdroj]

  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[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]