Avanti Indietro Indice

5. File System

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.

5.1 File system per scopi generali

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.

5.2 File System Microsoft

Questa compagnia è responsabile di molte cose, tra cui alcuni file system, tanto che alla fine ha causato confusioni.

fat

In realtà 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 li 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.

5.3 File system per il Logging e il Journaling

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 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.

5.4 File System di sola lettura

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 si raggiunse l'ultimo accordo.

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.

Trivia

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.

5.5 File System di Rete

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 cifratura, è un software che è caratterizzato da restrizione e non può essere facilmente 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.

Coda

È 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).

GFS

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.

5.6 File System Speciali

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 memoria fisica totale 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 semplicemente 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:

scsidev

funziona mediante la creazione di un database dei dischi e di cosa essi fanno parte, controllate man scsifs per maggiori informazioni.

devfs

è 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.

5.7 Raccomandazioni sui File System

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.


Avanti Indietro Indice