Sistemul de fișiere ext4 - hdd si ssd
VFS - un nivel care rezumate detalii situată mai jos de sistemul de fișiere utilizatorilor un nivel mai ridicat al sistemului de fișiere. Astfel, VFS permite Linux pentru a suporta simultan mai multe sisteme de fișiere pe un singur sistem.
Ext4 împrumută multe idei utile de la un număr de sisteme de fișiere concurente. De exemplu, unitatea de control pe baza extinderile au fost puse în aplicare în JFS. O altă posibilitate nouă Ext4, conectat la o unitate de control - eliberare întârziată, - a fost implementat anterior în XFS și ZFS de la Sun Microsystems.
Noul sistem de fișiere ext4, veți găsi o mare varietate de îmbunătățiri și inovații. Adăugat noi funcționalități, a făcut îmbunătățiri în scalabilitate (ar depăși limitările sistemului ext3), fiabilitatea (în raport cu eșecuri) și, desigur, de performanță.
Ext4 include un număr mare de caracteristici noi, dar cel mai important este de a sprijini compatibilitatea și înainte cu sistem ext3 și îmbunătățiri în ștampila de timp a făcut cu viitorul într-o mai productiv Linux-PC.
Deoarece ext3 - una dintre cele mai populare sisteme de fișiere la data de Linux, trecerea la ext4 ar trebui să fie simplu și fără durere. Pentru acest ext4 a fost proiectat astfel încât să aibă înainte și înapoi (într-o anumită măsură) compatibilitatea cu ext3 (vezi. Figura 1). Compatibilitatea directă înseamnă că puteți monta un sistem de fișiere ext3 ca sistem EX4. Pentru a beneficia de toate avantajele Ext4 în întregime, trebuie să finalizați procesul de migrare pentru a converti sistemul în format ext4. Compatibilitatea în sens invers înseamnă că puteți monta sistemul de fișiere Ext4 ca sistem ext3, dar numai în cazul în care sistemul nu utilizează EXT4 extensii (vom discuta acest lucru în secțiunea de performanță).
În plus față de posibilitățile de compatibilitate pot fi, de asemenea, o tranziție treptată de la ext3 la ext4. Vechile fișiere pot rămâne în format ext3, în timp ce fișiere noi (sau copia fișierele vechi) sunt deja introduse în structura de date a noului sistem ext4. Astfel, puteți trece la sistemul Ext4 în timpul funcționării.
Este surprinzător, dar mai devreme în sistemul de fișiere extins utilizat pentru marcajele temporale exacte de-al doilea. Pentru mai multe scopuri, cum ar precizie a fost suficientă, dar cu creșterea vitezei de procesoare și apariția unor procesoare multi-core, precum și distribuția Linux, în domenii cum ar fi de calcul de înaltă performanță, al doilea marcaj de timp de precizie nu a fost suficient. Cu speranța de viitor a amprentei de timp ext4 de precizie a crescut la un nanosecunde prin adăugarea unui alt (mai tineri), octet semnificativ. De asemenea, doi biți a fost prelungită perioada de timp, care a crescut durata de viață potențială a sistemului de 500 de ani.
Unul dintre cele mai importante aspecte ale sistemelor de fișiere este abilitatea de a le scară în conformitate cu creșterea cerințelor lor. Ext4 realizează acest lucru în mai multe moduri, mergând dincolo de limitele ext3 și punerea în aplicare a noului sistem de fișiere de management de metadate.
Una dintre diferențele cele mai notabile între Ext4 de la ext3 este de a sprijini creșterea de volum dimensiuni, fișiere și subdirectoare. Ext4 sprijină dimensiunea sistemului de fișiere la un exabyte (1000 PB). Deși după standardele de astăzi, acesta este un număr foarte mare, la locul de consum de dispozitive de stocare crește, astfel încât Fără îndoială, Ext4 a fost proiectat cu viitorul in minte. Fișierele din ext4 pot ajunge la 16 TB (pentru 4 blocuri KB), care este de opt ori mai mare decât ext3.
În cele din urmă, adâncimea de subdirectoare în Ext4 a crescut de la 32 KB practic fără sfârșit. Acest lucru poate părea redundant, dar aici este necesar să se ia în considerare dimensiunea posibilă a ierarhiei sistemului de fișiere în exabytes. Acesta a fost de asemenea optimizat indici de directoare, care utilizează în prezent o structură trunchiată cum ar fi un B-arbore. Prin urmare, în ciuda dimensiunii mult mai mare, de căutare în Ext4 este foarte rapid.
Unul dintre principalele dezavantaje ale sistemului EXT3 a fost metoda de alocare a spațiului pe disc. resursele alocate pentru disc fișiere utilizând spațiu - moduri care bitmaps nu produc nici o viteză sau scalabilitate. Formatul utilizat în ext3, este foarte eficient pentru fișiere mici, dar teribil de ineficiente pentru mari. Prin urmare, pentru a îmbunătăți alocarea resurselor și sprijinirea unei structuri mai eficiente de stocare a datelor în Ext4 în loc de bitmap-uri utilizate extensii. Întinderea - este doar o modalitate de a reprezenta o secvență de blocuri de memorie contiguă. Atunci când se utilizează o cantitate redusă de metadate extensii, deoarece în loc de informații cu privire la care fiecare bloc de memorie cuprind extensii informații despre care există o listă mare continuă de blocuri de memorie.
Ext4 pentru reprezentarea eficientă a fișierelor mici în proporții folosit o abordare secvențială și de a reprezenta în mod eficient fișiere mari utilizate copaci extensii. De exemplu, un descriptor de index în ext4 are suficient spațiu pentru a se referi la patru (fiecare dintre extensii care reprezintă o multitudine de blocuri succesive). Pentru mare (inclusiv fragmentat) mâner de fișier poate conține link-uri către alte inodes, din care fiecare poate indica un nod frunză (indicând extensiile). Un astfel de copac Extents adâncime constantă oferă un mecanism puternic pentru reprezentarea fișierelor mari, potențial fragmentate. De asemenea, unitățile au mecanisme de auto-test de protecție a sistemului de fișiere.
Unul dintre cei mai importanți parametri utilizați în evaluarea sistemelor de fișiere noi este performanța lor fundamentală. Aceasta este una dintre zonele cele mai complexe, care este creșterea dimensiunii sistemului de fișiere și cerințe ridicate privind fiabilitatea lor ar putea fi deteriorat grav. Cu toate acestea, ext4, împreună cu scalabilitate și fiabilitate crescută, are o serie de îmbunătățiri legate de productivitate.
Alte tehnici de optimizare în funcție de dimensiunea fișierului este întârziată de alocare. de la performanța recepției de optimizare amână alocarea de bloc de memorie fizică, până când datele trebuie să fie de fapt scrise pe disc. Esența acestei optimizare este că alocarea rafturi de unități de stocare fizice, până la momentul în care acestea sunt de fapt scrise, permite să aloce mai multe blocuri consecutive. Acest lucru este similar cu pre-selecție, cu excepția faptului că acest sistem realizează automat sarcina. Dar dacă dimensiunea fișierului este cunoscut în prealabil, este mai bine să se aplice pre-selecție.
Optimizarea finală este de asemenea asociat cu o serie de blocuri, - un grup de blocuri alocate ext4. In ext3 fiecare bloc este alocat în mod individual. De aceea, uneori, se pare că blocurile selectate nu situate în serie pentru date seriale. În ext4 această problemă este rezolvată prin faptul că grupul de bloc de izolare are loc la un moment dat, cu toate acestea, fragmentarea este puțin probabilă. Aici, la fel ca în tehnica anterioară a datelor legate de optimizare este stocat pe disc împreună, care, la rândul său, le permite să optimizeze citirea.
Un alt aspect al unității de selecție de grup este cantitatea de muncă necesară pentru blocuri separate. Reamintim că, în selectarea ext3 efectuat un bloc la un moment dat. Izolarea de grupuri de blocuri necesită un număr mult mai mic de apeluri care accelerează blocuri de alocare.
Dacă măriți dimensiunea sistemelor de fișiere la niveluri care sunt susținute de ext4, ridică în mod inevitabil problema creșterii fiabilității. Pentru a rezolva problema în ext4, o pluralitate de auto-apărare și a mecanismelor de auto-vindecare.
La fel ca ext3, Ext4 este un sistem de fișiere jurnalizare. Logging - este procesul de înregistrare a modificărilor care au loc în sistemul de fișiere jurnal (o intrare fișier jurnal dedicat, cu un spațiu circular, contiguu de pe disc). Modificările reale dispozitiv fizic făcut dintr-un fișier jurnal. Acest lucru permite schimbări mai fiabil și pentru a asigura integritatea datelor, chiar și în cazul unui accident de sistem sau de pană de curent în timpul funcționării. Acest lucru reduce riscul de deteriorare a sistemului de fișiere.
Dar, chiar și cu utilizarea de jurnalizare deteriorarea sistemului, în cazul în care intrările eronate vor primi revista. Pentru a combate acest lucru în Ext4 puse în aplicare verificarea sumei de control a înregistrărilor jurnal pentru a se asigura că modificările dorite sunt făcute la sistemul de fișiere de bază.
În funcție de nevoile ext4 ale utilizatorului poate funcționa în diferite moduri de exploatare forestieră. De exemplu, suportul ext4 write-back (în jurnalul conține doar metadate), modul de modul de comanda (metadate este conectat, dar numai după înregistrarea datelor în sine), precum și cele mai fiabile - modul de cafea (din jurnal conține atât date și metadate). Rețineți că, deși modul de cafea - acesta este cel mai bun mod de a asigura integritatea sistemului de fișiere în același timp, acesta este cel mai lent modul deoarece trece prin datele revista.
Deși ext4 include posibilitatea reducerii fragmentării în sistemul de fișiere (pentru alocare de blocuri extensiile consecutive), dar cu un sistem de fișiere de viață lungă unele fragmentare este inevitabilă. Prin urmare, pentru a îmbunătăți performanța de instrument existent care defragmentează pe zbor ca sistem de fișiere sau fișiere individuale. Defragmenter - este un instrument simplu care copiază (fragmentate) fișierele din ext4 descriptor nou, indicând extinderile continue.
Un alt rezultat al defragmentarea pe zbor este de a reduce timpul de verificare a sistemului de fișiere. (Fsck). Ext4 marchează grupuri neutilizate de blocuri în tabelul inode, care permite un proces (fsck) sari peste ele complet și accelerează, prin urmare, să verifice procedura. Prin urmare, atunci când sistemul de operare decide să verifice sistemul de fișiere după un defect intern (care va avea loc în mod inevitabil, cu creșterea dimensiunii sistemului de fișiere și distribuția acestuia), datorită arhitecturii de ext4, care ar putea fi realizat rapid și fiabil