EXT4, uno sguardo al futuro
Con la release numero 2.6.28 dello scorso Dicembre sono state introdotte molte novità la più importante è sicuramente in pieno e stabile supporto al file system di nuova generazione ext4.
I vantaggi rispetto al tipo ext3 sono molteplici e vanno dalla scalabilità alla affidabilità, in realtà non si può parlare di vera e propria rivoluzione della tecnologia che vi è alle spalle del progetto visto che esso è il frutto di un’opera di revisione e miglioramento del già potente ext3.
Prima di osservare da vicino le caratteristiche del nuovo ext4 è bene fare un piccolo riassunto storico di quelle che sono state le tappe che ci hanno portato a questa implementazione:
- nell’Aprile 1992 nasce il file system ext ad opera di Remy Card, implementazione del file system virtuale (VFS) e supporto fino ad una dimensione massima di 2 Gb erano le caratteristiche principali.
- nel Gennaio 1993 vede la luce il file system ext2 questa volta Remy Card ha integrato dei miglioramenti attraverso l’implementazione di soluzioni riscontrabili in altri progetti come il FFS; massima estensione di 2TB fino ad un massimo di 32 TB dopo il rilascio del kernel 2.6
- Novembre 2001, ext3 debutta e, anche se presenta prestazioni leggermente inferiori ad altri in alcuni campi di applicazione, introduce notevoli innovazioni come il sistema di journaling che ne migliora l’affidabilità. Il creatore è Stephen Tweedie.
- Dicembre 2008, ext4 entra di diritto come stabile nel kernel Linux dopo essere stato testato per lungo tempo dal gruppo di sviluppo alla guida di Theodore Tso già manutentore di ext3.
Funzionalità EXT4
La prima importante funzionalità che possiamo trovare i ext4 è l’estrema compatibilità con il file system che lo precede.
Il principale obbiettivo di una migrazione ad un nuovo e più performante file system dovrebbe essere quello di poter essere il più indolore e semplice possibile, questa volta sembra che lo scopo sia stato centrato in quanto è possibile montare vecchie partizioni ext3 come fossero ext4 oltre a questo è stata implementata una tecnologia in grado di effettuare una migrazione graduale.
Grazie alla capacità di archiviare i nuovi file che si andranno a scrivere su di una partizione ext3 montata in ext4 come se fossero delle informazioni che vanno ad archiviarsi direttamente su di un file system ext4 nativo si può avere una migrazione tipo on-line.
In questo modo è possibile migrare in modo semplice un ext3 visto che la lenta sostituzione dei file del volume andrà automaticamente a convertire il volume nel nuovo formato.
Questo particolare tipo di migrazione, anche se personalmente non ritenuta una soluzione soddisfacente, sicuramente farà la felicità di molti utenti che non hanno le capacità tecniche o la pazienza di dare atto ad una conversione tradizionale.
Di seguito una tabella di compatibilità del nuovo ext4:

Il secondo miglioramento che è possibile far rientrare nel campo delle nuove funzionalità riguarda il range e la risoluzione del timestamp.
Incredibilmente il timestamp di tutti i file system ext prima dell’avvento della quarta versione era basato sul secondo.
Con l’incremento di prestazione dell’hardware degli ultimi periodi e l’utilizzo del sistema operativo GNU/Linux su particolari settori ad alte prestazioni di calcolo l’unità di misura limite del secondo è diventata rapidamente obsoleta per essere utilizzata come limite di timestamp.
La soluzione è stata l’implementazione del nanosecondo come misura limite estendendo nel contempo di due bit il range del tempo per permettere l’estensione della durata della vita del file system di altri 500 anni.
Scalabilità
Uno dei principali limiti dell’ext3 era reperibile nella sua impossibilità di gestire grandi array di dischi dai volumi enormi.
Con la rivoluzione della rete e la creazione degli ormai famosi e tanto sbandierati servizi web 2.0 la capacità di archiviazione è uno di quei parametri che può fare la fortuna o la disgrazia di un moderno file system.
A tal proposito l’ext4 è in grado dar supporto a file system con una dimensione massima di 1 Exabyte con una dimensione massima dei file fino a 16 TB supponendo blocchi di dati da 4 KB.
Oltre a tutta questa profusione di numeri è stata definitivamente archiviata la limitazione per la profondità dello sotto-cartelle che ora è virtualmente illimitata.
Altra innovazione è rintracciabile nel meccanismo di allocazione, ext4 migliora sensibilmente questo aspetto che era un vero tallone d’Achille per il vecchio ext3.
Il file system di precedente generazione si comportava in modo egregio con i file di piccole dimensioni ma era tremendamente lento per quel che riguarda i file di notevoli dimensioni, in una situazione di contiguità delle informazioni il file system ext4 non fornisce le informazioni per ogni singolo blocco ma piuttosto restituisce la posizione dell’intero elenco di blocchi.
Questo metodo permette di trattare in modo efficiente sia i piccoli file, come nel precedente FS, sia i file di grandi dimensioni visto che le informazioni non riguardano il singolo blocco di dati ma, se consequenziali, il suo insieme.
Prestazioni
Uno dei primi parametri di valutazione per un nuovo FS è la velocità con il quale esso è in grado di lavorare.
Ci sono chiaramente diverse tecnologie che permettono di aumentare le prestazioni di un nuovo progetto ma molto spesso si predilige agire con strumenti conosciuti.
Ext4 ha subito dei notevoli miglioramenti nel comparto di preallocazione dei file ed adotta tecniche tali da migliorare la consequenzialità dei dati che andranno scritti su disco, questo evita, in fase di lettura e di modifica del file, di far rincorrere i settori scritti dalla testina del disco rigido per aumentarne così la velocità di trasferimento vista la ridotta necessita di spostamenti che occorrono per portare al termine le operazioni.
Un secondo metodo che ci permette di ottenere questi effetti è individuabile nella tecnica di ritardo di allocazione del blocco delle informazioni.
Se si ritarda la scrittura dei file fino alla chiamata flush, invece di agire alla chiamata write, si ha come conseguenza un compattamento delle informazioni in settori contigui risparmiando nel contempo cicli di scrittura visto che in questo modo si diminuisce notevolmente la necessità di scrivere i file temporanei, caratterizzati da una vita brevissima, sul disco stesso.
Certamente ci sono anche degli svantaggi visto che utilizzando questa tempistica i file residenti in memoria, e non ancora scritti su disco, risulteranno per sempre persi in caso di interruzione dell’alimentazione.
Affidabilità
Sicuramente un rinnovo del FS non poteva non passare per una migliorata affidabilità dello stesso.
Il sistema di journaling ora è nettamente più evoluto e può operare in differenti modalità:
- Writeback mode: journaled dei soli metadati
- Ordered mode: una modalità nella quale i metadati sono journaled ma anche i dati godono di una forma di protezione
- Journal mode: sia i metadati che i dati sono journaled
chiaramente solo la terza modalità offre piene garanzia ma si rivela anche come il metodo di controllo più lento.
Sul fronte dell’affidabilità gioca un ruolo particolare anche la deframmentazione del disco che nel caso di ext4 è definibile come una frammentazione di tipo on-line.
Molto semplicemente la tecnologia si preoccupa di copiare i file deframmentati e sparsi sul disco in una nuova locazione più grande in grado di accogliere lo stesso completamente senza spezzare i dati in due o più parti.
La stessa tecnologia permette inoltre di accorciare in modo drastico i tempi necessari al controllo del disco tramite fsck visto che i blocchi inutilizzati saranno marcati come tali e quindi completamente ignorati durante il controllo di routine.
Conclusioni
Questo nuovo FS ha tutte le carte in regola per divenire un buon prodotto e, secondo quanto mostrato durante i primi test, sembra essere molto veloce tanto da distaccare in modo netto gli altri concorrenti.
Ciao a tutti.





















Ottimo articolo, scritto bene!
Ottimo articolo,
Complimenti
Grazie mille ragazzi, personalmente adoro scrivere articoli lievemente tecnici ma purtroppo essi richiedono una cosa della quale ho carenza…..il tempo.
ciao, una domanda, io ho convertito il mio filesystem in questo modo (utilizzo Ubuntu 9.04 Alfa 4):
sudo tune2fs -O extents,uninit_bg,dir_index /dev/nome_disposito
sudo fsck -pf /dev/nome_dispositivo
in pratica ho fatto la “migrazione” come dici tu (con la EXT3 montata come una EXT4), o ho una partizione EXT4 effettiva al 100%?
PS. bell’articolo.
@ideelibre
Allora vediamo, il tool tune2fs non è in grado di convertire nessuna partizione ma regola le impostazioni ed i parametri di partizioni di tipo ext2 ed ext3.
Quindi già da ora ti posso dire che non hai effettuato una conversione canonica.
Se vuoi cercare approfondimenti sul comando da te utilizzato ti consiglio questo link: http://linux.die.net/man/8/tune2fs
Ciao
Dimenticavo, se vuoi una buona ed autorevole guida per la migrazione del file system ti consiglio questo link:
http://www.ibm.com/developerworks/linux/library/l-ext4/?ca=dgr-lnxw01LinuxFSext4&S_TACT=105AGX59&S_CMP=GR