Non è un mio articolo ma era un buon appunto per ricordare i filesystem!
La scelta del file system
Forse i “newbie” non sapranno nemmeno cos’è un file system, eppure saperlo è molto, molto importante. Chi avrà installato WindowsXP, avrà dovuto scegliere tra FAT e NTFS, mentre con linux si pone lo stesso dubbio EXT3 o EXT4?. Un file system è una sorta di “pavimento” del disco (infatti sta sotto ogni file), che determina la velocità, il numero di file, la loro dimensione e tanto altro. In questo articolo conosceremo i vari FS e impareremo a sceglierli per pregi e difetti!
CARATTERISTICHE DI UN FILE SYSTEM
Prima di buttarci nella scelta vera e propria, dobbiamo sapere meglio le caratteristiche di un file system. In genere, le caratteristiche che veramente bisogna sapere sono poche:
- Il Journaling, che crea dei registri per rendere più facili le operazioni di recupero file dopo uno spegnimento brusco o cose simili, è sempre meglio optare per un FS journaled.
- Numero massimo file: determina quanti file potete caricare in un disco, indeterminamente dalla dimensione. Conviene optare per un numero alto in caso di server o altre applicazioni che neessitano di creare tanti file piccoli
- Dimensione massima file: determina qual’è la dimensione massima che può avere un singolo file. Se lavorate con il multimedia, questo valore dovrà essere molto alto
- Dimensione massima disco: determina quanto può essere grande la memoria, anche quì, dipende dal disco che acquistate.
- Allocazione dei file: quì entriamo nel più tecnico, si tratta del tipo di allocazione file, ovvero in quale modo i file vengono ritrovati su disco. Esistono le allocazioni a tabelle, a bitmap, a inodi, a b-tree…
- Permessi file system: i file system più sicuri permettono di impostare i permessi ai file a basso livello.
- Nomi: determina la lunghezza massima del nome dei file
EXT2: Vecchio ma moderno
Nato nel lontano 1993 per sostituire il vetusto ext, è stato il secondo file system di tipo esteso. Anche se ormai è obsoleto (niente journaling, bassa dimensione massima disco…), ha avuto (e continua ad avere) un successo strepitosa grazie alla sua stabilità e sicurezza… peccato che pecchi un pò in velocità. Se volete formattare una piccola memoria, ext2 è ancora la scelta migliore.
EXT3: ext2 con journaling
Da come si intuisce dal titolo, ext3 ha aggiunto il supporto al journaling, ma non solo, infatti ha aumentato la dimensione massima del disco e cambiato il sistema di allocazione al più performante h-tree (mantenendo i Bitmap e il sistema a tabelle). Inoltre ext3 ha una grande retrocompatibilità, tanto che molti strumenti e driver nati per ext2 funzionano benissimo anche su ext3!
EXT4: Il futuro
Da quando, a dicembre del 2008, è nato, è sempre stato considerato da tutti il file system del futuro. E in effetti è così. Dopo la rimozione di tantissimi bug, finalmente ext4 è diventato stabilissimo ed è il predefinito di distribuzioni dal calibro di Ubuntu, Fedora e Sabayon. Il punto di forza di EXT4 è quello di sfruttare pienamente la memoria RAM del sistema, aumentando drasticamente le performance. Se poi a questo aggiungiamo velocità, sicurezza e retrocompatibilità, scopriamo che il futuro si chiama EXT4.
REISERFS: Il meglio per file piccoli
Il punto di forza di questo file system (creato nel 2001, creato da Hans Raiser) è quello di poter gestire ben 232 file per un totale di 16TiB. Purtroppo questo filesystem ha un lento sviluppo e quindi è stato accantonato da Reiser4. Degna di nota la notevole capacità di recuperare file cancellati.
REISER4: Evoluzione di reiserfs
Con la versione 4, Reiser diventa più sicuro (crittografia integrata), più moderno (journaling, 64bit…), ma che mantiene tutti i difetti del suo predecessore: sviluppo lento e scarso supporto. Si tratta, però, del sistema migliore per gestire tanti file piccoli.
FAT: dove c’è disco c’è fat
Rappresenta il monopolista della situazione, grazie alla sua facilità di creare driver che lo ha portato ad essere l’unico filesystem che gira su tutti i sistemi (compresi i vecchi DOS). Per questo è il predefinito di floppy e chiavette. Purtroppo, però, è anche il peggiore: è poco affidabile, lento e soffre della cosidetta frammentazione dei file.
NTFS: Il file system di casa Microsoft
File system sviluppato da Microsoft per tutti i windows NT (nt, 2000, xp, vista, 7…), permette di gestire 4 miliardi di file e si basa su una tabella chiamata MFT. Anche se supporta tutte le nuove caratteristiche, rimane lento e obsoleto, ma cnhge sicuro, stabile e flessibile.
HFS+: Il file system di casa Apple
File System simile ad EXT3, nato per sostituire HFS (paragonabile ad ext2), è purtroppo lento e obsoleto, ma stabile e sicuro
XFS: Il multimediale
Sviluppato da SGI per il sistema IRIX, è un file system molto moderno e performante (journaled, 64bit), che dispone una serie di tool di amministrazione, è ottimo per usi multimediale (grazie alle sue capacità di gestire file e volumi enormi), è efficente, flessibile e velocissimo!
ZFS: Giovane promessa
File system nato da poco e sviluppato da Sun, ha prestazioni eccezionali e, grazie ai suoi 128 bit, riesce a gestire ben 16 exabyte di memoria. Purtroppo ancora non è supportato nativamente da Linux e va montato tramite FUSE.
FUSE. COS’È? Fuse è un programma che permette di montare virtualmente dei filesystem, anche se non supportati dal kernel. Per esempio si possono utilizzare FS particolari per gestire facebook, gmail, youtube, flickr e wikipedia, oppure montare file system di cui i driver sono ancora in sviluppo.
JOURNALED | NUMERO MASSIMO FILE | DIMENSIONE MASSIMA FILE | DIMENSIONE MASSIMA VOLUME | ALLOCAZIONE DEI FILE | PERMESSI | |
EXT2 | NO | 1018 | 2TiB | 16TiB | I-nodes | POSIX |
EXT3 | SI | VARIABILE | 2TiB | 32TiB | Bitmap, Table | UNIX, ACL |
EXT4 | SI | VARIABILE | 16TiB | 1024PiB | Bitmap, Table | POSIX |
REISERFS | SI | 232 | 8TiB | 16TiB | Bitmap | UNIX, ACL |
REISER4 | SI | ILLIMITATO | 8TiB | ILLIMITATO | Bitmap | UNIX, ACL |
FAT | NO | 228 | 4GB | 2TiB | Linked List | – |
NTFS | SI | 232 | 16TiB | 256TiB | Bitmap, Extents | ACL |
HFS+ | SI | ILLIMITATO | 16EiB | 16EiB | B-tree | UNIX, ACL |
XFS | SI | ILLIMITATO | 8 EXABYTE | 16 EXABYTE | B-tree extent | ACL |
ZFS | SI | 248 | 16 EXABYTE | 16 EXABYTE | – | POSIX |