In questi ultimi mesi si è fatto un gran parlare dei problemi del filesystem ext4. Problemi riscontrati proprio dai primissimi utenti di Ubuntu 9.04 Alpha, e che sono stati ampliamenti discussi nella mailing list della distribuzione. La discussione ha addirittura coinvolto non solo semplici utenti, ma anche i grandi guru di Linux, tra cui lo stesso Linus Torvalds.
Sembra giusto, quindi, all’alba del rilascio di Ubuntu 9.04 capire quali potrebbero essere i principali problemi cui va incontro un utente che decide di utilizzare ext4. Infatti, sebbene il rilascio di ext4 per Ubuntu 9.04 sia stabile c’è da dire che questo filesystem potrebbe richiedere delle accortezze aggiuntive.
Andiamo con ordine, e partiamo dal problema. Diversi utenti che hanno provato ext4 hanno lamentato di tanto in tanto problemi di perdita di dati. Questo si verifica soprattutto nel caso di uno “spegnimento repentino del PC”, quale può essere un riavvio forzato usando il tasto di Reset, oppure un crash improvviso a causa di una caduta dell’alimentazione elettrica.
Leggendo con attenzione quanto riportato in questo articolo si possono comprendere le possibili cause del problema. Ext4, come è ben noto, presenta due importanti migliorie. Primo, EXT4 è in grado di gestire volumi di dimensioni massima di 1 exabyte, con file grandi fino a 16 terabyte. Secondo, ext4 risulta molto più veloce di ext3, e questo grazie ad uso di tecniche quali “delayed allocation” e “delayed writing“. In pratica questo filesystem cerca di gestire il più possibile le operazioni in memoria, ritardando le operazioni di scrittura (sia nella parte journaling che in quella dati) il più possibile.
Nelle situazioni di “spegnimento repentino del PC” accade che parte dei dati presenti in memoria potrebbero non essere stati “riversati” su disco. Questo comporta una corruzione di parte del filesystem con conseguente perdita di dati.
L’articolo appena citato mette però in evidenza che ext4 è un filesystem pensato principalmente per utilizzo in ambito server, ovvero in una condizione di lavoro molto più “affidabile” rispetto a quella di un PC Desktop. La presenza di gruppi UPS mette al sicuro il sistema da problemi di questo tipo, perché l’amministratore può programmare una attività di spegnimento automatico e quindi garantire una corretta “chiusura” del server.
Oltre a questo una seconda motivazione che giustifica il problema sembra risiedere anche nel come le applicazioni vengono “scritte”. Ted Ts’o, uno degli sviluppatori di ext4, ha più volte ribadito che “le applicazioni per PC Desktop non sono pronte per usare ext4″.
Quello che sinceramente risulta difficile capire è che cosa cosa si intende quando si dice “essere pronti per usare ext4″. Le applicazioni utilizzano il filesystem ad un livello di astrazione ben più alto di quello del kernel, e lo fanno seguendo alcune convenzioni, che sono comuni a tutti i filesystem. Come deve essere “scritta” una applicazione che utilizza ext4? In cosa differisce da una applicazione che usa ext33, o anche qualsiasi altro filesystem? Voi lettori avete una risposta a questi quesiti?

Io no ma sono contrariato dal fatto che Fedora metta ext4 di default in fase di installazione.
Se ci sono questi problemi e non sono sempòici bug che verranno corretti NESSUNO dovrebbe usare ext4 su desktop…
Se le app desktop non sono pronte per ext4 che ce lo mettono a fare nella distribuzione?
di rizlox - 23 aprile 2009 - 10:52
come più volte ribadito… non si tratta di bug! come tutti i filesystem ci sono pregi e difetti.. fra i pregi si nota la maggiore velocità e la possibilità di usare file di grosse dimensioni. Questa cosa è molto utile soprattutto per chi fa uso di video che facilmente assumono dimensioni generose!
Penso che Ted si riferisca al fatto che Gnome (e altre applicazioni) scrivono frequentemente file su disco di piccole dimensioni per i motivi più svariati… questo può comportare una maggiore probabilità di perdita dati in caso di failure del sistema (che cmq dovrebbe essere una situazione straordinaria!!).
Ext3 scrive i dati entro 5 secondi dalla richiesta… Ext4 aspetta fino a 30 secondi (o forse più non ricordo bene)… Anche Ext3 può perdere dati in caso di failure: ha semplicemente una “finestra di rischio” minore che però lo penalizza nelle performance.
di druido77 - 23 aprile 2009 - 11:11
Perchè allora non ci mettiamo a produrre automobili che vanno più veloci ma frenano dai 5 ai 30 secondi dopo che hai schiacchiato il pedale??
di emmebì - 23 aprile 2009 - 12:47
non è un errore progettuale… le capacità di scrittura dei dischi fissi sono quelle non è che se le può inventare!! a parità di sottosistema disco l’unico modo per avere prestazioni migliori è usare una “memoria” più veloce… e cioè la RAM!
Poi è l’utente che deve scegliere cosa è meglio per lui… con l’auto puoi correre a 200 all’ora ma non puoi pretendere di fermarti in 20 metri o di fare una curva a 90 gradi… la fisica è fisica!
di druido77 - 23 aprile 2009 - 13:46
I problemi “progettuali” di ext4 sono arcinoti tra gli addetti ai lavori.
Credo che Fedora si sia comunque messa avanti con l’adozione di ext4 come filesystem di default anche perchè nel kernel 2.6.30 verranno integrate soluzioni in grado di risolvere il problema della corruzione dei dati.
di novastorm - 23 aprile 2009 - 14:29
ok ma a logica, una distribuzione desktop che punta all’eccellenza come ubuntu non poteva aspettare il kernel 2.6.30 prima di includere ext4 nelle opzioni di formattazione dell’installer?
Se c’è rischio di corruzione dei dati, e qui si parla di gnome che non parte più o ha vari problemi di funzionamento (i piccoli files scritti frequentemente) è assurdo dare la possibilità all’utente inesperto di utilizzarlo! Sarebbe bastato non renderlo selezionabile dall’installer pur includendolo nel CD… Non capisco e per questo mi fido molto di più di debian.
di rizlox - 23 aprile 2009 - 19:42
io credo che l’adozione di un filesystem piùttosto che un altro sia semplicemente una scelta dettata dall’utenza a cui è destinata la specifica distribuzione.
detto ciò credo che anche il filesystem sia uno degli aspetti che contribuisce alla scelta della distro da adottare per i propri sistemi. ergo, se non ti sta bene la gestione del disco di ext4 puoi tornare a ext3 oppure cambiare distro con una più adatta alle tue mansioni.
ext4 non ha più bug di quanti ne possa avere un filesystem più affermato, ha solo un modo leggermente differente di gestire i file più adatto per alcuni scopi e meno per altri.
io per esempio, seppure non sia ancora considerato maturo per i desktop, non esiterei a utilizzarlo sui notebook avendo a disposizione la batteria che funge da UPS.
di Vincenzo - 23 aprile 2009 - 19:55
scusate ho parlato a sproposito, di default propone ext3 e se non si fa il partizionamento manuale non è possibile selezionare ext4. Temevo anche ubuntu iniziasse con scelte azzardate alla fedora, l’utente inconsapevole è salvo con ext3
di rizlox - 23 aprile 2009 - 22:21
@all: scusatemi, non voglio certo alimentare polemiche contro ext4, però la questione di fondo resta. Quello che non capisco è il perchè uno sviluppatore che scrive un’applicazione deve preoccuparsi del filesystem che verrà usato.
Tipicamente questo è un “atteggiamento” che bisogna seguire se ad esempio scrivi del software per un sistema embedded, dove spesso usi una memoria flash e non un hard disk. In questo caso adatti l’applicazione alla differenza di prestazioni del supporto. Ma in un ambiente Desktop non credo ci si debba porre questi problemi!
Anche perchè, per quel che ne so io, fino ad oggi quando si installa una distribuzione puoi tranquillamente scegliere quale filesystem usare, e le prestazioni e l’affidabilità sono sempre garantiti.
di Gianluca Masone - 24 aprile 2009 - 08:51
Mi vien da pensare che Ext4 possa essere il giusto compagno di un SSD.
di Antonio - 24 aprile 2009 - 11:10
I miei 3 pc che uso tra lavoro e casa, con ext4 stable da circa un mese, non mi hanno ancora dato nessun problema di perdita di dati, pur avendo avuto piu di qualche crash.
Si, mi piace fare esperimenti.
Aggiungo che il tempo di riavvio dei pc dopo i crash con il conseguente check del filesystem è diminuito rispetto a ext3.
di claudio - 24 aprile 2009 - 22:09
io sto testando ora Ext4….finora nessuna perdita….in ogni caso lo uso solo sulla partizione “/” root, mentre la partizione /home sta bene al sicuro con Ext3….mal che vada reistallo tutto il 30 minuti ma i dati sono col c*lo parato!
di bLax - 11 maggio 2009 - 12:14
Io uso ext4 sul laptop da circa un paio di mesi e ancora non posso lamentare che un paio di crash senza nessuna perdita dati, foto e dati importanti salvati su partizione ntfs usata come storage (carico il file su ext4 solo per l elaborazione ).
Di sicuro posso constatare una notevole diminuizione del tempo d avvio per il resto il sistema non si comparta molto differentemente (ho alcune lacune dovute alla macchina che uso e non al file system hp e ubuntu non sembrano essere la scelta migliore ma non posso lamentarmi se non con chi non libera i drivers)
di gabriele - 27 settembre 2009 - 18:53