Il vostro sistema GNU/Linux, naturalmente, risiede sul vostro disco rigido all'interno di un filesystem. In questo capitolo discuteremo le diverse caratteristiche di vari filesystem, e i vantaggi che ciascuno di essi offre.
A un certo punto dell'installazione potete scegliere fra diversi filesystem per le vostre partizioni. Questo significa che potete formattare le partizioni in base a diversi algoritmi.
La scelta di uno fra i vari filesystem disponibili non è immediatamente evidente, a meno che voi non siate degli esperti. Pertanto vi proponiamo una rapida presentazione di tre dei filesystem più aggiornati, tutti e tre inclusi in Mandrake Linux.
Il Secondo Filesystem Esteso (in forma abbreviata Ext2FS o, più semplicemente, ext2) è stato il filesystem predefinito di GNU/Linux per molti anni. È stato introdotto in sostituzione del Filesystem Esteso (il che spiega l'uso dell'aggettivo "Secondo"). Il "nuovo" filesystem ha corretto alcuni problemi e superato alcuni limiti della versione precedente.
Ext2FS aderisce agli standard previsti per i filesystem destinati ai sistemi Unix. Sin dalla nascita era stata prevista una sua evoluzione, nonostante offrisse già una grande solidità e buone prestazioni.
Come suggerito dal nome, il Terzo Filesystem Esteso è il successore di Ext2FS. È compatibile con quest'ultimo, ma in più offre una caratteristica di notevole interesse: il journaling.
Uno dei difetti più gravi dei filesystem "tradizionali" come Ext2FS è costituito dalla loro scarsa tolleranza per quanto riguarda improvvisi blocchi del sistema (dovuti a interruzioni di corrente, ad esempio, o all'errato comportamento di qualche programma). Questi fenomeni comportano, in genere, un lungo e meticoloso esame della struttura del filesystem, e tentativi di correggere eventuali errori che, in alcuni casi, possono provocare ulteriori danni. Come conseguenza, si può verificare una perdita parziale o totale dei dati salvati sul disco.
Il journaling risolve questo problema. Diciamo, per semplificare, che il nostro obiettivo è memorizzare le operazioni (come l'archiviazione di un file) prima di effettuarle davvero. Possiamo paragonare questo meccanismo alla registrazione degli eventi giornalieri nel giornale di bordo del capitano di una nave. Il risultato è un filesystem sempre coerente. E, nel caso si verifichi un problema, il controllo è molto rapido e le eventuali riparazioni assai limitate.
Ext3FS, pertanto, offre la tecnologia dei filesystem di tipo journaling, pur mantenendo la struttura generale di Ext2FS: questa caratteristica assicura un'ottima compatibilità.
A differenza di Ext3FS, ReiserFS è stato creato ex novo. È un filesystem di tipo journaling come Ext3FS, ma la sua struttura interna è radicalmente differente. In particolare, fa uso di schemi ad albero binario ispirati dal software usato per gestire i database.
JFS è il filesystem di tipo journaling progettato e usato da IBM. In un primo momento si trattava di software proprietario e chiuso, ma recentemente IBM ha deciso di aprirne l'accesso alla comunità del software libero. La sua struttura interna è vicina a quella di ReiserFS.
Tabella 9-1. Caratteristiche dei filesystem
Ext2FS | Ext3FS | ReiserFS | JFS | |
---|---|---|---|---|
Dimensioni massime del filesystem | 4 Tb ("Tb" sta per terabyte[a]) | 4 Tb | 16 Tb | 32 Pb |
Dimensioni dei blocchi | da 1 Kb a 4 Kb | da 1 Kb a 4 Kb | da 4 Kb (fino a 64 Kb) | 512 Bytes to 4Kb |
Dimensioni massime dei file | 2 Gb | 2 Gb | 4 Gb | 512Tb to 4Pb |
Stabilità | Eccellente | Buona | Buona | Soddisfacente |
Strumenti per recuperare file cancellati | Sì (procedura complessa) | Sì (procedura complessa) | No | No |
Durata del riavvio dopo un blocco del sistema | Lungo, anche molto lungo | Veloce | Molto veloce | Molto veloce |
Recupero dei dati in caso di blocco del sistema | Generalmente buono, ma alto rischio di perdita parziale o totale dei dati | N/A | Molto buono. Una perdita completa dei dati è estremamente rara | Molto buono |
Note: a. Un terabyte = 1.024 gigabyte |
Comparare le prestazioni è sempre una cosa assai delicata. Ogni tipo di test presenta dei limiti, e i risultati vanno interpretati con cautela. Al momento attuale Ext2FS è un filesystem molto maturo, ma il suo sviluppo non prevede grandi balzi in avanti; i filesystem di tipo journaling come Ext3FS e ReiserFS, al contrario, sono in rapida evoluzione. I test compiuti soltanto un paio di mesi o di settimane fa sono già troppo vecchi. Non dimentichiamo, inoltre, che le caratteristiche dell'hardware moderno, in particolare per quanto riguarda la capacità dei dischi rigidi, hanno contribuito grandemente ad appianare le differenze tra di loro. Al momento, tuttavia, JFS è il filesystem che offre le migliori prestazioni.
Ogni sistema comporta vantaggi e svantaggi. Tutto dipende, in effetti, dall'uso che intendete fare del vostro computer. Le esigenze di un semplice computer da ufficio saranno pienamente soddisfatto da Ext2FS, mentre per un server è preferibile usare un filesystem journaling come Ext3FS. ReiserFS, grazie anche alle sue origini, sarà la scelta più adatta per un server di database. JFS, infine, verrà scelto quando la velocità del trasferimento dati costituisce il requisito essenziale.
Per quanto riguarda un uso "normale", i quattro filesystem offrono più o meno gli stessi vantaggi. ReiserFS permette di accedere rapidamente ai file di piccole dimensioni, ma è piuttosto lento nella manipolazione di file piuttosto grandi (molti megabyte). Nella maggior parte dei casi, i vantaggi che caratterizzano ReiserFS rendono i suoi inconvenienti di scarsa importanza.