Ext4, impariamo a conoscerlo!
E’ da poco stata rilasciata la versione 2.6.28 del kernel linux, e, tra le novità più importanti c’è il nuovo filesystem Ext4.
Diamo un’ occhiata alle caratteristiche.
- E’ possibile migrare da Ext3 a Ext4 con una semplice procedura, che consiste nella gestione di un paio di comandi in modalità read-only. Ciò significa che è possibile migliorare il rendimento, l’immagazzinamento e le caratteristiche del vostro attuale filesystem senza riformattare e /o reinstallare il sistema operativo e il software. La procedura è sicura e non mette a rischio i vostri dati. Solo quelli nuovi si avvarranno delle strutture di Ext4, i dati precedenti resteranno intatti e sarà possibile leggere / modificare quando necessario. Ciò significa, ovviamente, che una volta convertito il filesystem in Ext4 non sarà possibile tornare indietro;
- Ext3 supporta una dimensione massima del filesystem di 16 TB , e 2 TB di per i file. Ext41 invece raggiunge 1 EB di massima dimensione del filesystem e 16 TB per i file;
- Ext4 consente un numero illimitato di sottodirectory (Ext3 32.000);
- per tenere traccia dei blocchi di memoria utilizzati usa un sistema moderno, diverso da Ext3, chiamato “Extent“, che è fondamentalmente un insieme di blocchi fisici contigui. Ad esempio, un file di 100 MB può essere assegnato in un’unica entità di tale dimensione, invece di dover creare la mappatura indiretta per 25.600 blocchi (4 KB per blocco). File di dimensioni enormi sono suddivisi in diverse Extents, e questo migliora le prestazioni e contribuisce a ridurre la frammentazione;
- in ragione di quanto detto sopra Ext4 utilizza un “multiblock allocator” (mballoc), che assegna molti blocchi (invece di uno solo) in un unica chiamata, evitando un sacco di sovraccarico con evidente incremento delle performance;
- una caratteristica di pochi moderni filesystem (XFS, ZFS, btrfs o Reiser 4)è il ritardo di allocazione, che consiste nel ritardare il più possibile l’allocazione dei blocchi, contrariamente a quanto fanno i filesystem tradizionali (ad esempio, ext3, reiser3, ecc) che assegnano i blocchi non appena possibile. Questo approccio presenta degli indubbi vantaggi perchè, il mantenenimento del file nella cache, da al blocco allocatore la possibilità di ottimizzare la ripartizione in situazioni in cui il vecchio sistema non poteva.
- Fsck è un’ operazione molto lenta, specialmente il primo passo che verifica tutti gli inode del filesystem. In Ext4, alla fine di ogni gruppo di tabelle sarà memorizzato un elenco di inode non utilizzati (con un checksum, per la sicurezza), così fsck non controllerà più quegli inode. Il risultato è che il tempo totale di fsck migliora da 2 a 20 volte, a seconda del numero di inode utilizzati;
- il journal è la parte più utilizzata del disco e ciò rende i suoi blocchi più soggetti a un guasto hardware. Ext4 attraverso il checksum controlla i dati del journal per sapere se ci sono blocchi danneggiati. Inoltre questo approccio permette di convertire le due fasi del sistema di journaling proprio di Ext3 in una singola fase, accelerando così l’ operatività del filesystem fino al 20% (la caratteristica che migliora le prestazioni, la “asyncrhonous logging”, è disattivata per impostazione predefinita e sarà attivata nelle future versioni);
- la deframmentazione in linea non è disponibile nel kernel 2.6.28, ma lo sarà probabilmente nella prossima versione. Se ritardo di allocazione, extents e allocazione multiblock contribuiscono a ridurre la frammentazione, con l’uso è inevitabile che il filesystem venga comunque a frammentarsi. Per ovviare a questo problema Ext4 supporterà la frammentazione online ed inoltre userà e4defrag, un tool per la deframmentazione di singoli file piuttosto che dell’ intero disco.
Queste le caratteristiche principali, ma come usare Ext4 ?
Intanto premetto che allo stato attuale GRUB non supporta Ext4, o meglio la versione attualmente in uso nelle varie distro manca di questo supporto che invece è presente in GRUB2 nel ramo development (ci sono pacchetti grub2 per Ubuntu e Debian-derived). Esiste inoltre il progetto Google SoC che ha sviluppato questo supporto con le relative patch. Le prossime distro basate su Linux 2.6.28 avranno probabilmente il supporto in un modo o nell’altro; per adesso l’opzione sicura è quella di mantenere la boot directory in una partizione formattata con ext3.
È necessario un update di e2fsprogs, naturalmente è raccomandata l’ultima versione stabile, la 1.41.3 (in tutte le debian-derived, tra cui Ubuntu, occorre inserire l’ opzione “rootfstype=ext4″ (senza le virgolette) nella riga di comando del kernel, altrimenti il sistema tenterà di montare il filesystem come un ext3).
Ci sono tre modi diversi che per il passaggio a Ext4:
Creazione di un nuovo filesystem Ext4 da zero
Il più semplice, consigliato per le nuove installazionii. Basta aggiornare il pacchetto e2fsprogs a Ext4, e creare il filesystem con mkfs.ext4.
Migrare da Ext3 a Ext4
È necessario smontare il filesystem e usare tune2fs e fsck:
tune2fs -O extents,uninit_bg,dir_index /dev/yourfilesystem
Dopo questo comando è necessario eseguire fsck . Se non lo si fa, Ext4 non monterà il filesystem:
fsck -pf /dev/yourfilesystem
Il parametro “-p” indica al sistema di riparare automaticamente eventuali errori.
Montare un filesystem ext3 con Ext4 senza cambiare il formato
È possibile montare un filesystem ext3 con Ext4 ma senza utilizzare le caratteristiche per cambiare il formato del disco. Ciò significa che si potrà montare il filesystem con Ext3 in un secondo momento:
mount -t ext4 /dev/yourpartition /mnt.
A me viene voglia di provarci…
- 48 bit ↩
Post correlati...
Mandriva 2009, un inno alla semplicità d'uso. by Mad on October 17th, 2008
Come promesso nel post ".
Ubuntu facile su windows by Mad on April 10th, 2008
Per la gioia di tutti quelli che "Linux si, ma non abbandono windows" ecco una idea veramente particolare: ".
Sabayon, il genio made in Italy by Mad on October 19th, 2007
Sono particolarmente orgoglioso di recensire questa distro che rappresenta, credo senza tema di smentite, un inno a un tipo di genialità tutta italiana e alla sua capacità di oltrepassare limiti di risorse, di budget, di progetto riuscendo così a competere con i colossi (ubuntu, opensuse, debian, red hat.
OpenGeu 8.04, bellezza, leggerezza e molto altro... by Mad on October 27th, 2008
Ho già parlato di OpenGeu, quando ancora si chiamava Geubuntu, nel post ".
Phoronix test suite 0.7.0 by Mad on May 19th, 2008
In qualche post precedente vi ho già parlato del Phoronix test suite, anche in termini piuttosto lusinghieri, faccio riferimento all'articolo ".
Se questo sito è di tuo gradimento abbonati gratuitamente sottoscrivendo il Feed RSS. Grazie per la visita!














28 dicembre 2008 alle 1:18 pm
Ottima digressione! Penso che migrerò a Ext4 appena ci sarà il supporto per il booting, perché al momento non potrei accedere alla root (dal momento che ho una sola partizione, senza una dedicata al boot da mantenere in Ext3): il mio problema sarà utilizzare un chroot da LiveCD, perché non posso smontare la gerarchia locale mentre è in uso…
31 dicembre 2008 alle 1:10 am
tune2fs-O misura, uninit_bg, dir_index / dev / yourfilesystem…
correggiamo “misura” che non c’entra niente, quindi
tune2fs -O extents,uninit_bg,dir_index /dev/yourfilesystem
questo è il comando corretto…
31 dicembre 2008 alle 8:43 am
Giusto anche questo…
Grazie!
4 gennaio 2009 alle 7:38 pm
[...] gestione con Nautilus, ma nulla di trascendentale: per maggiori informazioni, ho trovato eccellente una digressione sul filesystem — reperita attraverso Linux . // « Un primo sguardo a [...]