ext4

ext4
VyvíjíMingming Cao, Andreas Dilger, Alex Tomas, Dave Kleikamp, Theodore Ts'o, Eric Sandeen, Sam Naghshineh a další
Plný názevFourth extended file system
PředstavenoStabilní: 21. říjen 2008
Nestabilní: 10. říjen 2006 (Linux 2.6.19)
Identifikátor oddílu0x83 (MBR)
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (GPT)
Struktury
Obsah adresářeSpojový seznam, htree
Alokace souborůExtents/Bitmap
Chybné blokyTabulka
Limity
Maximální velikost souboru16 TiB (pro 4KiB bloky)
Maximální počet souborů4 miliardy (určeno při vytvoření systému souborů)
Maximální délka názvu souboru256 bajtů
Maximální velikost svazku1 EiB
Povolené znaky v názvech souborůVšechny znaky mimo NULL ('\0') a '/'
Hlavní rysy
Zaznamenané časyzměna (mtime), změna atributu (ctime), přístup (atime), smazáno (dtime), vytvořeno (crtime)
Rozsah dat14. prosinec 190125. duben 2514
Přesnost datNanosekunda
Podpora více větví souboruNe
Atributyextents, noextents, mballoc, nomballoc, delalloc, nodelalloc, data=journal, data=ordered, data=writeback, commit=nrsec, orlov, oldalloc, user_xattr, nouser_xattr, acl, noacl, bsddf, minixdf, bh, nobh, journal_dev
Oprávnění v systému souborůPOSIX
Transparentní kompreseNe
Transparentní šifrováníAno, od Linux 4.1
Ukládání jediné instanceNe
Podporované operační systémyLinux

ext4 (fourth extended filesystem) je ž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 přináší také zvýšení výkonu.

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

ext3ext4
Max. velikost oddílu16 TiB1 EiB
Max. velikost souboru2 TiB16 TiB
Max. počet souborů4 miliardy4 miliardy (232)
Max. počet podadresářů32 768neomezeno

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.

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.

Reference

  1. ext4: Rename ext4dev to ext4 [online]. Linus' kernel tree [cit. 2008-10-20]. Dostupné v archivu pořízeném dne 2012-05-29. 
  2. „The new ext4 filesystem: current status and future plans“[nedostupný zdroj] (materiály z Ottawa Linux Symposium 2007), podkapitola 4.1 a obrázek 5

Související články

Externí odkazy