Ext4
Ext4 sau al patrulea sistem de fișiere extins este un sistem de fișiere cu jurnalizare dezvoltat ca succesor pentru ext3. Ext4 s-a născut ca o serie de extensii pentru ext3, compatibile cu versiunile anterioare, care extinde limitele ext3 64-bit și adaugă și alte îmbunătățiri de performanță. Totuși, unii dezvoltatori ai nucleului Linux s-au opus acceptării extensiilor la ext3 din motive de stabilitate, și au propus separarea codului sursă de ext3, botezarea lui ca ext4, și conducerea dezvoltării acolo, fără a afecta utilizatorii ext3. Această propunere a fost acceptată și, în 28 iunie 2006 Theodore Ts'o, întreținătorul ext3 a anunțat noul plan de dezvoltare pentru ext4. O versiune preliminară a ext4 a fost inclusă în nucleul Linux versiunea 2.6.19. În 11 octombrie 2008, petecele care marchează ext4 ca fiind cod stabil au fost incluse în arhivele cu codul sursă pentru Linux 2.6.28, denotând sfârșitul fazei de dezvoltare și s-a recomandat adoptarea ext4. Nucleul 2.6.28, care conține sistemul de fișiere ext4, a fost lansat în 25 decembrie 2008.
Facilități
modificareLimitări
modificareSistemul de fișiere ext4 poate suporta volume de până la 1 exaoctet și fișiere cu mărimea de până la 16 teraocteți, față de Ext3, care suporta volume de maxim 16 teraocteți și fișiere de până la 2 teraocteți (pentru blocuri de 8 kiloocteți, limitarea putând fi mai mică dacă dimensiunea blocului este mai mică).
Extinderea
modificareSistemele de fișiere extinse au fost introduse pentru a înlocui modelul tradițional bazat pe blocuri utilizat de sistemele de fișiere ext2/3. O extindere este o serie de blocuri fizice contigue care îmbunătățește performațele sistemelor mari de fișiere și reduce fragmentarea. O singură extindere în ext4 poate mapa până la 128 MO de spațiu contiguu cu bloc de 4 KO mărime.
Compatibilitate regresivă
modificareSistemul de fișiere ext4 este compatibil cu ext3, ceea ce face posibilă montarea unui sistem de fișiere ext3 ca ext4.
Compatibilitate progresivă
modificareSistemul de fișiere ext4 este parțial compatibil cu ext3, adică poate fi montat ca partiție ext3 (folosind tipul de sistem de fișiere ext3 atunci când are loc montarea). Totuși, dacă partiția ext4 folosește extinderile sistemului de fișiere (o facilitate majoră nouă în ext4), atunci posibilitatea de a monta un sistem de fișiere ext4 ca și ext3 nu mai există. Extinderile au fost activate ca setare implicită în nucleul 2.6.23. Înainte opțiunea "extinderi" era cerută în mod explicit (ex: mount /dev/sda1 /mnt/point -t ext4dev -o extents
).
Prealocare persistentă
modificareSistemul de fișiere ext4 permite prealocarea spațiului de pe disc corespunzător unui fișier. Metodologia curentă pentru majoritatea sistemelor de fișiere este să umple spațiul cu 0 spațiul necesar fișieruui atunci când fișierul este creat (deși XFS are ioctl pentru a permite și prealocare adevărată). Această metodă nu va mai fi necesară pentru ext4; în schimb funcția de sistem fallocate() a fost adăugată nucleului linux pentru a fi folosită de către sistemele de fișiere care au posibilitatea, inclusiv ext4 și XFS. Spațiul alocat fișierelor va fi garantat și cel mai probabil va fi contiguu. Prealocarea persistentă are aplicații pentru fluxurile media și pentru bazele de date.
Alocare întârziată
modificareExt4 folosește o tehnică de creștere a performanței sistemului de fișiere numită allocate-on-flush, cunoscută de asemenea și ca alocare întârziată. Tehnica consistă din întârzierea alocării blocurilor până când datele sunt pe cale de a fi scrise pe disc, spre deosebire de alte sisteme de fișiere, care alocă blocurile necesare înaintea acestui pas. Această tehnică crește performanța și reduce fragmentarea prin îmbunătățirea deciziilor de alocare a blocurilor datorită bazării pe mărimea reală a fișierului.
Depășirea limitei de 32 000 de subdirectoare
modificareÎn ext3 numărul de subdirectoare pe care un director îl poate conține este limitat la 32 000. Această limită a fost crescută la 64 000 în ext4, și cu facilitatea "dir_nlink" se poate trece mai departe. Pentru a permită performanță continuă în cazul directoarelor mult mai mari, indexul htree (o versiune specializată a B-tree) este activat implicit în ext4. Aceasta facilitate este implementată în nucleul Linux 2.6.23. Htree este de asemenea disponibil în ext3 când facilitatea dir_index este activată.
Jurnal cu sume de verificare
modificareExt4 folosește sumele de verificare în jurnal pentru a îmbunătăți citirea, din moment ce jurnalul este unul dintre cele mai folosite fișiere de pe disc. Această facilitate are un al doilea beneficu: se poate evita așteptarea I/O din timpul procesului de jurnalizare, ceeace îmbunătățește performanța ușor. Tehnica verificării cu sume a jurnalizării a fost inspirată dintr-o cercetare a universității Wisconsin intitulată Sisteme de fișiere IRON (în special secțiunea a șasea, intitulată "sume de verificate a tranzacției").
Defragmentare online
modificareExt4 are un program de defragmentare online Arhivat în , la Wayback Machine.. Chiar și cu diferitele tehnici folosite pentru a evita fragmentarea, un sistem care duce o viață lungă tinde să se fragmenteze. Ext4 va avea o unealtă care va defragmenta fișierele individuale sau sisteme de fișiere întregi.
Verificare mai rapidă a sistemului de fișiere
modificareÎn ext4, grupurile de blocuri nealocate sunt marcate ca nealocate. Aceasta permite ca e2fsck să sară peste ele în timpul unei verificări și să reducă drastic timpul necesar unei verificări a sistemului de fișiere de mărimea celor pe care ext4 le va suporta. Această facilitate a fost implementată în versiunea 2.6.24 a nucleului Linux.
Alocare multibloc
modificareExt4 alocă blocuri multiple pentru un fișier dintr-o singură operație, ceea ce reduce fragmentarea datoriă faptului că încearcă să aleagă blocuri contigue pe disc. Alocatorul multibloc este activ când se folosește O_DIRECT sau când alocarea întârziată este activată. Aceasta permite ca un fișier să aibă mai multe blocuri murdare trimise spre scriere în același timp, spre deosebire de mecanismul existent din nucleu în care fiecare bloc este trimis separat către sistemului de fișiere pentru alocare.
Marcaje de timp îmbunătățite
modificareOdată cu creșterea vitezei calculatoarelor și creșterea utilizării Linuxului pentru aplicații critice, granularilatea marcajelor de timp bazate pe secunde devine insuficientă. Pentru a rezolva această problemă, ext4 va avea marcajele de timp măsurate în nanosecunde. Această facilitate este în prezent implementată în 2.6.23. În plus, doi biți ai marcajului de timp extins sunt adăugați celor mai semnificativi biți ai câmpului secundelor pentru a rezolva problema anului 2038, întârziind-o cu încâ 500 de ani.