close

Ext4

Přejít na navigaci Přejít na hledání

ext4
Vývojář Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, ​​​​Theodore Ts'o, Eric Sandeen, Sam Naghshineh a další
Souborový systém Čtvrtý rozšířený souborový systém
Datum podání Stabilní vydání:
21. října 2008
Testovací vydání:
10. října 2006 ( Linux 2.6.28, 2.6.19)
štítek svazku 0x83 ( MBR )
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ( GPT )
Struktura
Obsah složky Propojený seznam , B-strom [1]
Umístění souboru Bitmapa / Rozsahy
Špatné sektory stůl
Omezení
Maximální velikost souboru 16 tebibajtů (velikost clusteru 4 kibibajty )
Maximální počet souborů 4 miliardy (určeno při vytváření souborového systému )
Maximální délka souboru 255 bajtů
Maximální velikost svazku 1 exbibajt (dříve omezeno na 16 tebibajtů kvůli omezením verze e2fsprogs < 1.43, problém vyřešen ve starších verzích)
Platné znaky v názvech všechny bajty kromě NULL a '/'
Schopnosti
Vlastnosti úprava (mtime), úprava atributu (ctime), přístup (atime), smazání (dtime), vytvoření (crtime)
Časové období 14. prosince 1901 – 25. dubna 2514
Přesnost ukládání data Nano sekunda
Toky metadat Ne
Atributy rozsahy, noextents, mballoc, nomballoc, delalloc, nodelalloc, data=žurnál, data=ordered, data=zpětný zápis, commit=nrsec, orlov , oldalloc, user_xattr, nouser_xattr, acl, noacl, bsddf, minixdf, bh_devbh,
Přístupová práva POSIX
Komprese pozadí Ne
Šifrování na pozadí Ne
OS podporován Linux , Windows ( IFS )

ext4 ( anglicky  čtvrtý rozšířený souborový systém, ext4fs ) je žurnálovací souborový systém používaný především v operačních systémech s linuxovým jádrem , vytvořený na bázi ext3 v roce 2006.

Hlavní změny v ext4 ve srovnání s ext3:

  • maximální objem jednoho diskového oddílu byl zvýšen na 1 exbibajt ( 260 bajtů ) při velikosti bloku 4 kibibajty ;
  • zvětšila velikost jednoho souboru na 16 tebibajtů ( 244 bajtů );
  • byl zaveden mechanismus pro rozšířený zápis souborů, který snižuje fragmentaci a zlepšuje výkon (nové informace jsou přidány na konec předem přidělené oblasti disku vedle oblasti obsazené souborem);
  • limit počtu vnořených adresářů byl zvýšen z 32 000 podadresářů na 65 535 (v tomto případě je v některých případech nutné změnit konstanty jádra).

Historie

První experimentální implementaci vydal Andrew Morton 10. října 2006 jako záplatu pro linuxová jádra verze 2.6.19 [2] .

Funkce

Ve srovnání s ext3 má ext4 větší adresní prostor a rychlejší zpracování dat.

Adresovací systém

Adresovací systém je založen na rozsahech .  V ext3 byla data řešena tradičním způsobem - blok po bloku, a proto systém čelil značným omezením, protože velikost souborů rostla. Rozsahy umožňují adresovat velký počet ( až 128 MB ) souvislých bloků jediným deskriptorem; přímo do inodu lze umístit až čtyři ukazatele rozsahu , což je dostačující pro malé až středně velké soubory.

Používají se 48bitová čísla bloků; při velikosti bloku 4 KB to umožňuje adresovat až jeden exbibajt (2 48 ( 4 KB ) = 2 48 (2 2 ) (2 10 ) B = 2 60 B = 1 EB ) .

Bloky a fragmentace

Přidělování bloků ve skupinách ( alokace více bloků ) umožňuje snížit úroveň fragmentace souborového systému: systém ukládá informace nejen o umístění volných bloků, ale také o počtu volných bloků umístěných jeden po druhém, takže když při alokaci místa systém najde fragment, do kterého lze data zapsat bez fragmentace.

Defragmentaci bez odpojení ( online defragmentaci ) podporuje utilita e4defrag , dodávaná jako součást balíčku e2fsprogs od roku 2011 [3] .

Skupinový záznam bloků

Zpožděná alokace bloků ( zpožděná alokace ) poskytuje přímý zápis do blokového zařízení pouze v případě potřeby (například během volání synchronizace (), ale ne s každým voláním pro zápis (), což vám umožňuje zapisovat bloky nikoli po jednom. čas, ale ve skupinách, což zase minimalizuje fragmentaci a urychluje proces alokace bloků. Na druhou stranu je zde zvýšené riziko ztráty dat v případě náhlého výpadku napájení.

Změny inodu

Rezervace několika inodů při vytváření adresáře ( angl.  directory inodes reservation ) umožňuje nejprve použít rezervované inody, a teprve pokud žádné nezbyly, provede se obvyklý postup pro alokaci inodů. Výchozí velikost inodu byla zvýšena ze 128 (ext3) na 256 bajtů, což umožnilo implementovat časová razítka s přesností na nanosekundy ( nanosekundová  časová razítka ) a rozšířit jejich rozsah (v ext3 je limit data 18. ledna 2038 a v ext4 - 25. dubna 2514 roku), přidejte pole verze inodu a podporujte rozšířené atributy inodu. Číslo verze inodu se může zvýšit při každé změně, zejména pokud je souborový systém připojen pomocí iversion[K. 1] : Toto používají démoni NFS verze 4 Network File System (NFSv4) ke sledování změn souborů.

Ukládání rozšířených atributů (EA) v inode , jako jsou seznamy řízení přístupu ( ACL ), atributy SELinux a další, ve struktuře inodů zlepšuje výkon tím, že eliminuje hledání atributů jinde .  Atributy, pro které není ve struktuře inodů dostatek místa, jsou uloženy v samostatném 4 KB bloku .

Žurnálování a další funkce

Pro zápisy do deníku je implementován výpočet kontrolních součtů ( anglicky  journal checksumming ), který umožňuje rychle najít a v některých případech opravit systémové chyby po selhání.

Trvalé předběžné přidělení , na rozdíl od ext2 a ext3 (kde programy musely do souboru zapisovat nula bajtů), je implementováno jako samostatné systémové volání fallocate() , které přiděluje bloky pro soubor a nastavuje pro ně příznak „vyplněno nulovými bajty“. Při čtení ze souboru program obdrží nula bajtů (stejně jako při čtení řídkého souboru ). Při zápisu do souboru bude příznak "vyplněno nulovými bajty" vymazán. Na rozdíl od řídkých souborů zápis do řídkého souboru nikdy nezklame kvůli nedostatku volného místa.

Podpora v operačních systémech

Ext4 je podporován v jádře Linuxu od verze 2.6.20. Pro práci s ext4 na Windows existují programy a ovladače : Ext2read (v režimu pouze pro čtení), Ext2Fsd, Paragon ExtFS pro Windows.

Mnoho distribucí Linuxu používá ext4 jako výchozí souborový systém:

  • Ubuntu : od 9.04 k dispozici pro výběr na žádost uživatele, od 9.10 - ve výchozím nastavení;
  • Debian : od 6.0: k dispozici pro výběr, od 7.0 - používá se ve výchozím nastavení;
  • Fedora  : pro výběr je k dispozici od 9, od 11 do 32 je výchozí.
  • OpenSUSE : výchozí od 11.2;
  • Mandriva Linux : od verze 2010 je standardně používán;
  • Red Hat Enterprise Linux : od verze 6 - standardně [4] ;
  • PCLinuxOS : výchozí od roku 2010.

Souborový systém ext4 je pro Android dostupný od verze 2.3 [5] [6] .

Komentáře

  1. mount -t ext4 /dev/sda2 /mnt/ -o rw,iversion

Poznámky

  1. Hašovaný B-strom . Získáno 20. března 2010. Archivováno z originálu 18. července 2019.
  2. Oficiální oznámení Andrew Mortona o zahrnutí podpory ext4  (anglicky) ( txt(mrtvý odkaz) . Archivováno z originálu 7. srpna 2008.
  3. Zahrnout nástroj pro defragmentaci ext4 . Získáno 26. srpna 2014. Archivováno z originálu dne 27. srpna 2014.
  4. 3.1. Podpora čtvrtého rozšířeného souborového systému (ext4)  // Poznámky k vydání 6.0 : Poznámky k vydání pro Red Hat Enterprise Linux 6 : [ eng. ]  : [ arch. 3. června 2012 ]. — Red Hat, 2010.
  5. Ts'o, Theodore . Android bude používat ext4 počínaje Gingerbread , Thoughts by Ted  (12. prosince 2010). Archivováno z originálu 15. prosince 2010. Staženo 20. prosince 2010.
  6. Android 2.3 Platform Highlights  (anglicky)  (odkaz není dostupný) . Android Developers (6. prosince 2010). Datum přístupu: 7. prosince 2010. Archivováno z originálu 21. ledna 2012.

Odkazy

  • Ext4 (a Ext2/Ext3) Wiki  (anglicky) ( wiki (nedostupný odkaz) . kernel.org . Získáno 29. května 2010. Archivováno z originálu 19. května 2012.
  • Ext4 Development project  (anglicky)  (nedostupný odkaz) . bullopensource.org . - Stránka projektu pro vývoj souborového systému ext4 (od roku 2009 tato stránka již není udržována) . Datum přístupu: 29. května 2010. Archivováno z originálu 21. ledna 2012.