<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>HOWTO: Multi Disk System Tuning: File System</TITLE> <LINK HREF="Multi-Disk-HOWTO-6.html" REL=next> <LINK HREF="Multi-Disk-HOWTO-4.html" REL=previous> <LINK HREF="Multi-Disk-HOWTO.html#toc5" REL=contents> </HEAD> <BODY> <A HREF="Multi-Disk-HOWTO-6.html">Avanti</A> <A HREF="Multi-Disk-HOWTO-4.html">Indietro</A> <A HREF="Multi-Disk-HOWTO.html#toc5">Indice</A> <HR> <H2><A NAME="s5">5. File System</A></H2> <P> <!-- disco!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. <P>L'enfasi è su Linux ma con più richieste sarò felice di aggiungere informazioni per un'audience più ampia. <P> <P> <H2><A NAME="ss5.1">5.1 File system per scopi generali</A> </H2> <P>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. <P> <H3><CODE>minix</CODE></H3> <P> <!-- disco!file system!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. <P> <H3><CODE>xiafs</CODE> e <CODE>extfs</CODE></H3> <P> <!-- disco!file system!xiafs --> <!-- disco!file system!extfs --> Questi sono ugualmente vecchi e sono caduti in disuso e non sono più consigliati. <P> <H3><CODE>ext2fs</CODE></H3> <P> <!-- disco!file system!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. <P>Per maggiori informazioni controllate l'home page di <A HREF="http://web.mit.edu/tytso/www/linux/ext2.htm">ext2fs</A><P> <P> <H3><CODE>ufs</CODE></H3> <P> <!-- disco!file system!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. <P> <H3><CODE>efs</CODE></H3> <P> <!-- disco!file system!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. <P>C'è un driver Linux in versione beta giovane, ottenibile presso l'home page <A HREF="http://aeschi.ch.eu.org/efs/">Linux extent file system</A><P> <P> <P> <H3><CODE>reiserfs</CODE></H3> <P> <!-- disco!file system!reiserfs --> <!-- disco!file system!basato su struttura ad albero --> Dal 23 Luglio 1997, Hans Reiser <CODE>reiser (at) RICOCHET.NET</CODE> ha messo su web il sorgente del suo <A HREF="http://idiom.com/~beverly/reiserfs.html">reiserfs</A> basato su una struttura ad albero. Sebbene il suo file system abbia delle caratteristiche veramente interessanti e sia molto più veloce dell'<CODE>ext2fs</CODE>, è 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. <P> <H3><CODE>enh-fs</CODE></H3> <P> <!-- disco!file system!enhanced fs --> Attualmente in stadio alfa, il progetto <A HREF="http://www.coker.com.au/~russel/enh-fs.html">Enhanced File System</A> punta a combinare su un unico livello il file system e la gestione del disco. <P> <P> <P> <H2><A NAME="ss5.2">5.2 File System Microsoft</A> </H2> <P> <!-- disco!file system!Microsoft --> <!-- disco!file system!confusione --> Questa compagnia è responsabile di molte cose, tra cui alcuni file system, tanto che alla fine ha causato confusioni. <P> <P> <H3><CODE>fat</CODE></H3> <P> <!-- disco!file system!fat --> In realtà ci sono 2 <CODE>fat</CODE>, <CODE>fat12</CODE> e <CODE>fat16</CODE>, dipendentemente dalla dimensione della partizione utilizzata, ma fortunatamente la differenza è così piccola che l'intera questione è chiara. <P>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. <P>Il fattore a sfavore è la limitata sicurezza, i flag dei permessi severamente limitati e scalabilità atroce. Ad esempio con <CODE>fat</CODE> non potete avere partizioni più grandi di 2 GB. <P> <P> <H3><CODE>fat32</CODE></H3> <P> <!-- disco!file system!fat32 --> Dopo circa 10 anni la Microsoft realizzò cosa fosse la <CODE>fat</CODE>. Bene, 10 anni in ritardo e creò così questo file system che scala ragionevolmente bene. <P>I flag dei permessi sono ancora limitati. NT 4.0 non può leggere questo file system ma Linux può. <P> <P> <H3><CODE>vfat</CODE></H3> <P> <!-- disco!file system!vfat --> Nello stesso periodo in cui Microsoft lanciò la <CODE>fat32</CODE>, aggiunsero anche il supporto per i nomi lunghi dei file, conosciuto come <CODE>vfat</CODE>. <P>Linux legge partizioni <CODE>vfat</CODE> e <CODE>fat32</CODE> mediante mount con il tipo <CODE>vfat</CODE>. <P> <P> <H3><CODE>ntfs</CODE></H3> <P> <!-- disco!file system!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. <P> <P> <H2><A NAME="ss5.3">5.3 File system per il Logging e il Journaling </A> </H2> <P> <!-- disco!file system!logging file system --> <!-- disco!file system!journaling file system --> <P>Apportano un approccio radicalmente differente agli aggiornamenti dei file registrando le modifiche di un file in un log e successivamente controllando saltuariamente i log. <P>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. <P>Notate che i file system di <EM>logging</EM> tengono traccia dei cambiamenti fatti sia ai dati chee agli inode, mentre i file system che effettuano <EM>journaling</EM> tengono traccia solamente del cambiamento degli inode. <P>Linux ha abbastanza scelta tra questi file system ma nessuno è ancora in qualità tale da essere prodotto. Alcuni sono anche sospesi. <P> <UL> <LI>Adam Richter della Yggdrasil ha postato qualche tempo fa la notizia che stavano lavorando su un file system basato su un file di log compresso e che questo progetto è attualmente sospeso. Nonostante ciò, una versione non funzionante è disponibile sui propri server FTP. Controllate <A HREF="ftp://ftp.yggdrasil.com/private/adam">the Yggdrasil ftp server</A> dove possono essere trovate speciali versioni con patch del kernel. </LI> <LI>Un altro progetto è il <A HREF="http://collective.cpoint.net/lfs/">Linux log-structured Filesystem Project</A> che è anch'esso tristemente sospeso. Nonostante ciò questa pagina contiene parecchie informazioni sull'argomento. </LI> <LI>Infine c'è il <A HREF="http://www.complang.tuwien.ac.at/czezatke/lfs.html">dtfs -- A Log-Structured Filesystem For Linux</A> che sembra crescere forte. Ancora in alfa ma sufficientemente completo da far girare programmi su questo file system.</LI> </UL> <P> <H2><A NAME="ss5.4">5.4 File System di sola lettura</A> </H2> <P> <!-- disco!file system!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. <P> <!-- disco!file system!CD-ROM --> <!-- disco!file system!DVD --> <!-- disco!file system!loopback --> 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. <P> <!-- disco!file system!file system rom --> <!-- disco!file system!romfs --> C'è un <CODE>romfs</CODE> per Linux ma visto che non è relativo al disco, più nulla potrà essere detto relativamente a questo in questa sede. <P> <H3><CODE>High Sierra</CODE></H3> <P> <!-- disco!file system!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. <P><CODE>High Sierra</CODE> 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 <CODE>High Sierra</CODE> rimane il comune precursore ed è quindi ancora ampiamente supportato. <P> <P> <H3><CODE>iso9660</CODE></H3> <P> <!-- disco!file system!iso9660 --> L'International Standards Organisation fece le proprie estensioni e formalizzò lo standard nel quale noi riconosciamo lo standard <CODE>iso9660</CODE>. <P>Il file system Linux iso9660 gestisce sia le estensioni High Sierra che quelle <CODE>Rock Ridge</CODE>. <P> <P> <H3><CODE>Rock Ridge</CODE></H3> <P> <!-- disco!file system!Rock Ridge --> Non tutti accettano limiti come i nomi corti e assenza di permessi, così molto presto sopraggiunsero le estensioni <CODE>Rock Ridge</CODE> per rettificare queste mancanze. <P> <P> <H3><CODE>Joliet</CODE></H3> <P> <!-- disco!file system!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 <CODE>Joliet</CODE>. <P>Linux gestisce questi standard nei kernel 2.0.34 o superiori. Dovete abilitare l'NLS per usarlo. <P> <P> <H3>Trivia</H3> <P> <!-- disco!file system!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". <P> <P> <H3><CODE>UDF</CODE></H3> <P> <!-- disco!file system!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'<CODE>iso9660</CODE> e sarà richiesto per il DVD. <P>Attualmente non è nel kernel standard di Linux ma un progetto è in corso per fare un <A HREF="http://trylinux.com/projects/udf/index/htm">driver UDF</A> per Linux. Patch e documentazione sono disponibili. <P> <P> <H2><A NAME="ss5.5">5.5 File System di Rete</A> </H2> <P> <!-- disco!file system!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. <P> <H3><CODE>NFS</CODE></H3> <P> <!-- disco!file system!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 <CODE>NFS</CODE> che oscillano dalle prestazioni alla sicurezza, ma in ogni caso ciò si è stabilizzato. <P> <H3><CODE>AFS</CODE></H3> <P> <!-- disco!file system!AFS --> Questo è un sistema che permette un'efficiente condivisione di file attraverso ampie reti. Iniziato come un progetto accademico, è oggi venduto da <A HREF="http://www.transarc.com">Transarc</A> la cui homepage vi darà più dettagli. <P>Derek Atkins, del MIT, ha fatto il porting di AFS per Linux ed ha inoltre organizzato per questo la mailing list del Linux AFS ( <A HREF="mailto:linux-afs@mit.edu">linux-afs@mit.edu</A>) che è aperta al pubblico. Richieste per partecipare alla lista dovrebbero essere spedite a <A HREF="mailto:linux-afs-request@mit.edu">linux-afs-request@mit.edu</A> ed infine si dovrebbero riportare i bug a <A HREF="mailto:linux-afs-bugs@mit.edu">linux-afs-bugs@mit.edu</A>. <P>Importante: dal momento che AFS utilizza la cifratura, è un software che è caratterizzato da restrizione e non può essere facilmente esportato dagli Stati Uniti. <P>L'IBM che possiede la Transarc, ha annunciato la disponibilità dell'ultima versione del client come anche del server per Linux. <P>Arla è un'implementazione AFS gratuita, controllate l' <A HREF="http://www.stacken.kth.se/projekt/arla">Arla homepage</A> per maggiori informazioni come anche per la documentazione. <P> <P> <H3>Coda</H3> <P> <!-- disco!file system!Coda --> È iniziato un lavoro per un sostituto gratuito di <CODE>AFS</CODE> ed è chiamato <A HREF="http://coda.cs.cmu.edu/">Coda</A>. <P> <P> <H3><CODE>nbd</CODE></H3> <P> <!-- disco!file system!nbd --> <!-- disco!dispositivo!dispositivo di blocco di rete --> Il <A HREF="http://atrey.karlin.mff.cuni.cz/~pavel">Dispositivo di Blocco di Rete</A> (<CODE>nbd</CODE>) è 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). <P> <P> <H3>GFS</H3> <P> <!-- disco!file system!GFS --> <!-- disco!dispositivo!File System Globale --> Il <A HREF="http://gfs.lcse.umn.edu/">File System Globale</A> è un nuovo file system progettato per immagazzinare attraverso un'ampia area di rete. Attualmente è agli stadi iniziali e più informazioni si avranno più avanti. <P> <P> <P> <H2><A NAME="ss5.6">5.6 File System Speciali</A> </H2> <P>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. <P> <P> <H3><A NAME="tmpfs"></A> <CODE>tmpfs</CODE> e <CODE>swapfs</CODE> </H3> <P> <!-- disco!file system!tmpfs --> <!-- disco!file system!swapfs --> Per un'archiviazione veloce di file a breve termine, Sun OS offre <CODE>tmpfs</CODE> che è praticamente la stessa cosa di <CODE>swapfs</CODE> su NeXT. Questo risolve l'intrinseca lentezza di <CODE>ufs</CODE> 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 <CODE>/tmp</CODE> ma non per <CODE>/var/tmp</CODE> che è la sede dove vengono posti i dati temporanei che devono sopravvivere al reboot. <P>SunOS offre scarsa regolazione per <CODE>tmpfs</CODE> ed il numero dei file è anche limitato dalla memoria fisica totale della macchina. <P>Linux non ha un equivalente a questo file system e si ritiene che <CODE>ext2fs</CODE> sia sufficientemente veloce da eliminarne la necessità. <P> <P> <H3><CODE>userfs</CODE></H3> <P> <!-- disco!file system!userfs --> <!-- disco!file system!arcfs --> <!-- disco!file system!docfs --> Il file system utente (<CODE>userfs</CODE>) permette una serie di estensioni verso l'utilizzo di file system tradizionali come file system basati su FTP, compressione (<CODE>arcfs</CODE>) e veloci prototipazioni e molte altre caratteristiche. Il <CODE>docfs</CODE> è basato su questo filesystem. Controllate l' <A HREF="http://www.goop.org/~jeremy/userfs/">userfs homepage</A> per maggiori informazioni. <P> <P> <H3><CODE>devfs</CODE></H3> <P> <!-- disco!file system!devfs --> Quando i dischi vengono aggiunti, rimossi o semplicemente falliscono, è probabile che i nomi dei dispositivi dei dischi rimanenti cambieranno. Ad esempio <CODE>sdb</CODE> fallisce e quindi il vecchio <CODE>sdc</CODE> diventa <CODE>sdb</CODE>, il vecchio <CODE>sdc</CODE> diventa <CODE>sdb</CODE> e così via. Notate che in questo caso <CODE>hda</CODE>, <CODE>hdb</CODE> ecc. rimarranno invariati. Allo stesso modo se un nuovo disco viene aggiunto, può accadere il contrario. <P>Non c'è nessuna garanzia che lo SCSI ID 0 diventi <CODE>sda</CODE> 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. <P>Generalmente i nomi dei dispositivi sono assegnati nell'ordine in cui vengono trovati. <P>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 <CODE>man MAKEDEV</CODE>. Attualmente ci sono 2 soluzioni a questo problema a vari stadi di sviluppo: <DL> <DT><B>scsidev</B><DD><P>funziona mediante la creazione di un database dei dischi e di cosa essi fanno parte, controllate <EM>man scsifs</EM> per maggiori informazioni. <DT><B>devfs</B><DD><P>è 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. </DL> <P> <P> <P> <H2><A NAME="ss5.7">5.7 Raccomandazioni sui File System</A> </H2> <P>C'è una marea di scelte ma generalmente è consigliabile usare il file system generale che è presente nella vostra distribuzione. Se utilizzate <CODE>ufs</CODE> e avete disponibilità di qualcosa tipo <CODE>tmpfs</CODE> 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 <CODE>tmpfs</CODE> di cui avete bisogno. Altrimenti finirete con fallimenti misteriosi e tempo perso. <P>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 <CODE>fat</CODE> visto che molti sistemi possono affidabilmente leggere e scrivere su questa. Ricordatevi del limite dei 2 GB per le partizioni <CODE>fat</CODE>. <P>Per maggiori informazioni sulle interconnettività tra file system potete controllare la pagina del <A HREF="http://www.ceid.upatras.gr/~gef/fs/">file system</A>. <P>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 <CODE>hda</CODE> o su <CODE>sda</CODE> e supporti rimovibili cone dischi ZIP alla fine dell'ordine di scansione. <P> <P> <P> <P> <HR> <A HREF="Multi-Disk-HOWTO-6.html">Avanti</A> <A HREF="Multi-Disk-HOWTO-4.html">Indietro</A> <A HREF="Multi-Disk-HOWTO.html#toc5">Indice</A> </BODY> </HTML>