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...
Quale distro per il mio laptop? by Mad on April 29th, 2008
Come tutti sanno, pochi giorni fa l'airone ha spiccato il suo volo e devo dire con buoni risultati in termini di miglioramento delle prestazioni complessive e una buona stabilità del sistema.
Nexenta core platform 1.0 by Mad on February 11th, 2008
Oggi è stata annunciata Nexenta core platform 1.
Ubuntu 8.04.1 LTS by Mad on July 5th, 2008
A circa tre mesi dal rilascio di Hardy Heron siamo già arrivati al primo update siglato 8.
Provata OpenSolaris ! by Mad on November 3rd, 2007
Ho appena finito di provare il Live cd di OpenSolaris "Indiana"
in versione preview con Gnome 2.
Finalmente wicd 1.5.1 by Mad on August 30th, 2008
Pochi giorni fa è stato rilasciato wicd 1.
Bentornato!












28 dicembre 2008 alle 1:18 pm Opera 10.00 Linux
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 Mozilla Firefox 3.0 Linux
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 Mozilla Firefox 3.0.5 SuSE Linux
Giusto anche questo…
Grazie!
4 gennaio 2009 alle 7:38 pm WordPress 2.7
[...] gestione con Nautilus, ma nulla di trascendentale: per maggiori informazioni, ho trovato eccellente una digressione sul filesystem — reperita attraverso Linux . // « Un primo sguardo a [...]