Nel corso del tempo le necessità per i file system sono aumentate e le domande per grosse strutture, grossi file, nomi lunghi e altro ancora ha generato la richiesta di file system, il sistema che accede e organizza i dati sulle unità di memorizzazione, ancora più avanzati. Oggi c'è un gran numero di file system tra cui scegliere e questa sezione li descriverà in dettaglio.
L'enfasi è su Linux ma con più richieste sarò felice di aggiungere informazioni per un'audience più ampia.
La maggior parte dei sistemi operativi ha generalmente un file system per scopi generali per utilizzo di ogni giorno per la maggior parte dei tipi di file, mostrando caratteristiche nel SO come permessi, protezioni e recupero.
minix
Questo fu il fs originale per Linux, agli albori Linux era ospitato su macchine minix. È semplice ma limitato nelle caratteristiche e difficilmente viene utilizzato in questi giorni se non per qualche disco di recupero visto che è sufficientemente compatto.
xiafs
e extfs
Questi sono ugualmente vecchi e sono caduti in disuso e non sono più consigliati.
ext2fs
Questo è lo standard stabilito per scopi generali nel mondo Linux. È veloce, efficiente e maturo ed è in continua evoluzione e caratteristiche quali ACL e la compressione trasparente sono prossime.
Per maggiori informazioni controllate l'home page di ext2fs
ufs
Questo è il filesystem utilizzatto da BSD e sue varianti. È maturo ma è stato anche sviluppato per tipi di dischi più vecchi dove le geometrie si conoscevano. Il fs utilizza un bel numero di trucchetti per ottimizzare le prestazioni ma dal momento che le geometrie del disco sono tradotte in un bel numero di modi, l'effetto rete non è più così ottimale.
efs
L'Extent File System (efs) è il giovane file system di Silicon Graphics ampiamente utilizzato su IRIX prima della versione 6.0 dopo la quale è subentrato l'xfs. Mentre viene incoraggiata la migrazione ad xfs, efs è ancora supportata e molto usata sui CD.
C'è un driver Linux in versione beta giovane, ottenibile presso l'home page Linux extent file system
reiserfs
Dal 23 Luglio 1997,
Hans Reiser reiser (at) RICOCHET.NET
ha messo su web il sorgente del suo
reiserfs
basato su una struttura ad albero.
Sebbene il suo file system abbia delle caratteristiche veramente
interessanti e sia molto più veloce dell'ext2fs
, è ancora
troppo sperimentale e difficile da integrare con il kernel standard.
Ci si aspetta qualche sviluppo interessante nel futuro - questo è
ben differente dal vostro progetto "file system medio basato su log
per Linux", perché Hans ha già un codice che funziona.
enh-fs
Attualmente in stadio alfa, il progetto Enhanced File System punta a combinare su un unico livello il file system e la gestione del disco.
Questa compagnia è responsabile di molte cose, tra cui alcuni file system, tanto che alla fine ha causato confusioni.
fat
Attualmente ci sono 2 fat
, fat12
e fat16
dipendentemente dalla dimensione della partizione utilizzata ma
fortunatamente la differenza è così piccola che l'intera questione
è chiara.
Tra i fattori a favore, sono veloci e semplici e molti SO le gestiscono e possono sia leggere che scrivere su questo filesystem. E questo è quanto.
Il fattore a sfavore è la limitata sicurezza, i flag dei permessi
severamente limitati e scalabilità atroce. Ad esempio con fat
non potete avere partizioni più grandi di 2 GB.
fat32
Dopo circa 10 anni la Microsoft realizzò cosa fosse la fat
.
Bene, 10 anni in ritardo e creò così questo file system che scala
ragionevolmente bene.
I flag dei permessi sono ancora limitati. NT 4.0 non può leggere questo file system ma Linux può.
vfat
Nello stesso periodo in cui Microsoft lanciò la fat32
, aggiunsero
anche il supporto per i nomi lunghi dei file, conosciuto come vfat
.
Linux legge partizioni vfat
e fat32
mediante mount con il tipo
vfat
.
ntfs
Questo è il file system nativo di Win-NT ma dal momento che non sono disponibili informazioni complete c'è un supporto limitato per altri sistemi operativi.
Apportano un approccio radicalmente differente agli aggiornamenti dei file registrando le modifiche di un file in un log e successivamente controllando saltuariamente i log.
La lettura in pratica è veloce come un file system tradizionale che aggiorna sempre i file direttamente. La scrittura è invece molto più veloce, dal momento che gli aggiornamenti sono aggiunti ad un log. Tutto ciò è trasparente all'utente. È nell'affidabilità e particolarmente nel controllo dell'integrità del file system che questi file system brillano. Dal momento che dall'ultimo controllo si sa che i dati stanno bene, dovranno essere controllati solo i log e questa cosa è molto più veloce rispetto ai sistemi tradizionali.
Notate che mentre i file system di logging tengono traccia dei cambiamenti fatti sia ai dati chee agli inode, mentre i file system che effettuano journaling tengono traccia solamente del cambiamento degli inode.
Linux ha abbastanza scelta tra questi file system ma nessuno è ancora in qualità tale da essere prodotto. Alcuni sono anche sospesi.
I supporti di sola lettura non sono sfuggiti alle sempre più crescenti complessità viste nei file system più generali, quindi c'è ancora una vasta scelta con corrispondenti opportunità per errori eccitanti.
Molti di questi sono usati nei CD-ROM ma anche il nuovo DVD può utilizzarli ed è pure possibile utilizzarli attraverso il dispositivo di loopback su un file di un hard disk per verificare un'immagine prima di masterizzare una ROM.
C'è un romfs
per Linux ma visto che non è relativo
al disco, più nulla potrà essere detto relativamente a questo
in questa sede.
High Sierra
Questo fu uno dei più giovani standard per i formati CD-ROM, chiamato così forse dall'albergo in cui l'ultimo accordo è stato preso.
High Sierra
era così limitato nelle caratteristiche che le nuove
estensioni dovevano semplicemente apparire e dal momento che non c'è
stata conclusione di nuovi formati, l'originale High Sierra
rimane il comune precursore ed è quindi ancora ampiamente supportato.
iso9660
L'International Standards Organisation fece le proprie estensioni e
formalizzò lo standard nel quale noi riconosciamo lo standard
iso9660
.
Il file system Linux iso9660 gestisce sia le estensioni High Sierra
che quelle Rock Ridge
.
Rock Ridge
Non tutti accettano limiti come i nomi corti e assenza di permessi
così molto presto sopraggiunsero le estensioni Rock Ridge
per rettificare queste mancanze.
Joliet
La Microsoft, per non essere superata nel gioco delle estensioni
standard, decise che avrebbe dovuto estendere i formati CD-ROM con
qualche caratteristica di internazionalizzazione e l'ha chiamata
Joliet
.
Linux gestisce questi standard nei kernel 2.0.34 o superiori. Dovete abilitare l'NLS per usarlo.
Joliet è una città fuori Chicago; più conosciuta per essere stata il posto della prigione dove Jake fu ingabbiato nel film "Blues Brothers". Il Rock Ridge (le estensioni UNIX all'ISO 9660) è chiamato così dalla città (fittizia) nel film "Blazing Saddles".
UDF
Con l'arrivo del DVD con fino a 17 GB di capacità di immagazzinamento,
il mondo sembrò apparentemente volere un altro formato, questa volta
fu chiamato ambiziosamente Universal Disk Format (UDF).
Fu inteso come il rimpiazzo per l'iso9660
e sarà richiesto per il DVD.
Attualmente non è nel kernel standard di Linux ma un progetto è in corso per fare un driver UDF per Linux. Patch e documentazione sono disponibili.
Sono disponibili un gran numero di tecnologie di rete che vi permettono di distribuire dischi attraverso reti locali o globali. Ciò è in qualche modo marginale all'argomento di questo HOWTO ma dal momento che può essere utilizzato su dischi locali, lo tratterò brevemente. Sarebbe meglio se qualcuno ne facesse un HOWTO separato.
NFS
Questo è stato uno dei primi sistemi che permettono di montare uno
spazio file di una macchina,su un altra. Ci sono una serie di problemi con
NFS
che oscillano dalle prestazioni alla sicurezza, ma in ogni caso
ciò si è stabilizzato.
AFS
Questo è un sistema che permette un'efficiente condivisione di file attraverso ampie reti. Iniziato come un progetto accademico, è oggi venduto da Transarc la cui homepage vi darà più dettagli.
Derek Atkins, del MIT, ha fatto il porting di AFS per Linux ed ha inoltre organizzato per questo la mailing list del Linux AFS ( linux-afs@mit.edu) che è aperta al pubblico. Richieste per partecipare alla lista dovrebbero essere spedite a linux-afs-request@mit.edu ed infine si dovrebbero riportare i bug a linux-afs-bugs@mit.edu.
Importante: dal momento che AFS utilizza la criptazione è un software che è caratterizzato da restrizione e non può facilmente essere esportato dagli Stati Uniti.
L'IBM che possiede la Transarc, ha annunciato la disponibilità dell'ultima versione del client come anche del server per Linux.
Arla è un'implementazione AFS gratuita, controllate l' Arla homepage per maggiori informazioni come anche per la documentazione.
È iniziato un lavoro per un sostituto gratuito di AFS
ed è chiamato
Coda.
nbd
Il
Dispositivo di Blocco di Rete
(nbd
) è disponibile nel kernel 2.2 di Linux e
successivi e offre prestazioni eccellenti accertate. La cosa interessante
è che può essere combinato con RAID (vedere dopo).
Il File System Globale è un nuovo file system progettato per immagazzinare attraverso un'ampia area di rete. Attualmente è agli stadi iniziali e più informazioni si avranno più avanti.
Oltre ai file system generali, ce ne sono altri più specifici, generalmente utilizzati per fornire prestazioni migliori o altre caratteristiche, di solito con mancanze su altri aspetti.
tmpfs
e swapfs
Per un'archiviazione veloce di file a breve termine, Sun OS offre
tmpfs
che è praticamente la stessa cosa di swapfs
su NeXT.
Questo risolve l'intrinseca lentezza di ufs
mettendo in cache i dati
e mantenendo l'informazione di controllo in memoria. Ciò significa che
i dati su un tale file system si perderanno al reboot ed è quindi
adatto per l'area /tmp
ma non per /var/tmp
che è la sede
dove vengono posti i dati temporanei che devono sopravvivere al reboot.
SunOS offre scarsa regolazione per tmpfs
ed il numero dei file
è anche limitato dalla totale memoria fisica della macchina.
Linux non ha un equivalente a questo file system e si ritiene che
ext2fs
sia sufficientemente veloce da eliminarne la necessità.
userfs
Il file system utente (userfs
) permette una serie di estensioni verso
l'utilizzo di file system tradizionali come file system basati su FTP,
compressione (arcfs
) e veloci prototipazioni e molte altre
caratteristiche. Il docfs
è basato su questo filesystem.
Controllate l'
userfs homepage
per maggiori informazioni.
devfs
Quando i dischi vengono aggiunti, rimossi o solamente falliscono,
è probabile che i nomi dei dispositivi dei dischi rimanenti
cambieranno. Ad esempio sdb
fallisce e quindi il vecchio sdc
diventa sdb
, il vecchio sdc
diventa sdb
e così via.
Notate che in questo caso hda
, hdb
ecc. rimarranno invariati.
Allo stesso modo se un nuovo disco viene aggiunto, può accadere il
contrario.
Non c'è nessuna garanzia che lo SCSI ID 0 diventi sda
e che
aggiungere dischi aumentando l'ordine degli ID aggiungerà solamente
un nuovo nome di dispositivo senza rinominare le voci precedenti, dal
momento che qualche driver SCSI assegna partendo dall'ID 0 in poi mentre
altri invertono l'ordine di controllo.
Allo stesso modo anche l'aggiunta di un adattatore SCSI può causare
rinomine.
Generalmente i nomi dei dispositivi sono assegnati nell'ordine in cui vengono trovati.
L'origine dei problemi giace nel numero limitato di bit disponibili
per la numerazione principale e secondaria nei file di dispositivo usati
per descrivere il dispositivo stesso. Questo lo potete verificare nella directory
/dev, informazioni sulla numerazione e sull'allocazione
possono essere trovate con il comando man MAKEDEV
.
Attualmente ci sono 2 soluzioni a questo problema a vari stadi di sviluppo:
funziona mediante la creazione di un database dei dischi e di cosa essi fanno parte, controllate man scsifs per maggiori informazioni.
è un progetto a lungo termine orientato a raggirare l'intero impiccio della numerazione dei dispositivi facendo sì che la directory /dev diventi un file system del kernel come lo è il /procfs.
C'è una marea di scelte ma generalmente è consigliabile usare
il file system generale che è presente nella vostra distribuzione.
Se utilizzate ufs
e avete disponibilità di qualcosa tipo
tmpfs
dovreste inizialmente cominciare con il file system
generale per avere un'idea delle necessità di spazio e se
necessario, comprare più RAM per gestire la dimensione del
tmpfs
di cui avete bisogno. Altrimenti finirete con fallimenti
misteriosi e tempo perso.
Se utilizzate un dual boot e dovete trasferire dati tra i due
SO, uno dei modi più semplici è utilizzare una partizione
opportunamente dimensionata formattata con fat
visto che
molti sistemi possono affidabilmente leggere e scrivere su
questa.
Ricordatevi del limite dei 2 GB per le partizioni fat
.
Per maggiori informazioni sulle interconnettività tra file system potete controllare la pagina del file system.
Per evitare il tracollo totale con la rinomina dei dispositivi,
se un disco fallisce, controllate l'ordine di scansione del vostro
sistema e provate a mantenere il vostro sistema root su hda
o
su sda
e supporti rimovibili cone dischi ZIP alla
fine dell'ordine di scansione.