ext4

Z Multimediaexpo.cz

ext4 (anglicky: fourth extended filesystem) je v informatice žurnálovací souborový systém vyvinutý pro linuxové jádro, jehož vývoj začal 10. října 2006 jako zpětně kompatibilní nástupce ext3 (přejímá všechny jeho výhody), do jádra byl začleněn nejprve jako vývojový (tzv. ext4dev) a dne 11. prosince 2008 byl v jádře verze 2.6.28 přejmenován na ext4 a tím označen za stabilní a vhodný k běžnému užívání. Ext4 přináší mnoho novinek typických pro moderní souborové systémy, jako je odstranění limitů ext3 (velikost souborového systému, souborů, počtu souborů v adresáři), podporu extentů, prealokaci místa na disku, odloženou alokaci, kontrolní součet žurnálu, online defragmentaci, rychlejší kontrolu, multiblokový alokátor a zvýšenou přesnost uložených časových údajů a také samozřejmě zvýšení výkonu.

Obsah

Historie

Vývoj ext4 započal 10. října 2006, kdy vývojář Andrew Morton oznámil úmysl přidat do ext3 zpětně kompatibilní vylepšení souborového systému ext3, které mělo přidat 64bitové limity velikosti a další vylepšení, jejichž úkolem bylo zlepšit výkonnost souborového systému. Vývojáři linuxového jádra však nesouhlasili s přijetím takových rozšíření do ext3 a navrhli vytvořit nový souborový systém ext4, který vznikne jako fork původního ext3 (tj. zkopírováním zdrojového kódu ext3, jeho přejmenováním na ext4 a následným přidáním požadovaných vylepšení, takže nedojde k ovlivnění původního systému souborů ext3). Tento návrh byl přijat a dne 10. června 2006 vývojář Theodore Ts'o, který byl zodpovědný za ext3, zveřejnil nový plán dalšího vývoje pro ext4. Předběžná vývojová verze byla zahrnuta do linuxového jádra verze 2.6.19 a byla označena jako ext4dev. Dne 11. října 2008 byly zahrnuty do Linuxu verze 2.6.28 změny, které přejmenovaly vývojovou verzi na ext4 a označily ji jako stabilní kód, čímž došlo k uzavření vývojové fáze ext4.[1] Jádro verze 2.6.28, obsahující oficiální podobu ext4, bylo vydáno dne 11. prosince 2008.

Hlavní rysy

Systém ext4 může být použit na svazku o velikosti až 1 EiB (1024 PiB – pebibytů), přibližně 1018 bajtů), podporuje extenty a odstraňuje limit původního systému ext3, jež mohl obsahovat v adresáři maximálně 32 768 podadresářů. S původním ext3 je kompatibilní zpětně i dopředně (pod typem ext4 je možné namountovat ext3, a naopak pod typem ext3 lze připojit ext4 svazek, pokud nepoužívá extenty).

Mezi další vlastnosti patří podpora nanosekundových časových razítek a pre-alokace i zpožděná alokace místa pro soubory. Ovladač ext4 obsahuje (stejně jako předchozí verze souborového systému) nástroje, které omezují fragmentaci již při ukládání dat na disk. Nově však ext4 umožňuje nasazení online defragmentátoru na úrovni souborů nebo celého souborového systému. Díky označování nepoužitých oblastí disku mohou nástroje pro opravu systému (fsck) pracovat rychleji než na ext3.[2]

Porovnání s ext3

ext3 ext4
Max. velikost oddílu 16 TiB 1 EiB
Max. velikost souboru 2 TiB 16 TiB
Max. počet souborů 4 miliardy 4 miliardy (232)
Max. počet podadresářů 32 768 neomezeno

Velikostní limity

Systém souborů ext4 může podporovat svazky až o velikosti 1 EiB a soubory s maximální velikostí 16 TiB.

Extenty

Extenty nahrazují tradiční schéma blokového mapování, které využívají předchozí systémy ext2 a ext3. Extent je rozsah navazujících fyzických bloků (resp. alokačních jednotek), který zlepšuje výkon při práci s velkými soubory a zmenšující fragmentaci. Jeden extent se tak může stát v systému souborů ext4 alokační jednotkou o velikosti až 128 MiB souvislého místa na disku, místo mnoha jednotlivých datových bloků o standardní velikosti 4 KiB.

Zpětná kompatibilita

Systém souborů ext4 je zpětně kompatibilní s ext3, což umožňuje připojit systém souborů ext3 jako ext4 a obráceně do té chvíle, než jsou v ext4 použity extenty.

Dopředná kompatibilita

Systém souborů ext4 je částečně dopředně kompatibilní s ext3, takže oddíl s ext4 může být připojen jako ext3, pokud nejsou v ext4 použity extenty.

Prolomení limitu 32 000 podadresářů

V ext3 je počet podadresářů jednoho adresáře omezen na 32 000. Tento limit byl v ext4 navýšen na 64 000 a pomocí rozšíření dir_nlink může tuto hranici dále prolomit (ačkoliv to zastaví zvyšování počtu odkazů z rodiče). Tato vlastnost je implementována do jádra Linuxu od verze 2.6.23. Podpora vysokého počtu položek v adresáři pomocí stromu Htree je obsažena již v systému souborů ext3, pomocí zapnutí rozšíření dir_index.

Kritika (anglicky)

V určitých situacích má ext4 tendenci ztrácet důležitá data ! Proto je potřeba promyslet míru možného rizika.

Související články

Reference

  1. ext4: Rename ext4dev to ext4 [online]. Linus' kernel tree, [cit. 2008-10-20]. Dostupné online.  
  2. „The new ext4 filesystem: current status and future plans“ (materiály z Ottawa Linux Symposium 2007), podkapitola 4.1 a obrázek 5

Externí odkazy