Ext4

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 8 mai 2022; verificările necesită 2 modificări .

ext4
Dezvoltator Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, ​​​​Theodore Ts'o, Eric Sandeen, Sam Naghshineh și alții
Sistemul de fișiere Al patrulea sistem de fișiere extins
Data depunerii Lansare stabilă:
21 octombrie 2008
Lansare de test:
10 octombrie 2006 ( Linux 2.6.28, 2.6.19)
etichetă de volum 0x83 ( MBR )
EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ( GPT )
Structura
Conținutul folderului Lista legată , arbore B [1]
Plasarea fișierului Bitmap / Extensii
Sectoare rele masa
Restricții
Dimensiunea maximă a fișierului 16 tebibytes (dimensiunea clusterului 4 kibibytes )
Numărul maxim de fișiere 4 miliarde (specificat în timpul creării sistemului de fișiere )
Lungimea maximă a numelui fișierului 255 de octeți
Dimensiunea maximă a volumului 1 exbibyte (limitat anterior la 16 tebibytes din cauza limitărilor versiunii e2fsprogs < 1.43, problemă rezolvată în versiunile mai vechi)
Caractere valide în titluri toți octeții cu excepția NULL și „/”
Capabilități
Proprietăți modificare (mtime), modificare atribut (ctime), acces (atime), ștergere (dtime), creare (crtime)
Interval de date 14 decembrie 1901 - 25 aprilie 2514
Precizia stocării datei Nano secundă
Fluxuri de metadate Nu
Atribute extents, 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
Drepturi de acces POSIX
Comprimarea fundalului Nu
Criptare în fundal Nu
Sistem de operare acceptat Linux , Windows ( IFS )

ext4 ( al patrulea sistem de fișiere extins în engleză  , ext4fs ) este un sistem de fișiere de jurnal utilizat în principal în sistemele de operare cu un nucleu Linux , creat pe baza ext3 în 2006.

Modificări majore în ext4 comparativ cu ext3:

Istorie

Prima implementare experimentală a fost lansată de Andrew Morton pe 10 octombrie 2006 ca un patch pentru nucleele Linux versiunea 2.6.19 [2] .

Caracteristici

În comparație cu ext3, ext4 are mai mult spațiu de adrese și o gestionare mai rapidă a datelor.

Sistem de adresare

Sistemul de adresare se bazează pe extinde .  În ext3, datele au fost abordate în mod tradițional - bloc cu bloc și, prin urmare, sistemul s-a confruntat cu restricții semnificative pe măsură ce dimensiunea fișierelor creștea. Extensiunile permit adresarea unui număr mare ( până la 128 MB ) de blocuri învecinate cu un singur descriptor; până la patru indicatori pot fi plasați direct într-un inod , suficient pentru fișiere de dimensiuni mici și medii.

Sunt utilizate numere de bloc de 48 de biți; cu o dimensiune a blocului de 4 KB , aceasta permite adresarea până la un exbibyte (2 48 ( 4 KB ) = 2 48 (2 2 ) (2 10 ) B = 2 60 B = 1 EB ) .

Blocuri și fragmentare

Alocarea blocurilor în grupuri ( alocare multibloc ) vă permite să reduceți nivelul de fragmentare a sistemului de fișiere: sistemul stochează informații nu numai despre locația blocurilor libere, ci și despre numărul de blocuri libere situate unul după altul, deci atunci când alocând spațiu, sistemul găsește un fragment în care datele pot fi scrise fără fragmentare.

Defragmentarea fără demontare ( defragmentare online ) este suportată de utilitarul e4defrag , furnizat ca parte a pachetului e2fsprogs din 2011 [3] .

Înregistrarea de grup a blocurilor

Alocarea întârziată a blocurilor ( alocarea întârziată ) oferă o scriere directă pe dispozitivul de blocare numai atunci când este necesar (de exemplu, în timpul apelurilor pentru sincronizare (), dar nu cu fiecare apel pentru a scrie (), ceea ce vă permite să scrieți blocuri nu unul la un loc. timp, dar în grupuri, ceea ce la rândul său minimizează fragmentarea și accelerează procesul de alocare a blocurilor. Pe de altă parte, există un risc crescut de pierdere a datelor în cazul unei căderi bruște de curent.

Modificări inode

Rezervarea mai multor inoduri la crearea unui director ( de exemplu  directory inodes reservation ) vă permite să utilizați mai întâi inodele rezervate și numai dacă nu mai există niciunul, se efectuează procedura obișnuită de alocare a inodelor. Dimensiunea implicită a inodului a fost mărită de la 128 (ext3) la 256 de octeți, ceea ce a făcut posibilă implementarea marcajelor de timp cu precizie de nanosecundă ( marcate de timp nanosecunde  ) și extinderea intervalului lor (în ext3, limita de dată este 18 ianuarie 2038 și în ext4). - 25 aprilie 2514, adaugă un câmp pentru versiunea inodului și acceptă atributele inode extinse. Numărul de versiune al unui inod poate crește de fiecare dată când este schimbat, în special dacă sistemul de fișiere este montat cu [K. 1] : Acesta este utilizat de demonii NFS Version 4 Network File System (NFSv4) pentru a urmări modificările fișierelor.iversion

Stocarea atributelor extinse (EA) în inode , cum ar fi listele de control al accesului ( ACL -uri), atributele SELinux și altele, într-o structură de inod, îmbunătățește performanța prin eliminarea căutărilor de atribute în altă parte .  Atributele pentru care nu există suficient spațiu în structura inodului sunt stocate într-un bloc separat de 4 KB .

Jurnal și alte caracteristici

Pentru intrările de jurnal, este implementat calculul sumelor de control ( suma de verificare a jurnalului englez  ), ceea ce vă permite să găsiți rapid și, în unele cazuri, să corectați erorile de sistem după o defecțiune.

Prealocarea persistentă , spre deosebire de ext2 și ext3 (unde programele trebuiau să scrie zero octeți în fișier), este implementată ca un apel de sistem fallocate() separat care alocă blocuri pentru fișier și setează indicatorul „umplut cu zero octeți” pentru ele. Când citiți dintr-un fișier, programul va primi zero octeți (la fel ca atunci când citiți un fișier rar ). Când scrieți într-un fișier, indicatorul „umplut cu zero octeți” va fi șters. Spre deosebire de fișierele rare, scrierea într-un fișier rar nu va eșua niciodată din cauza lipsei de spațiu liber.

Suport în sisteme de operare

Ext4 a fost acceptat în nucleul Linux începând cu versiunea 2.6.20. Există programe și drivere pentru lucrul cu ext4 pe Windows : Ext2read (în modul numai citire), Ext2Fsd, Paragon ExtFS pentru Windows.

Multe distribuții Linux folosesc ext4 ca sistem de fișiere implicit:

  • Ubuntu : din 9.04 disponibil pentru selectie la cererea utilizatorului, din 9.10 - implicit;
  • Debian : începând cu 6.0: disponibil pentru selecție, începând cu 7.0 - folosit implicit;
  • Fedora  : începând de la 9 este disponibil pentru selecție, de la 11 la 32 este implicit.
  • OpenSUSE : implicit din 11.2;
  • Mandriva Linux : din versiunea 2010 este folosit implicit;
  • Red Hat Enterprise Linux : din versiunea 6 - implicit [4] ;
  • PCLinuxOS : implicit din 2010.

Sistemul de fișiere ext4 este disponibil pentru Android începând cu versiunea 2.3 [5] [6] .

Comentarii

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

Note

  1. Arborele B cu hașuri . Preluat la 20 martie 2010. Arhivat din original la 18 iulie 2019.
  2. Anunțul oficial al lui Andrew Morton privind includerea suportului ext4  (ing.) ( txt )  (link mort) . Arhivat din original pe 7 august 2008.
  3. Includeți instrumentul de defragmentare ext4 . Preluat la 26 august 2014. Arhivat din original la 27 august 2014.
  4. 3.1. Suport al patrulea sistem de fișiere extins (ext4)  // Note de lansare 6.0 : Note de lansare pentru Red Hat Enterprise Linux 6 : [ eng. ]  : [ arh. 3 iunie 2012 ]. — Red Hat, 2010.
  5. Ts'o, Theodore . Android va folosi ext4 începând cu Gingerbread , Thoughts de Ted  (12 decembrie 2010). Arhivat din original pe 15 decembrie 2010. Preluat la 20 decembrie 2010.
  6. Repere platforme Android 2.3  (engleză)  (link nu este disponibil) . Dezvoltatori Android (6 decembrie 2010). Data accesului: 7 decembrie 2010. Arhivat din original la 21 ianuarie 2012.

Link -uri

  • Ext4 (și Ext2/Ext3) Wiki  (engleză) ( wiki )  (link indisponibil) . kernel.org . Consultat la 29 mai 2010. Arhivat din original pe 19 mai 2012.
  • Proiect de dezvoltare Ext4  (engleză)  (link indisponibil) . bullopensource.org . - Pagina de proiect pentru dezvoltarea sistemului de fișiere ext4 (din 2009 această pagină nu mai este întreținută) . Data accesului: 29 mai 2010. Arhivat din original la 21 ianuarie 2012.