HOWTO: Multi Disk System Tuning <author>Stein Gjoen, <tt/sgjoen@nyx.net/ <date>v 0.22i, 27 maggio 1999 <abstract> <nidx>partizioni</nidx> <nidx>del disco, (vedete disco)</nidx> Questo documento descrive come utilizzare al meglio dischi e partizioni multiple per un sistema Linux. Sebbene parte di questo testo è specifico di Linux, l'approccio generale evidenziato qui può essere applicato a molti altri sistemi operativi multi tasking. Traduzione di Gaetano Paolone (<htmlurl url="mailto:gaetano@poboxes.com" name="gaetano at poboxes.com">). Data traduzione: 26 ottobre 1999 </abstract> <!-- Tavola dei contenuti --> <toc> <!-- Inizio del documento --> <!-- Segue la vecchia intestazione Mini_HOWTO: Multi Disk System Tuning Versione 0.7b (Si, è giusto: questa è una BETA) Data 960823 By Stein Gjoen <sgjoen@nyx.net> --> <sect>Introduzione <p> <nidx>disco!introduzione</nidx> <!-- In commemorazione del "<it/Linux Hacker V2.0 - The New Generation/" questa versione completamente nuova è chiamata in codice la versione <bf/Patricia Miranda/. --> <!-- Dopo tutto, i calzini "sono in coppia"... Dopo tutto, questo è un progetto in crescita... --> <!-- In commemorazione del recente sviluppo legale, questa versione completamente nuova è chiamata in codice la versione <bf/Trademark Resolution/. --> Per commemorare la release 2.2. del kernel Linux a questa release nuova di zecca ho dato il nome in codice <bf/Daniella/. Nuovi nomi in codice appariranno in relazione alle linee guida standard dell'industria per enfatizzare lo stato dell'arte di questo documento. <p> Questo documento è stato scritto per due ragioni, principalmente perché possedevo 3 vecchi dischi SCSI su cui installare Linux e mi stavo domandando come utilizzare al meglio l'innata possibilità di parallelismo in un sistema SCSI. In secondo luogo ho sentito che c'è una ricompensa per chi scrive documenti... Questo documento è concepito per essere letto insieme al Linux Filesystem Structure Standard (FSSTND). Esso non lo rimpiazza in alcun modo ma cerca di suggerire dove mettere fisicamente le directory descritte in dettaglio nel FSSTND, in termini di dischi, partizioni, tipi, RAID, file system (fs), dimensioni fisiche e altri parametri che dovrebbero essere considerati e regolati in un sistema Linux, spaziando dai singoli sistemi casalinghi a grossi server su Internet. <!-- Sebbene sia passato oltre un anno dall' ultima versione del FSSTND, il lavoro sta ancora continuando, sotto nuovo nome, e racchiuderà molto più che Linux, riempirà qualche mancanza cui si alludeva nella versione 1.2 del FSSTND come anche altri miglioramenti generali. La mailing list di sviluppo, attualmente è privata ma si spera in una versione generale nel prossimo futuro. --> Il successore del FSSTND è chiamato Filesystem Hierarchy Standard (FHS) e non riguarda più solo Linux. È stata rilasciata la versione 2.0 del FHS ma ci sono ancora un po' di questioni aperte e ci vorrà molto tempo prima che questo nuovo standard abbia un impatto sulle distribuzioni attuali. È anche una buona idea leggere approfonditamente le guide di Installazione di Linux e se state usando un PC, come immagino la maggior parte di voi faccia, potete trovare molte informazioni degne di nota ed utili nella FAQ del newsgroup comp.sys.ibm.pc.hardware specialmente riguardo i supporti di archiviazione. Questa è anche un'esperienza istruttiva per me e spero che io possa cominciare a "far girare la palla" con questo HOWTO e che esso possa evolvere in un HOWTO più grande, più dettagliato, e speriamo anche più corretto. <!-- Eliminato il 2303 Notate che questa è una guida su come disegnare e progettare le partizioni logiche su dischi multipli e regolare per ottenere performance e affidabilità, NON - ancora - su come partizionare i dischi o formattarli. --> Prima di tutto abbiamo bisogno di un po' di linguaggio legale. Recenti sviluppi dimostrano che questo è abbastanza importante. <sect1>Copyright <p> This HOWTO is copyrighted 1996 Stein Gjoen. Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions. All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator at the address given below. In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs. If you have questions, please contact <!-- Greg Hankins, --> the Linux HOWTO coordinator, at linux-howto@metalab.unc.edu via email. <sect1>Liberatoria <p> Usate le informazioni contenute in questo documento a vostro rischio. Ripudio qualsiasi potenziale responsabilità per i contenuti di questo documento. L'utilizzo dei concetti, degli esempi e/o degli altri contenuti di questo documento è completamente a vostro rischio. Tutti i copyright sono dei rispettivi proprietari, salvo ove diversamente specificato. L'utilizzo di un termine, in questo documento, non dovrebbe essere considerato come un attacco alla validità di qualsiasi marchio di fabbrica o di servizio. Il nominare prodotti particolari o marche, non dovrebbe essere considerato come approvazione. Siete fermamente invitati a fare un backup del vostro sistema prima della installazione principale e a continuare a farne ad intervalli regolari. <sect1>Notizie <p> <nidx>disco!notizie recenti</nidx> Questa versione è caratterizzata dall'avere una grossa ristrutturazione e molte più aggiunte di quante ne possa elencare qui, specialmente l'aggiunta del supporto a file system. Questo HOWTO ora utilizza l'indicizzazione ed è basato sugli SGMLtools versione 1.0.5 e la vecchia versione non conferirà a questo documento una formattazione adeguata. Inoltre sono disponibili anche una serie di nuove traduzioni. Per quanto concerne lo sviluppo, la gente si sta concentrando sul Linux 2.2 e fino a quando non sarà rilasciato, non ci saranno molte notizie nuove sulla tecnologia disco per Linux. La Debian 2.1 è pronta per essere rilasciata ma visto che uso Debian per i miei sistemi di test, farò più aggiornamenti quando la aggiornerò. L'ultimo numero di versione può essere ottenuto dall'annotazione del mio progetto se fate un <!-- fate "finger sgjoen@nox.nyx.net" --> <url url="http://www.cs.indiana.edu/finger/nox.nyx.net/sgjoen" name="finger"> al mio account su Nyx. Inoltre, l'ultima versione sarà disponibile sul mio spazio web su nyx in numerosi formati: <itemize> <item> <url url="http://www.nyx.net/˜sgjoen/disk.html" name="HTML">. <item> <url url="http://www.nyx.net/˜sgjoen/disk.txt" name="semplice testo ASCII"> <item> <url url="http://www.nyx.net/˜sgjoen/disk.ps.gz" name="postscript compresso">. <item> <url url="http://www.nyx.net/˜sgjoen/disk.sgml" name="sorgente SGML">. </itemize> Un mirror Europeo del <url url="http://home.sol.no/˜gjoen/stein/disk.html" name="Multi Disk HOWTO"> è stato appena creato. <sect1>Crediti <p> In questo documento ho il piacere di riconoscere molte persone che hanno contribuito in un modo o nell'altro: <!-- sjmudd (at) phoenix.ea4els.ampr.org è cambiato in sjmudd (at) redestb.es --> <tscreen><verb> ronnej (at ) ucs.orst.edu cm (at) kukuruz.ping.at armbru (at) pond.sub.org R.P.Blake (at) open.ac.uk neuffer (at) goofy.zdv.Uni-Mainz.de sjmudd (at) redestb.es nat (at) nataa.fr.eu.org sundbyk (at) oslo.geco-prakla.slb.com ggjoeen (at) online.no mike (at) i-Connect.Net roth (at) uiuc.edu phall (at) ilap.com szaka (at) mirror.cc.u-szeged.hu CMckeon (at) swcp.com kris (at) koentopp.de edick (at) idcomm.com pot (at) fly.cnuce.cnr.it earl (at) sbox.tu-graz.ac.at ebacon (at) oanet.com vax (at) linkdead.paranoia.com tschenk (at) theoffice.net pjfarley (at) dorsai.org jean (at) stat.ubc.ca johnf (at) whitsunday.net.au clasen (at) unidui.uni-duisburg.de eeslgw (at) ee.surrey.asc.uk adam (at) onshore.com anikolae (at) wega-fddi2.rz.uni-ulm.de cjaeger (at) dwave.net eperezte (at) c2i.net </verb></tscreen> Ringraziamenti speciali vanno a <tt/nakano (at) apm.seikei.ac.jp/ per aver fatto la <url url="http://jf.linux.or.jp/JF/JF-ftp/other-formats/Disk-HOWTO/html/Disk-HOWTO.html" name="taduzione in Giapponese">, per aver dato contributi generali e anche per aver fornito un esempio di un computer in un ambiente accademico, che è incluso alla fine di questo documento. Ci sono ora molte traduzioni disponibili e ringraziamenti speciali ora vanno ai traduttori per il lavoro e la spinta che hanno dato: <itemize> <item><url url="http://" name="Traduzione in Tedesco"> di <tt/chewie (at) nuernberg.netsurf.de/ <item><url url="http://www.swe-doc.linux.nu" name="Traduzione in Svedese"> di <tt/jonah (at) swipnet.se/ <item><url url="http://www.lri.fr/˜loisel/howto/" name="Traduzione in Francese"> di <tt/Patrick.Loiseleur (at) lri.fr/ </itemize> Inoltre la DPT è riconosciuta per avermi inviato la documentazione sui propri controller così come il permesso di citare il materiale. Queste citazioni sono state approvate prima di apparire qui e saranno etichettate intelligentemente. Nessuna citazione ancora ma stanno per venire. Non è ancora tutto, quindi per cortesia leggete questo documento, date un contributo e partecipate all'elite. Se ho dimenticato qualcuno fatemelo sapere. Nuova in questa versione è un'appendice con un po' di tabelle che potete riempire per il vostro sistema al fine di semplificare la procedura di progettazione. Qualsiasi commento o suggerimento può essere inviato al mio indirizzo e-mail sul nyx: <htmlurl url="mailto:sgjoen@nyx.net/" name="sgjoen@nyx.net">. Quindi diamo la caccia a <tt/swap/ ed a <tt>/tmp</tt> dal momento che stanno correndo nel disco rigido... <p> <!-- <hrule> --> <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --> <sect>Struttura <p> Dal momento che questo documento si suppone che sia più che sufficiente per imparare come se fosse un documento di riferimento tecnico, ho riarrangiato la struttura in quest'ottica. Per colui che progetta un sistema è più utile avere le informazioni presentate in termini di scopi di questo esercizio piuttosto che dal punto di vista della strutturazione logica dei dispositivi stessi. Tuttavia questo documento non sarebbe completo senza tutta quella struttura a strati di cui la struttura del computer è piena, quindi la includerò come introduzione a come funziona. È passato molto tempo da quando il <em/mini/ nel mini-HOWTO poteva essere considerato corretto ma sono convinto che questo documento sia lungo quanto debba esserlo, utile per prendere le giuste decisioni e niente di più. <sect1>Struttura Logica <p> <nidx>disco!struttura, sottosistema I/O</nidx> Questa è basata su come ogni strato accede ad un altro, tradizionalmente con l'applicazione nello strato più alto e lo strato fisico in quello più basso. È abbastanza utile mostrare le interrelazioni tra gli strati usati per controllare i dischi. <tscreen><verb> ___________________________________________________________ |__ Struttura dei File ( /usr /tmp ecc) __| |__ File system (ext2fs, vfat ecc) __| |__ Gestione del volume (AFS) __| |__ RAID, concatenazione (md) __| |__ Driver dei dispositivi (SCSI, IDE ecc) __| |__ Controller (chip, scheda) __| |__ Connessione (cavo, rete) __| |__ Dischi (magnetici, ottici ecc) __| ----------------------------------------------------------- </verb></tscreen> Nel diagramma qui sopra sia la gestione del volume, che il RAID, che la concatenazione, sono strati opzionali. I 3 strati più bassi riguardano l'hardware. Tutte le parti sono ampiamente discusse in seguito in questo documento. <sect1>Struttura del Documento <p> La maggior parte degli utenti comincia con una determinata configurazione di hardware e qualcuno progetta cosa vorrebbe ottenere e quanto grande dovrebbe essere il sistema. Questo è il punto di vista che utilizzerò in questo documento presentando il materiale, iniziando con l'hardware, continuando con le costrizioni della progettazione, prima di descrivere la strategia di progettazione che ho scoperto funzionare bene. Ho usato questo sia per il mio computer di casa, che al lavoro per un server multifunzionale e ho scoperto che funziona ragionevolmente bene. Oltre a ciò, il collaboratore giapponese di questo documento ha applicato la stessa strategia su un server di un ambiente accademico con un paragonabile successo. Per finire, alla fine ho elencato con dettaglio alcune tavole di configurazione da usare per le vostre progettazioni. Se avete qualsiasi commento al riguardo o annotazioni del vostro lavoro di progettazione, mi piacerebbe sentirvi così che questo documento possa essere aggiornato. <sect1>Pianificazione della lettura <p> Sebbene non sia l'HOWTO più grande, è in ogni caso abbastanza grande e mi è stato chiesto di fare una pianificazione della lettura per poter sfoltire il volume. <descrip> <tag/Esperto/ (tipo l'elite). Se siete pratici di Linux e delle tecnologie dei dischi, troverete molto di quello di cui avete bisogno nelle appendici. In aggiunta siete avvisati di leggere le FAQ e il capitolo <ref id="bits-n-pieces" name="Pezzettini e Ritagli">. <tag/Pratici/ (tipo Competenti). Se siete pratici di computer in generale potete direttamente andare ai capitoli sulle <ref id="technologies" name="tecnologie"> e continuare da lì. <tag/Principianti/ (per lo più disarmati). Dovete solamente leggere tutto. Mi dispiace. In aggiunta vi consiglio di leggere anche tutti gli altri HOWTO riguardanti i dischi. </descrip> <sect>Tecnologie dei dischi <p> <nidx>disco!tecnologie</nidx> Una discussione ben più completa sulle tecnologie dei dischi per PC IBM può essere trovata presso l'home page delle <url url="http://thef-nym.sci.kun.nl/˜pieterh/storage.html" name="The Enhanced IDE/Fast-ATA FAQ"> che è anche periodicamente postata sulle News di Usenet. Qui io presenterò cosa è necessario per farsi un'idea della tecnologia e per prepararsi per il setup. <sect1>Dischi <p> <nidx>disco!unità</nidx> Questo è il dispositivo fisico dove i vostri dati vivono e sebbene il sistema operativo rende abbastanza somiglianti tipi differenti, essi possono in fondo essere molto differenti. Conoscere il funzionamento può essere molto utile nella vostra fase di progettazione. I floppy non fanno parte di questo documento, sebbene nel caso ci fosse una grande richiesta, potrei essere convinto ad aggiungere una piccola parte qui. <sect1>Geometria <p> <nidx>disco!geometria</nidx> Fisicamente, i dischi consistono in uno o più piatti contenenti dati che sono letti all'interno e all'esterno, mediante l'utilizzo di sensori montati su testine mobili fissate tra di loro. I trasferimenti di dati dunque, avvengono attraverso tutte le superfici simultaneamente, il che definisce un cilindro di tracce. Il disco è inoltre suddiviso in settori contenenti un determinato numero di campi per i dati. I dischi sono quindi spesso classificati in relazione alla geometria: il numero di Cilindri, Testine e Settori (CHS). Per varie ragioni c'è un bel numero di differenze tra <itemize> <item>la CHS fisica del disco stesso <item>la CHS logica che il disco riporta al BIOS o al S.O. <item>la CHS logica usata dal S.O. </itemize> Praticamente è un gran disordine ed è causa di molta confusione. Per maggiori informazioni siete caldamente invitati a leggere il <em>Large Disk mini-HOWTO</em> <sect1>Supporti <p> <nidx>disco!supporti</nidx> La tecnologia dei supporti determina importanti parametri come le velocità di lettura/scrittura, tempo di accesso, capacità di memorizzazione come anche se permette la lettura/scrittura o solamente la lettura. <sect2>Dischi Magnetici <label id="magnetic-drives"> <p> <nidx>disco!supporti!magnetici</nidx> Questo è il tipico mezzo di memorizzazione di lettura e scrittura e come qualsiasi altra cosa nel mondo dei computer è disponibile in molti 'gusti' e con proprietà differenti. Generalmente questa è la tecnologia più veloce e offre capacità di lettura/scrittura. Il disco gira con una velocità angolare costante (CAV) con una densità del settore fisico variabile per un utilizzo più efficiente dell'area magnetica del supporto. In altre parole, il numero di bit per unità di lunghezza è mantenuto costante aumentando il numero di settori logici per le tracce esterne. I valori tipici delle velocità di rotazione sono 4500 e 5400 RPM, sebbene sia usata anche la velocità a 7200. Molto recentemente è entrata nel mercato anche la velocità a 10000 RPM. I tempi di accesso sono intorno a 10 ms, le velocità di trasferimento sono abbastanza variabili da un tipo ad un altro ma generalmente sono nell'ordine di 4-40 MB/s. Con dischi ad alte prestazioni dovreste ricordare che le prestazioni stesse necessitano di più potenza elettrica che è poi dissipata sotto forma di calore, controllate <ref id="power-heating" name="Alimentazione e Riscaldamento">. Notate che esistono diversi tipi di trasferimento e che questi sono riportati con unità differenti. Prima di tutto c'è il trasferimento dal 'piatto' alla cache dell'unità disco che è generalmente riportato in Mbit/s. Un valore tipico è circa 50-250 Mbit/s. Il secondo passaggio è dalla cache del drive all'adattatore ed è generalmente indicato in MB/s, i valori riportati sono intorno ai 3-40 MB/s. Notate comunque che si assume che i dati siano già contenuti nella cache e da qui l'effettiva percentuale di trasferimento diminuirà drammaticamente a causa della massima velocità di lettura dal drive. <!-- rimosso perché ridondante con le linee sovrastanti <p> I dischi sono generalmente classificati in base alla geometria del drive o ai parametri quali il numero di testine, settori e cilindri, il che è reso confuso dagli schemi di traduzione tra varie geometrie fisiche e logiche. Questo è un campo minato che è descritto in dettagli dolorosi in molte FAQ relative all'archiviazione. Leggete e piangete. --> <sect2>Dischi Ottici <p> <nidx>disco!supporti!ottici</nidx> I dischi ottici in lettura/scrittura esistono ma sono lenti e non così diffusi. Furono usati nella macchina NeXT ma la bassa velocità è stata l'origine di molte lamentele. La bassa velocità è dovuta principalmente alla natura termica del cambio di fase che rappresenta l'archiviazione dei dati. Anche quando si sono usati laser potenti per indurre cambiamenti di fase, gli effetti sono stati ancora più lenti dell'effetto magnetico usato nei dischi magnetici. Oggi molte persone usano i dischi CD-ROM che, come il nome fa capire, sono di sola lettura. L'archiviazione è di circa 650 MB, le velocità di trasferimento sono variabili e dipendono dal disco ma possono superare 1.5 MB/s. I dati sono archiviati in una singola traccia a spirale quindi non è utile parlare di geometria per essi. La densità dei dati è costante, quindi il lettore usa una velocità lineare costante (CLV). Anche l'accesso è più lento, circa 100 ms, parzialmente dovuto alla traccia a spirale. Recentemente dischi ad alta velocità, usano un misto tra CLV e CAV al fine di aumentare le prestazioni. Questo riduce inoltre il tempo di accesso causato dalla necessità di raggiungere la corretta velocità di rotazione per la lettura. Un nuovo tipo (DVD) è all'orizzonte, in grado di offrire fino a circa 18 GB su un disco singolo. <sect2>Dischi a Stato Solido <p> <nidx>disco!supporti!stato solido</nidx> Questa è un'aggiunta relativamente recente alla tecnologia disponibile ed è stata resa popolare specialmente in computer portatili come anche in sistemi fissi. Non contenendo parti rimovibili, sono molto veloci sia in termini di velocità di accesso che di velocità di trasferimento. Il tipo più popolare è la flash RAM, ma sono usati anche altri tipi di RAM. Alcuni anni fa molti riponevano molte speranze per le memorie a bolla magnetica ma si sono dimostrate essere relativamente costose e non sono così comuni. Generalmente l'uso di dischi RAM non è considerato una buona idea dal momento che è più efficace aggiungere più RAM alla scheda madre e permettere al sistema operativo di dividere il quantitativo di memoria in memorie tampone, cache, aree di programmi e di dati. Solo in casi molto speciali, come in sistemi in tempo reale con piccoli margini di tempo, i dischi RAM possono essere una soluzione ragionevole. La Flash RAM è disponibile in molte decine di megabyte di capacità e si potrebbe essere tentati di usarla per un'archiviazione veloce e temporanea in un computer. C'è comunque un enorme ostacolo con questo metodo: la flash RAM ha un tempo di vita limitato in termini del numero di volte in cui potete riscrivere i dati, quindi mettere <tt>swap</tt>, <tt>/tmp</tt> o <tt>/var/tmp</tt> su questi dispositivi accorcerà sicuramente e drammaticamente la loro vita. Invece, usare le flash RAM per directory che vengono lette spesso ma raramente scritte, porterebbe ad un grosso guadagno in termini di prestazioni. Per ottenere l'optimum della vita media dalle flash RAM, dovrete usare driver speciali che usano la RAM ugualmente e minimizzano il numero di blocchi cancellati. Questo esempio illustra i vantaggi di dividere la vostra struttura delle directory su più dispositivi. I dischi a Stato Solido non hanno un reale indirizzamento cilindri/testine/settori ma per ragioni di compatibilità questi sono simulati dal driver per avere un'interfaccia uniforme al sistema operativo. <sect1>Interfacce <p> <nidx>disco!interfacce</nidx> C'è una pletora di interfacce da cui scegliere con diverse caratteristiche di prezzo e prestazioni. Parecchie schede madri oggi includono interfaccia IDE o interfacce migliori, che sono parte integrante dei chipset. Molte altre schede includono anche un chip per l'interfaccia SCSI fatto da NCR e connesso direttamente al bus PCI. Controllate che cosa avete e quale supporto del BIOS avete per quello. <sect2>MFM e RLL <p> <nidx>disco!interfacce!MFM</nidx> <nidx>disco!interfacce!RLL</nidx> Un tempo questa era la tecnologia consolidata, il tempo in cui 20 MB erano solenni, che comparati con le dimensioni di oggi ti fanno pensare che i dinosauri si aggiravano per la Terra con questi dischi. Come i dinosauri questi sono datati e sono lenti e non affidabili se confrontati a quello che abbiamo oggi. Linux li gestisce ma siete stati bene avvisati di pensare due volte riguardo cosa volete metterci. Si potrebbe discutere che una partizione di emergenza potrebbe essere adattata con un'opportuna versione datata del DOS. <sect2>ESDI <p> <nidx>disco!interfacce!ESDI</nidx> <!-- Questa tecnologia diventò obsoleta praticamente prima che diventasse popolare, così è svantaggioso imbattervi in questo periodo. Praticamente è stato un tentativo di aumentare il limite superiore delle vecchie interfacce. Potreste far funzionare questo drive sotto Linux se è compatibile con lo standard <tt/ST506/. --> <!-- Aggiornato dall'edizione del 120997 --> Effettivamente, ESDI era un adattamento dell'interfaccia SMD, largamente diffusa ed utilizzata su computer "grandi", ai cavi usati con l'interfaccia ST506, cosa molto più conveniente da confezionare rispetto alla copia di connettori a 60-pin e 26-pin usati con SMD. L'ST506 era un'interfaccia silenziosa che faceva completo affidamento sul fatto che il controller e l'host facessero tutto: dal valutare la disposizione di testine/cilindri/settori al tenere traccia della disposizione delle testine, ecc. ST506 necessitava che il controller estraesse il clock dai dati recuperati e che controllasse la disposizione delle caratteristiche dettagliate sulle tracce del supporto, bit per bit. Ebbe una vita di circa 10 anni, se includete l'uso degli schemi di modulazione di MFM, RLL, e ERLL/ARLL. ESDI, d'altra parte, ebbe l'intelligenza, spesso utilizzando tre o quattro microprocessori separati su un singolo drive e comandi di alto livello per formattare una traccia, trasferire dati, effettuare ricerche e così via. Il recupero del clock dal flusso dei dati era affidato al drive, che pilotava la linea di clock e presentava i suoi dati in NRZ, sebbene la correzione dell'errore era ancora compito del controller. ESDI permetteva l'uso della densità di registrazione a bit variabile, oppure, per quella ragione, di qualsiasi altra tecnica di modulazione, dal momento che era localmente generata e risolta presso il disco. Sebbene molte delle tecniche usate in ESDI, furono in seguito incorporate nell'IDE, fu la crescente popolarità dello SCSI che portò alla fine dell'ESDI nei computer. ESDI ebbe una vita di circa 10 anni, sebbene principalmente nei server o in "grossi" sistemi piuttosto che nei PC. <sect2>IDE e ATA <p> <nidx>disco!interfacce!IDE</nidx> <nidx>disco!interfacce!ATA</nidx> Il progresso fece sì che l'elettronica dei dischi migrasse dallo slot ISA al drive stesso e nacque l'Integrated Drive Electronics. Era semplice, economica e ragionevolmente veloce così coloro che progettavano il BIOS crearono quel tipo di ostacolo di cui l'industria di computer è così piena. Una combinazione tra una limitazione IDE di 16 testine insieme alla limitazione del BIOS a 1024 cilindri ci donò l'infame limite di 504 MB. Seguendo le tradizioni dell'industria del computer, l'ostacolo fu rattoppato con un programma inaffidabile ed ottenemmo ogni tipo di schema di traduzione e instabili rattoppi del BIOS. Questo vuol dire che dovete leggere la documentazione relativa all'installazione molto attentamente e controllare che BIOS avete e che data ha, dal momento che il BIOS deve dire a Linux che dimensioni di dischi avete. Fortunatamente con Linux potete dire direttamente al kernel le dimensioni del vostro disco con i suoi parametri, controllate la documentazione su LILO e Loadlin, esaurientemente. Notate anche che IDE è equivalente ad ATA, AT Attachment. IDE usa un Input/Output Programmato (PIO) CPU-intensivo per trasferire i dati verso e dai dischi e non è in grado di gestire la tecnologia di Accesso Diretto alla Memoria (DMA) che è più efficiente. La velocità di trasferimento più elevata è di 8.3 MB/s. <sect2>EIDE, Fast-ATA e ATA-2 <p> <nidx>disco!interfacce!EIDE</nidx> <nidx>disco!interfacce!Fast-ATA</nidx> <nidx>disco!interfacce!ATA-2</nidx> Questi 3 termini sono abbastanza equivalenti, fast-ATA è ATA-2 ma EIDE include come aggiunta ATAPI. ATA-2 è quello che si usa di più in questi giorni dato che è più veloce e con DMA. La velocità trasferimento è aumentata a 16.6 MB/s. <!-- dal c't 9/97 --> <sect2>Ultra-ATA <p> <nidx>disco!interfacce!Ultra-ATA</nidx> Una nuova e più veloce modalità DMA che è circa il doppio del PIO-Mode 4 dell'EIDE (33 MB/s). I dischi con o senza Ultra-ATA possono essere messi sullo stesso cavo senza degrado della velocità per gli adattatori più veloci. L'interfaccia Ultra-ATA è elettricamente identica alla normale interfaccia Fast-ATA, inclusa la massima lunghezza del cavo. <sect2>ATAPI <p> <nidx>disco!interfacce!ATAPI</nidx> L'ATA Packet Interface venne progettata per gestire i CD-ROM utilizzando la porta IDE e come l'IDE è economica e semplice. <sect2>SCSI <p> <nidx>disco!interfacce!SCSI</nidx> Lo Small Computer System Interface è un'interfaccia dai molti scopi che può essere utilizzata per collegare di tutto, dai dischi, a schiere di dischi, stampanti, scanner e molto altro ancora. Il nome ha una designazione erronea dal momento che è stato usato tradizionalmente nelle fasce alte del mercato come anche nelle workstation dal momento che è adatto a sistemi multi tasking. L'interfaccia standard è larga 8 bit e può indirizzare 8 dispositivi. C'è una versione larga 16 bit che è veloce il doppio con lo stesso clock e può indirizzare 16 dispositivi. L'adattatore conta sempre come dispositivo ed è generalmente il numero 7. È anche possibile avere bus con un'ampiezza di 32 bit ma questo generalmente necessita di doppi cavi per gestire tutte le linee. Il vecchio standard era di 5 MB/s e il recente fast-SCSI l'ha aumentato a 10 MB/s. Recentemente ultra-SCSI, noto anche come Fast-20, è arrivato a velocità di trasferimento di 20MB/s per un bus ampio 8 bit. Il nuovo sistema di segnalazione a basso voltaggio differenziale (LVD) permette queste velocità elevate ed anche cablaggi molto più lunghi di prima. Più recentemente è stato anche proposto uno standard ancora più veloce: SCSI 160/m che è capace di un mostruoso 160 MB/s su un bus ampio 16 bit. Il supporto è ancora scarso ma è sostenuto per un po' di dischi a 10000 RPM che possono trasferire 40 MB/s. Mettere 6 di questi dischi su un RAID manterrebbe questo bus saturo ed inoltre saturerebbe la maggior parte dei bus PCI. Ovviamente questo vale solo per i server di altissimo livello di oggi. Le prestazioni più elevate si traducono in un costo generalmente più alto dell'(E)IDE. L'importanza di terminazioni corrette e di una buona qualità dei cavi non può essere sovraenfatizzata. I dischi SCSI inoltre spesso tendono ad essere di qualità più elevata rispetto ai dischi IDE: spesso è solo una questione di attaccare e staccare il dispositivo; molte persone fanno questo senza spegnere il sistema. Questa caratteristica è molto utile quando avete sistemi multipli e potete solamente spostare i dispositivi da un sistema all'altro qualora uno di questi fallisse per un qualsiasi motivo. C'è un gran numero di documenti che dovreste leggere se utilizzate lo SCSI, lo SCSI HOWTO come del resto le SCSI FAQ postate sulle News di Usenet. Lo SCSI ha inoltre il vantaggio che vi potete connettere facilmente a lettori di nastri per fare il backup dei vostri dati, come anche ad alcune stampanti e scanner. È anche possibile usarlo come una rete molto veloce tra computer dal momento che si possono condividere dispositivi SCSI sullo stesso bus. I lavori continuano ma a causa di problemi nell'assicurare la condivisione della cache tra i diversi computer connessi, non sarà un lavoro da nulla. I numeri SCSI sono anche usati per gestire le priorità. Se diversi dischi richiedono il servizio, viene data priorità al drive con il numero più basso. <sect1>Cablaggio <p> <nidx>disco!cablaggio</nidx> La mia intenzione è quella di non fare troppi commenti sull'hardware ma sento che dovrei fare una piccola nota sul cablaggio. Questo sembrerebbe essere una componente dell'insieme marcatamente di bassa rilevanza tecnologica, ma purtroppo è la causa di molti problemi di frustrazione. Viste le alte velocità di oggi, si dovrebbe pensare piuttosto ad un dispositivo RF con le sue intrinseche necessità di correttezza dell'impedenza. Se non prendete le vostre precauzioni, otterrete affidabilità altamente ridotta o un fallimento totale. Qualche adattatore SCSI è molto più sensibile a ciò rispetto ad altri. Cavi schermati sono ovviamente migliori di quelli non schermati ma il prezzo è molto più alto. Con un po' di attenzione potrete ottenere buone prestazioni da un economico cavo non schermato. <itemize> <!-- dal c't 9/97 --> <item>Per Fast-ATA e Ultra-ATA, la massima lunghezza del cavo è specificata come 45cm (18"). Le linee di dati di tutti e due i canali IDE sono connessi su molte schede, sebbene, in questo modo possono rivelarsi come <bf/un unico/ cavo. In ogni caso i cavi EIDE dovrebbero essere più corti possibile. Se ci sono crash misteriosi o cambiamenti improvvisi dei dati, è opportuno verificare i vostri cavi. Provate una modalità PIO più bassa oppure disconnettete il secondo canale e controllate se il problema persiste. <item> Usate cavi più corti possibile, ma non dimenticate la minima separazione di 30 cm per ultra SCSI e di 60 cm per SCSI differenziale. <item> Evitate lunghi spezzoni tra il cavo ed il drive, collegate il connettore del cavo direttamente al disco senza una prolunga. <item> Limiti nel cablaggio SCSI: <tscreen><verb> Velocità Bus (MHz) | Massima Lunghezza (m) -------------------------------------------------- 5 | 6 10 (fast) | 3 20 (fast-20 / ultra) | 3 (massimo 4 dispositivi), | 1,5 (massimo 8 dispositivi) xx (differenziale) | 25 (massimo 16 dispositivi) -------------------------------------------------- </verb></tscreen> <item> Usate una corretta terminazione per i dispositivi SCSI e le posizioni corrette ad entrambe le estremità della catena SCSI. Ricordate che lo stesso adattatore può avere il terminatore sulla scheda stessa. <item> Non mischiate cavi schermati e cavi non schermati, non avvolgete i cavi attorno al metallo, provate ad evitare vicinanza a parti metalliche lungo il decorso del cablaggio. Qualsiasi discontinuità può causare imprecisioni nell'impedenza che generano riflessione dei segnali che va ad aumentare il rumore nel cavo. Questo problema diventa ancor più grave nel caso dei controller multi-canale. Recentemente qualcuno ha suggerito di usare la plastica con le bolle attorno ai cavi per evitare lo stretto contatto con il metallo, un problema serio nei cabinet affollati. </itemize> Più informazioni sul cablaggio SCSI e sui terminatori possono essere trovate presso <url url="http://resource.simplenet.com/files/68_50_n.htm" name="altre"> pagine sparse per il web. <sect1>Adattatori <p> <nidx>disco!adattatori</nidx> <nidx>disco!adattatori</nidx> Questo è l'altro capo dell'interfaccia dal drive, la parte che è connessa ad un bus del computer. La velocità del bus del computer e quella dei dischi dovrebbe essere vagamente similare, altrimenti avrete un collo di bottiglia nel vostro sistema. Connettere un insieme di dischi RAID 0 ad una scheda ISA è inutile. In questo periodo la maggior parte dei computer è dotata di bus PCI a 32 bit capaci di trasferimenti a 132 MB/s che non dovrebbe rappresentare un collo di bottiglia per la maggior parte della gente per il prossimo futuro. Con il migrare dell'elettronica del disco ai dischi stessi, la parte rimanente che divenne l'interfaccia (E)IDE è così piccola che può essere facilmente inserita nel chipset PCI. L'adattatore SCSI è più complesso e spesso include una propria piccola CPU ed è quindi più costoso e non integrato nei chipset PCI a disposizione in questo periodo. L'evoluzione tecnologica potrebbe cambiare questa situazione. Alcuni adattatori vengono con gestione della cache separata ed intelligenza ma dal momento che ciò dipende principalmente dal sistema operativo, i vantaggi sono in stretta dipendenza con il sistema operativo stesso utilizzato. Alcuni dei più primitivi, che rimarranno senza nome, ne traggono grande vantaggio. Linux, invece, ha così tanti vantaggi di per sè stesso che i guadagni sono molto più scarsi. Mike Neuffer, che fece i driver per i controller DTP, afferma che gli stessi sono abbastanza intelligenti che avendo sufficiente memoria cache, vi porterà una grossa spinta in prestazione e ritiene che la gente che aveva ottenuto piccoli guadagni con controller efficienti non aveva usato un controller di cache intelligente. <sect1>Sistemi Multi Canali <p> <nidx>disco!multi-canali</nidx> Al fine di aumentare il flusso, è necessario identificare i colli di bottiglia più significativi e poi eliminarli. In qualche sistema, in particolare dove c'è un grande numero di dischi connessi, è vantaggioso utilizzare diversi controller che lavorano in parallelo, sia per gli adattatori SCSI che per i controller IDE che normalmente hanno 2 canali incorporati. Linux gestisce questo. Qualche controller RAID dispone di 2 o 3 canali ed è arduo suddividere il caricamento da disco attraverso tutti i canali. In altre parole, se avete due dischi SCSI che volete porre in RAID ed un controller a due canali, dovreste mettere ogni drive su canali separati. <sect1>Sistemi Multi Scheda <p> <nidx>disco!multi-scheda</nidx> Oltre ad avere sia SCSI che IDE sulla stessa macchina, è anche possibile avere più di un controller SCSI. Controllate lo SCSI-HOWTO per quali controller potete combinare. Inoltre è molto probabile che dobbiate dire al kernel di verificare l'esistenza di più di un singolo controller SCSI o IDE. Questo si può fare utilizzando i parametri del kernel quando si fa il boot, ad esempio usando LILO. Controllate gli HOWTO per lo SCSI e per il LILO per capire come farlo. I sistemi multi scheda possono offrire significanti guadagni di velocità se configurate il vostro disco in maniera corretta, specialmente per il RAID0. Assicuratevi di segnalare i controller come anche i dischi, in modo da aggiungere i dischi al dispositivo md RAID nell'ordine corretto. Se il controller 1 è connesso ai dischi <tt/sda/ e <tt/sdc/ mentre il controller 2 ai dischi <tt/sdb/ e <tt/sdd/ otterrete più parallelismo aggiungendo in ordine <tt/sda - sdc - sdb - sdd/ piuttosto che <tt/sda - sdb - sdc - sdd/ perché la lettura o la scrittura su più di un cluster abbraccerebbe verosimilmente due controller. Gli stessi metodi possono essere applicati anche all'IDE. La maggior parte delle schede madri si presenta con 4 porte IDE: <itemize> <item> <tt/hda/ controller primario <item> <tt/hdb/ slave primario <item> <tt/hdc/ controller secondario <item> <tt/hdd/ slave secondario </itemize> in cui i due primari condividono un cavo piatto ed i secondari ne condividono un altro. I chipset moderni li mantengono indipendenti. D'altronde è meglio fare un RAID con ordine <tt/hda - hdc - hdb - hdd/ perché ciò potrebbe presumibilmente parallelizzare ambedue i canali. <sect1>Confronti di Velocità <p> <nidx>disco!paragone di velocità</nidx> Le tavole seguenti sono state messe solo per indicare quali velocità sono possibili. Tutte le velocità di trasferimento sono in MB al secondo e le ampiezze di bus sono misurate in bit. <sect2>Controller <p> <nidx>disco!paragone di velocità!controller</nidx> <tscreen><verb> IDE : 8.3 - 16.7 Ultra-ATA : 33 SCSI : Ampiezza Bus (bit) Velocità Bus (MHz) | 8 16 32 -------------------------------------------------- 5 | 5 10 20 10 (fast) | 10 20 40 20 (fast-20 / ultra) | 20 40 80 40 (fast-40 / ultra-2) | 40 80 -- -------------------------------------------------- </verb></tscreen> <sect2>Tipi di Bus <p> <nidx>disco!paragone di velocità!tipi di bus</nidx> <tscreen><verb> ISA : 8-12 EISA : 33 VESA : 40 (A volte regolato a 50) PCI Ampiezza Bus (bits) Velocità Bus (MHz) | 32 64 -------------------------------------------------- 33 | 132 264 66 | 264 528 -------------------------------------------------- </verb></tscreen> <sect1>Benchmarking <p> <nidx>disco!benchmarking</nidx> Questo è un argomento molto difficile e farò solamente pochi commenti cauti su questo campo minato. Prima di tutto, è più difficile fare benchmark paragonabili che abbiano un qualsiasi significato attuale. Questo comunque non trattiene la gente dal provare. Invece si potrebbe usare il benchmarking per diagnosticare il vostro sistema, per verificare se sta andando tanto veloce quanto dovrebbe, cioè se non sta andando più lento. Inoltre vi aspettereste un aumento significante nel cambiare da un semplice file system ad un RAID, così un mancato guadagno di prestazioni vi dirà che qualcosa non va. Quando provate a fare un benchmark non dovreste avventurarvi da soli, ma controllare <tt/iozone/ e <tt/bonnie/ e leggere la documentazione molto bene. In particolare assicuratevi che la dimensione del vostro buffer sia più grande della dimensione della vostra RAM, altrimenti testerete la vostra RAM piuttosto che i vostri dischi, il che vi riporterà alte prestazioni non realistiche. Un benchmark molto semplice può essere ottenuto utilizzando <tt/hdparm -tT/ il che può essere utilizzato sia sui dischi IDE che sugli SCSI. <!-- Maggiori informazioni riguardo questo arriveranno presto. --> Per maggiori informazioni riguardo il benchmarking ed il software per una serie di piattaforme, controllate la pagine dei benchmark l'<url url="http://www.acnc.com/benchmarks.html" name="ACNC">. <sect1>Confronti <p> <nidx>disco!confronti</nidx> SCSI offre più prestazione di un EIDE ma ad un costo elevato. La terminazione è più complessa ma l'espansione non è molto difficile. Avere più di 4 dischi IDE (in alcuni casi 2) può essere complicato, mentre con il wide SCSI potete averne fino a 15 per adattatore. Qualche adattatore SCSI ha diversi canali, il che rende ulteriormente moltiplicabile il numero di dischi possibile. Per lo SCSI dovrete dedicare un IRQ per adattatore, il quale può controllare fino a 15 dischi. Con l'EIDE avete bisogno di un IRQ per ogni disco e ciò può causare conflitto. RLL e MFM sono in generale troppo vecchi, lenti ed inaffidabili per essere di qualche utilità. <sect1>Sviluppo Futuro <p> <nidx>disco!sviluppo futuro</nidx> <!-- c't 9/97: Questo non è più futuro... L'orientamento generale è per dispositivi veloci e più veloci per qualsiasi aggiornamento nelle specifiche. ATA-3 è appena uscita ma non definisce trasferimenti più veloci, cosa che potrebbe accadere in ATA-4 che è in lavorazione. La Quantum ha già rilasciato il DMA/33 ed i recenti chipset delle piastre madri ora gestiscono questo standard. --> Lo SCSI-3 è in lavorazione e speriamo venga rilasciato presto. Dispositivi più veloci sono già stati annunciati, recentemente sono state proposte le mostruose specifiche da 80 MB/s e 160 MB/s. Queste sono basate sullo standard Ultra-2 (che utilizzava un clock a 40 MHz) combinato con un cavo a 16 bit. Alcuni produttori annunciano già dispositivi SCSI-3 ma ciò è in realtà abbastanza prematuro visto che lo standard è ancora da consolidare. Con l'aumentare delle velocità di trasferimento, il punto di saturazione del bus PCI si sta avvicinando. Attualmente la versione a 64 bit ha un limite di 264 MB/s. La velocità di trasferimento in futuro sarà aumentata dall'attuale 33MHz a 66MHz, aumentando quindi il limite a 528 MB/s. Un altro orientamento è per dischi sempre più grandi. Ho sentito che è possibile ottenere 55 GB su un singolo disco sebbene questo sia molto costoso. Attualmente il dispositivo di memorizzazione migliore per le vostre tasche è di circa 6.4 GB ma anche questo è in continuo aumento. L'introduzione del DVD avrà nel prossimo futuro un grande impatto, con circa 20 GB su un singolo disco potete avere una copia completa anche dei maggiori siti FTP intorno al mondo. L'unica cosa di cui siamo sicuramente certi riguardo al futuro è che se non sarà migliore, sarà sicuramente più grande. Addendum: poco dopo avere iniziato a scrivere questo documento, ho letto che la massima velocità utile per un CD-ROM era 20x dal momento che la stabilità meccanica sarebbe stata un problema molto grande a queste velocità. Dopo circa un mese furono disponibili CD-ROM a 24x... Ora potete ottenere un 40x e non c'è dubbio che velocità più alte siano in produzione. <sect1>Raccomandazioni <label id="recommendations"> <p> <nidx>disco!raccomandazioni</nidx> La mia opinione personale è che EIDE o Ultra ATA è il modo migliore per cominciare un vostro sistema, specialmente se intendete usare anche il DOS sulla vostra macchina. Se intendete espandere il vostro sistema nel corso degli anni o intendete utilizzarlo come server, vi suggererei caldamente di prendere dischi SCSI. Attualmente wide SCSI è un po' più costoso. Otterrete di più col vostro denaro mettendo uno SCSI di ampiezza standard. Ci sono inoltre versioni differenziali del bus SCSI il che aumenta la lunghezza massima del cavo. L'aumento di prezzo è ancor più sostanziale e non può essere consigliato ad utenti normali. Oltre ai dischi, potete anche connettere qualche tipo di scanner e stampante ed anche le reti ad un bus SCSI. Inoltre ricordatevi che espandere il vostro sistema necessiterà anche di più potenza, così assicuratevi che l'alimentazione sia adatta al lavoro e che voi abbiate raffreddamento sufficiente. Molti dischi SCSI offrono l'opzione di avviamento sequenziale, il che è una buona idea per grandi sistemi. Controllate anche <ref id="power-heating" name="Alimentazione e Riscaldamento">. <!-- Non voglio dire molto riguardo hardware a basso livello ma devo fare un'eccezione per lo SCSI. Alcune persone hanno un po' di problemi con questo e nella maggior parte dei casi la causa è il cablaggio sotto gli standard. Si sa che alcuni adattatori SCSI sono molto sensibili alla qualità dei cavi, controllate lo SCSI HOWTO. L'importanza di un corretto cablaggio e terminazione non può essere sovraenfatizzata, leggete i manuali attentamente. Inoltre ora con lo standard Ultra a 20MHz dovete ricordarvi che c'è anche una minima distanza di 30cm tra i dispositivi. --> <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --> <!-- <sect>Considerazioni <p> <nidx>disco!considerazioni</nidx> Qui, il punto di inizio sarà considerare dove siete e cosa volete fare. Il tipico sistema casalingo, inizia con hardware esistente e l'utente da poco convertito a Linux vorrà ottenere il massimo dall'hardware esistente. Qualcuno, nell'intenzione di mettere su un sistema per uno scopo specifico (come un Fornitore di Accessi Internet) dovrà considerare quale sarà lo scopo e comprare di conseguenza. Essendo ambizioso, cercherò di ricoprire l'intero campo. Vari scopi avranno anche diverse necessità in relazione alla collocazione del file system sui dischi; giusto per esempio, una grossa macchina per multiutenza sarebbe sicuramente migliore con la directory <tt>/home</tt> su un disco separato. In generale, per prestazione, è vantaggioso dividere più parti su quanti più dischi possibile, ma c'è un limitato numero di dispositivi che può vivere su un bus SCSI e non c'è da dimenticare il costo. Ugualmente importante, il mantenimento del file system diventa più complicato con l'aumentare del numero delle partizioni e dei dischi. --> <sect>Struttura del File System <p> <nidx>disco!struttura del file system</nidx> Linux è stato multi tasking dall'inizio, da quando un bel numero di programmi interagivano e giravano ininterrottamente. In ogni caso è importante mantenere una struttura dei file su cui tutti potrebbero essere d'accordo, in modo che il sistema trovi i dati dove ci si aspetta di trovarli. Storicamente ci sono stati così tanti standard differenti che si è creata confusione e la compatibilità è stata mantenuta usando collegamenti simbolici, il che ha fatto ancora più confusione e la struttura è finita col sembrare un labirinto. <nidx>disco!FSSTND</nidx> Nel caso di Linux, uno standard chiamato il <em/File Systems Standard/ (FSSTND) fu fortunatamente accettato all'inizio e oggi è utilizzato dalle maggiori distribuzioni Linux. <nidx>disco!FHS</nidx> Più tardi, venne deciso di creare un successore che supportasse anche altri sistemi operativi oltre al solo Linux e venne chiamato <em/Filesystem Hierarchy Standard/ (FHS) attualmente alla versione 2.1. Questo standard è in continua evoluzione e sarà quanto prima adottato dalle distribuzioni Linux. Vi consiglio di non sviluppare una vostra struttura personale visto che una marea di pensieri è servita per avere gli standard e molti pacchetti si conformano a questi standard. Invece, potete leggere di più su questo presso l'home page del <url url="http://www.pathname.com/fhs" name="FHS">. Questo HOWTO si sforza di conformarsi al FSSTND e perseguirà il FHS quando le distribuzioni saranno disponibili. <sect1>Caratteristiche del File System <p> <nidx>disco!caratteristiche del file system</nidx> Le varie parti di FSSTND hanno diverse necessità riguardo la velocità, l'affidabilità e la dimensione, ad esempio perdere root è un dolore ma può essere facilmente recuperabile. Perdere <tt>/var/spool/mail</tt> è una cosa abbastanza differente. Ecco un veloce sommario di alcune parti essenziali e delle loro proprietà e necessità. Badate che questa è solamente una guida e ci potrebbero essere file binari nelle directory <tt>etc</tt> e <tt>lib</tt>, librerie nelle directory <tt>bin</tt> e così via. <sect2>Swap <p> <nidx>disco!swap</nidx> <descrip> <tag/Velocità/ Il massimo! Sebbene facciate troppo affidamento sullo swap, dovreste considerare di comprare più RAM. Notate comunque, che su molte schede madri, la cache non funzionerà se la RAM è superiore a 128 MB. <tag/Dimensione/ Stesso discorso della RAM. Un algoritmo veloce e sporco: un po' come per il tè: 16 MB per la macchina e 2 MB per ogni utente. Il kernel più piccolo gira in un mega ma sta stretto. Usate 4 MB per il lavoro in generale e applicazioni leggere, 8 MB per X11 o GCC o 16 MB per stare più comodi. (Si sa che l'autore prende tazze di tè abbastanza potenti...) Alcuni suggeriscono che lo spazio di swap debba essere 1-2 volte la dimensione della RAM, evidenziando che la localizzazione dei programmi determina quanto sia efficace lo spazio swap aggiunto. Notate che usare lo stesso algoritmo come per 4BSD è abbastanza scorretto dal momento che Linux non riserva spazio per pagine in core. Un approccio più preciso è considerare lo spazio di swap più la RAM come il vostro insieme lavorativo totale, così se sapete quanto spazio, al massimo, vi serve, sottraete la RAM fisica che avete e che è lo spazio di swap di cui avrete bisogno. C'è inoltre un'altra ragione per essere generosi quando dimensionate il vostro spazio di swap: i furti di memoria. Programmi che funzionano male, che non liberano la memoria che riservano per loro stessi si dice che provocano un furto di memoria. Questa allocazione rimane anche dopo che il programma incriminato è terminato e quindi questo è fonte di consumo di memoria. Una volta che tutta la RAM fisica e lo spazio di swap sono esaurite, l'unica soluzione è fare un reboot e cominciare da capo. Per fortuna questi programmi non sono così comuni ma se voi ne doveste incontrare qualcuno, troverete che uno spazio swap extra, vi prenderà più tempo tra i riavvii. Ricordate inoltre di prendere in considerazione il tipo di programma che usate. Alcuni programmi che hanno grandi ambienti di lavoro, come quelli di modellazione agli elementi finiti (FEM), hanno raffinatissime strutture di dati caricate nella RAM piuttosto che lavorare esplicitamente sui file. Programmi per i dati e per il calcolo complessi come questi, causeranno swapping eccessivo se avete meno RAM del necessario. Altri tipi di programmi possono bloccare le loro pagine nella RAM. Questo può accadere per motivi di sicurezza, prevenendo copie dei dati che raggiungono un dispositivo di swap o per motivi di prestazioni come nel modulo in tempo reale. In ogni caso, bloccare queste pagine, riduce il quantitativo di memoria swappabile rimanente e può fare in modo che il sistema swappi prima di quanto ci si possa aspettare. Nel <tt/man 8 mkswap/ c'è spiegato che ogni partizione di swap può essere massimo 128 MB in dimensione per macchine a 32-bit e 256 MB per macchine a 64-bit. <tag/Affidabilità/ Media. Quando fallisce sapete lo fa rapidamente e il fallimento vi costerà qualche perdita di lavoro. Salvate spesso, no? <tag/Nota 1/ Linux offre la possibilità di distribuire lo swapping su più dispositivi, una caratteristica che vi può far guadagnare parecchio. Controllate "<tt>man 8 swapon</tt>" per maggiori dettagli. Tuttavia, il guadagno di utilizzare un disco RAID per lo <tt>swap</tt> potrebbe essere vanificato dalla maggiore pesantezza del codice di RAID. Perciò il file <tt>/etc/fstab</tt> potrebbe somigliare a questo: <tscreen><verb> /dev/sda1 swap swap pri=1 0 0 /dev/sdc1 swap swap pri=1 0 0 </verb></tscreen> Ricordate che il file <tt/fstab/ è <em/molto/ sensibile alla formattazione utilizzata, leggete le pagine man attentamente e <em/non/ fate un semplice taglia e incolla delle righe qui sopra. <tag/Nota 2/ Qualcuno per swappare utilizza un RAM disk o qualche altro file system. In ogni caso, se non avete impostazioni o necessità inusuali, difficilmente trarrete vantaggio da questo e questo porta ad usare la memoria a disposizione per le operazioni di cache e buffer. <tag/Nota 2b/ C'è un'eccezione: su un numero di schede madri mal disegnate, la memoria cache integrata su piastra madre non è in grado di porre in cache tutta la RAM che può essere indirizzata. Molte schede madri vecchie, erano in grado di accettare 128 MB di RAM ma potevano porre in cache solo le prime 64. In questi casi, aumenterebbe la prestazione se voi utilizzaste gli ultimi 64 MB di RAM come swap basato su RAMdisk o come altro supporto di memorizzazione temporaneo. </descrip> <sect2>Archiviazione Temporanea (<tt>/tmp</tt> e <tt>/var/tmp</tt>) <p> <nidx>disco!archiviazione temporanea</nidx> <descrip> <tag/Velocità/ Molto alta. Su un disco/partizione separati questo generalmente ridurrà la frammentazione, sebbene <tt/ext2fs/ gestisca la frammentazione abbastanza bene. <tag/Dimensione/ Difficile a dirsi, piccoli sistemi girano facilmente con appena pochi MB ma questi sono noti posti di nascondiglio per tenere lontano dalla vista di occhi curiosi e dal rinforzo della quota e possono crescere senza controllo su macchine più grandi. Suggerito: piccole macchine casalinghe: 32 MB, piccoli server: 128 MB e grosse macchine fino a 500 MB (la macchina che l'autore usa al lavoro ha 1100 utenti e una <tt>/tmp</tt> di 300 MB). Controllate queste directory, non solo per file nascosti ma anche per vecchi file. Preparatevi anche al fatto che queste partizioni potrebbero essere la prima ragione che potreste avere per ridimensionare le vostre partizioni. <tag/Affidabilità/ Bassa. Quando queste aree falliscono o si riempiono, spesso i programmi emetteranno un avvertimento, oppure falliranno splendidamente. Errori di file casuali saranno ovviamente più seri, non importa quale area file sia. <tag/File/ Generalmente piccoli file ma potrebbe esservene un gran numero. Normalmente i programmi cancellano i loro file <tt>tmp</tt> ma se casualmente interviene un'interruzione, possono sopravvivere. Molte distribuzioni hanno una linea di condotta riguardo la pulizia dei file <tt>tmp</tt> all'avvio, quindi potreste voler controllare quale sia la vostra configurazione. <tag/Nota1/ In FSSTND c'è una nota riguardo al mettere <tt>/tmp</tt> su RAM disk. Questo comunque non è consigliato per le stesse ragioni espresse al riguardo dello swap. Inoltre, come segnalato prima, non utilizzate dispositivi flash RAM per queste directory. Ci si dovrebbe ricordare inoltre che qualche sistema è organizzato in modo da pulire automaticamente le aree <tt>tmp</tt> al riavvio. <tag/Nota2/ I sistemi più vecchi avevano un <tt>/usr/tmp</tt> ma questo non è consigliato e, per motivi storici, un link simbolico lo fa puntare ad una delle altre aree <tt>tmp</tt>. </descrip> (* That was 50 lines, I am home and dry! *) <sect2>Aree di Coda (<tt>/var/spool/news</tt> e <tt>/var/spool/mail</tt>) <p> <nidx>disco!aree di coda</nidx> <descrip> <tag/Velocità/ Alta, specialmente su grossi server di news. Il trasferimento e la scadenza delle news usano molto il disco e beneficieranno di dischi veloci. Code di stampa: bassa. Considerate RAID0 per le news. <tag/Dimensione/ Per i server di news/posta: quanta ve ne potete permettere. Per sistemi ad utente singolo pochi MB saranno sufficienti se leggete in continuazione. Iscriversi ad un list server e prendersi una vacanza, non è proprio una buona idea (ancora, la macchina che uso al lavoro ha 100 MB riservati per l'intera <tt>/var/spool</tt>). <tag/Affidabilità/ Posta: molto alta, news: media, coda di stampa: bassa. Se la vostra posta è molto importante (non lo è forse sempre?) considerate RAID per l'affidabilità. <tag/File/ Generalmente una grande quantità di file che in dimensione sono intorno a pochi KB. I file nella coda di stampa, possono d'altra parte essere pochi ma abbastanza grandi. <tag/Nota/ Qualche documentazione sulle news, suggerisce di mettere tutti i file <tt>.overview</tt> su un disco separato dai file delle news, controllate tutte le FAQ sulle news per più informazioni. La dimensione tipica è di circa il 3-10 per cento di tutto lo spazio di coda. </descrip> <sect2>Directory Home (<tt>/home</tt>) <label id="home-dirs"> <p> <nidx>disco!directory home</nidx> <descrip> <tag/Velocità/ Media. Sebbene molti programmi utilizzino <tt>/tmp</tt> per archiviare temporaneamente, altri come alcuni lettori di news, aggiornano frequentemente i file nella directory home, il che può essere notato su ampi sistemi multitenti. Per piccoli sistemi, questo non è un problema. <tag/Dimensione/ Difficile! Su qualche sistema, la gente paga per archiviare, perciò questo generalmente è una questione di soldi. Grossi sistemi come <url url="http://www.nyx.net/" name="nyx.net"> (che è un servizio di Internet gratuito con posta, news e servizi WWW) girano con successo con un limite suggerito di 100 KB per utente e 300 KB come massimo applicato. Gli ISP commerciali offrono tipicamente circa 5 MB nei loro pacchetti standard di abbonamento. Se comunque scrivete libri o fate del lavoro grafico, le necessità si gonfiano velocemente. <tag/Affidabilità/ Variabile. Perdere <tt>/home</tt> su una macchina con un singolo utente è fastidioso ma quando 20000 utenti ti chiamano per dirti che le proprie directory home sono andate è più che fastidioso. Per alcuni, la propria fonte di sostentamento risiede qui. Fate backup regolari ovviamente, no? <tag/File/ Ugualmente difficile. Il setup minimo per un singolo utente è di circa una dozzina di file, di dimensione di 0.5 - 5 KB. I file relativi al progetto, possono essere sufficientemente numerosi. <tag/Nota1/ Potreste considerare RAID sia per la velocità che per l'affidabilità. Se volete velocità estremamente alta ed affidabilità, dovreste vedere altri sistemi operativi e piattaforme hardware (tolleranza ai guasti ecc.). <tag/Nota2/ I navigatori spesso utilizzano una cache locale per aumentare la velocità di navigazione e questa cache può occupare una quantità di spazio sostanziale e causare parecchia attività del disco. Ci sono molti metodi per evitare questi colpi alle prestazioni, per maggiori informazioni guardate le sezioni sulle <ref id="server-home-dirs" name="Directory Home"> e <ref id="www" name="WWW">. <tag/Nota3/ Gli utenti spesso tendono ad utilizzare tutto lo spazio disponibile sulla partizione <tt>/home</tt>. Il sottosistema Quota di Linux è in grado di limitare il numero di blocchi e il numero di inode che l'ID di un singolo utente può allocare su una base di un filesystem. Guardate il <url url="http://metalab.unc.edu/LDP/mini" name="Linux Quota mini-HOWTO"> di Albert M.C. Tam <tt/bertie (at) scn.org/ per i dettagli sull'impostazione. </descrip> <sect2>File binari principali ( <tt>/usr/bin</tt> e <tt>/usr/local/bin</tt>)<label id="main-binaries"> <p> <nidx>disco!binari principali</nidx> <descrip> <tag/Velocità/ Bassa. Spesso i dati sono più grandi dei programmi che sono comunque richiesti su domanda, quindi questo non è rischioso per la velocità. Testimoni i live file system su CD ROM. <tag/Dimensione/ Il limite è il cielo ma 200 MB dovrebbero darvi molto di quello di cui avete bisogno per un sistema completo. Un grande sistema, per sviluppo software o un server dai molti fini dovrebbe forse riservare 500MB sia per l'installazione che per la crescita. <tag/Affidabilità/ Bassa. è generalmente montato sotto root dove tutti gli essenziali sono raccolti. Tuttavia perdere tutti i file binari fa male... <tag/File/ Variabile ma generalmente dell'ordine di 10 - 100 KB. </descrip> <sect2>Librerie ( <tt>/usr/lib</tt> e <tt>/usr/local/lib</tt>) <p> <nidx>disco!librerie</nidx> <descrip> <tag/Velocità/ Media. Questi sono grosse trance di dati caricati spesso, spaziano dai file oggetto ai font, tutti suscettibili di rigonfiamento. Spesso questi sono anche caricati nella loro interezza e la velocità è abbastanza utilizzata qui. <tag/Dimensione/ Variabile. Qui, ad esempio, $egrave; dove gli elaboratori di testo archiviano i loro immensi file di font. I pochi da cui ho avuto un feedback su questo, riportano circa 70 MB nelle loro varie directory <tt>lib</tt>. Un'installazione abbastanza completa della Debian 1.2, può arrivare a circa 250 MB, che può essere preso come un limite superiore realistico. I seguenti sono alcuni dei più grossi consumatori di spazio su disco: GCC, Emacs, TeX/LaTeX, X11 e perl. <tag/Affidabilità/ Bassa. Controllate il punto <ref id="main-binaries" name="File binari principali">. <tag/File/ Generalmente grossi, di cui molti di dimensioni dell'ordine di 1 MB. <tag/Nota/ Per motivi storici, qualche programma tiene gli eseguibili nelle aree lib. Un esempio è GCC che ha grossi file binari nella gerarchia <tt>/usr/lib/gcc/lib</tt>. </descrip> <sect2>Boot <p> <nidx>disco!boot</nidx> <descrip> <tag/Velocità/ Abbastanza bassa: dopo tutto il boot non avviene così di frequente e caricare il kernel è solo una minima frazione del tempo che si impiega per rendere operativo il sistema. <tag/Dimensione/ Abbastanza piccola, un'immagine completa con qualche extra entra in un singolo floppy, così 5 MB dovrebbero essere sufficienti. <tag/Affidabilità/ Alta. Guardate la sezione sotto su Root. <tag/Nota 1/ La parte più importante riguardo la partizione di boot è che su molti sistemi, <em/deve/ risiedere al di sotto del cilindro 1023. Questa è una limitazione BIOS che Linux non riesce a gestire. </descrip> <sect2>Root <p> <nidx>disco!root</nidx> <descrip> <tag/Velocità/ Abbastanza bassa: qui c'è solo il minimo indispensabile, la maggior parte del quale gira solo all'inizio. <tag/Dimensione/ Relativamente piccola. In ogni caso è una buona idea mantenere qualche file di recupero e utilità sulla partizione di root e qualcuno ci tiene diverse versioni del kernel. <tag/Affidabilità/ Alta. Un fallimento qui causerà probabilmente un gran dolore e potresti finire col perdere del tempo a recuperare la tua partizione di boot. Con un po' di pratica potete naturalmente farlo in un'ora o giù di lì, ma penso che anche se avete un po' di pratica nel farlo, state anche facendo qualcosa di sbagliato. Naturalmente avete un disco di recupero no? Ovviamente questo è stato aggiornato da quando avete fatto l'installazione iniziale? Ci sono molti dischi di recupero già fatti come anche strumenti per la creazione di dischi di recupero che potreste trovare validi. Presumibilmente investire del tempo in questi vi salva dal diventare un esperto nel recupero di root. <tag/Nota 1/ Se avete molti dischi, potreste considerare di mettere una partizione boot di emergenza di ricambio su un disco fisico separato. Vi costerà un po' di spazio ma se il vostro setup è molto vasto il tempo risparmiato, nel caso qualcosa fallisse, varrebbe molto lo spazio extra. <tag/Nota 2/ Per semplicità e anche nel caso di emergenza non è consigliabile di mettere la partizione root su un sistema RAID a livello 0. Inoltre se utilizzate il RAID per la vostra partizione di boot, dovete ricordare che sia abilitata l'opzione <tt/md/ per il vostro kernel di emergenza. <tag/Nota 3/ Per semplicità è abbastanza comune mantenere Boot e Root sulla stessa partizione. Se fate ciò, allora al fine di fare il boot da LILO, è importante che i file di boot essenziali risiedano tutti entro il cilindro 1023. Questo include il kernel come anche i file che si trovano in <tt>/boot</tt>. </descrip> <sect2>DOS ecc. <p> <nidx>disco!questioni relative al DOS</nidx> A rischio di apparire eretico ho incluso questa piccola sezione riguardo un qualcosa contro cui molti di quelli che leggono questo documento hanno forti sensazioni. Sfortunatamente molti componenti hardware li troviamo con setup e mezzi di mantenimento basati su questi sistemi, quindi ecco qui. <descrip> <tag/Velocità/ Molto bassa. I sistemi in questione non sono famosi per la velocità, quindi c'è un piccolo appunto sull'utilizzo di dischi di prima qualità. Il multitasking o il multi-threading non sono disponibili, quindi il comando di agevolazione di accodaggio nei dischi SCSI non è una cosa di cui potrete trarre vantaggio. Se avete un vecchio disco IDE sarà sufficientemente buono. L'eccezione è in qualche modo Win95 e ancor di più NT che hanno supporto multi-threading che teoricamente dovrebbe essere in grado di trarre vantaggio delle più avanzate caratteristiche offerte dai dispositivi SCSI. <tag/Dimensione/ La compagnia che sta dietro questi sistemi operativi non è famosa per scrivere codice stringato, così dovete essere preparati a spendere poche decine di MB a seconda di quale versione installate del DOS o di Windows. Con una vecchia versione di DOS o Windows potreste fare entrare tutto in 50 MB. <tag/Affidabilità/ Ha-ha. Visto che la catena non è più forte dell'anello più debole, potete usare qualsiasi vecchio disco. Dal momento che è più facile che il SO si scombini da solo, piuttosto che il drive si autodistrugga, imparerete presto l'importanza di backup qui. Mettetela in un altro modo: "<it/La vostra missione, se doveste accettarla, è di fare funzionare questa partizione. La garanzia si autodistruggerà tra 10 secondi.../" Recentemente mi è stato chiesto di giustificare le mie lamentele in questa sede. Prima di tutto non sto cercando misere scuse per il Dos e Windows come sistemi operativi. Secondariamente ci sono vari articoli legali che devono essere presi in considerazione. Dire che c'è una relazione tra le due ultime frasi è solamente un vaneggiamento paranoide. Di sicuro. Invece offrirò allo stimato lettore un po' di parole chiavi: DOS 4.0, DOS 6.x e vari mezzi di compressione del disco che rimarranno senza nome. </descrip> <sect1>Spiegazione dei termini <p> <nidx>disco!spiegazione dei termini</nidx> Ovviamente più veloce è meglio è, ma spesso il felice installatore di Linux ha svariati dischi di varia velocità e affidabilità, così anche se questo documento descrive la prestazione come 'veloce' o 'lenta' è solamente una rozza guida dal momento che non è determinabile alcun tipo di precisione più fine. Anche se ci sono dei dettagli che si dovrebbero ricordare: <sect2>Velocità <label id="speed"> <p> <nidx>disco!spiegazione dei termini!velocità</nidx> Questa è realmente una confusa commistione di svariati termini: carico della CPU, impostazioni generali del trasferimento, tempo di accesso al disco e velocità di trasferimento. È nella reale natura della regolazione che non c'è un optimum fisso e in molti casi il prezzo è il fattore che fa la differenza. Il carico della CPU è rilevante solo per i sistemi IDE dove è la CPU che esegue da sola il trasferimento, ma è generalmente bassa per lo SCSI, controllate la documentazione SCSI per i valori reali. Anche il tempo di accesso al disco è piccolo, generalmente dell'ordine del millisecondo. Questo comunque non è un problema se usate comandi di accodamento su SCSI, dove sovrapponete comandi mantenendo il bus occupato per tutto il tempo. Gli spool delle news sono un caso speciale consistente in un grande numero di file normalmente piccoli, così in questo caso il tempo di accesso può divenire molto significativo. Ci sono due parametri principali che sono di interesse qui: <descrip> <tag/L'accesso/ è generalmente definito come il tempo che occorre alla testina di lettura/scrittura per saltare da una traccia ad un'altra. Questo parametro è importante quando si ha a che fare con un grande numero di piccoli file come visto nei file di spool. C'è inoltre l'ulteriore ritardo di accesso prima che il settore desiderato ruoti in posizione sotto la testina. Questo ritardo dipende dalla velocità angolare del disco ed ecco perché a volte questo parametro è riportato per i dischi. I valori comuni sono 4500, 5400 e 7200 RPM (rotazioni al minuto). RPM più alti riducono il tempo di accesso ma ad un costo sostanziale. Inoltre dischi che lavorano a 7200 RPM si sa che sono rumorosi e che generano un grande calore, fattore che dovrebbe essere tenuto in considerazione se state costruendo un grande insieme o una "batteria di dischi". Molto di recente sono entrati nel mercato dischi che lavorano a 10000 RPM e qui le richieste di raffreddamento sono ancora più strette e vengono date pochissime indicazioni per il flusso d'aria. <tag/Il trasferimento/ è generalmente espresso in megabyte al secondo. Questo parametro è importante quando si utilizzano grandi file che devono essere trasferiti. I file di libreria, i dizionari e i file di immagine sono un esempio di questo. I dischi che posseggono alta velocità rotazionale, normalmente hanno anche trasferimenti veloci visto che la velocità di trasferimento è proporzionale alla velocità angolare per la stessa densità di settore. </descrip> È inoltre importante leggere le specifiche per i dischi molto attentamente e noterete che la massima velocità di trasferimento è spesso riportata intendendo i trasferimenti dalla cache integrata (burst speed) e <em>non</em> direttamente dalla superficie del disco (sustained speed). Guardate anche la sezione sull' <ref id="power-heating" name="Alimentazione e riscaldamento">. <sect2>Affidabilità <p> <nidx>disco!spiegazione dei termini!affidabilità</nidx> Naturalmente nessuno vorrebbe dischi con bassa affidabilità ma uno farebbe bene a giudicare vecchi dischi come inaffidabili. Inoltre per scopi RAID (controllate le informazioni pertinenti) è consigliato utilizzare un insieme misto di dischi così che crash simultanei di più dischi possano diventare meno probabili. Fino ad oggi ho avuto notizia di un solo rapporto di fallimento totale del file system, ma qui l'hardware instabile è sembrato essere la causa dei problemi. Anche se i dischi sono economici al giorno d'oggi, la gente ancora sottostima il valore dei contenuti dei dischi. Se avete bisogno di affidabilità più alta, assicuratevi di rimpiazzare i vecchi dischi e mantenete i ricambi. Non è inusuale che i dischi possano lavorare più o meno continuamente per anni ed anni ma ciò che spesso uccide i dischi alla fine sono i cicli di alimentazione. <sect2>File <p> <nidx>isco!spiegazione dei termini!file</nidx> La dimensione media dei file è importante al fine di decidere i paramentri del disco più appropriati. Un grande numero di piccoli file fa sì che il tempo di accesso divenga importante, invece per grossi file diventa importante la velocità di trasferimento. Il comando di accodamento nei dispositivi SCSI è molto comodo per maneggiare un grosso numero di piccoli file, ma per il trasferimento l'EIDE non è così lontano dallo SCSI e normalmente molto più economico dello SCSI. <sect>File System <p> <nidx>disco!file system</nidx> 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. <sect1>File system per scopi generali <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. <sect2><tt/minix/ <p> <nidx>disco!file system!minix</nidx> 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. <sect2><tt/xiafs/ e <tt/extfs/ <p> <nidx>disco!file system!xiafs</nidx> <nidx>disco!file system!extfs</nidx> Questi sono ugualmente vecchi e sono caduti in disuso e non sono più consigliati. <sect2><tt/ext2fs/ <p> <nidx>disco!file system!ext2fs</nidx> 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 <url url="http://web.mit.edu/tytso/www/linux/ext2.htm" name="ext2fs"> <sect2><tt/ufs/ <p> <nidx>disco!file system!ufs</nidx> 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. <sect2><tt/efs/ <p> <nidx>disco!file system!efs</nidx> 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 <url url="http://aeschi.ch.eu.org/efs/" name="Linux extent file system"> <sect2><tt/reiserfs/ <p> <nidx>disco!file system!reiserfs</nidx> <nidx>disco!file system!basato su struttura ad albero</nidx> Dal 23 Luglio 1997, Hans Reiser <tt/reiser (at) RICOCHET.NET/ ha messo su web il sorgente del suo <url url="http://idiom.com/˜beverly/reiserfs.html" name="reiserfs"> basato su una struttura ad albero. Sebbene il suo file system abbia delle caratteristiche veramente interessanti e sia molto più veloce dell'<tt/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. <sect2><tt/enh-fs/ <p> <nidx>disco!file system!enhanced fs</nidx> Attualmente in stadio alfa, il progetto <url url="http://www.coker.com.au/˜russel/enh-fs.html" name="Enhanced File System"> punta a combinare su un unico livello il file system e la gestione del disco. <sect1>File System Microsoft <p> <nidx>disco!file system!Microsoft</nidx> <nidx>disco!file system!confusione</nidx> Questa compagnia è responsabile di molte cose, tra cui alcuni file system, tanto che alla fine ha causato confusioni. <sect2><tt/fat/ <p> <nidx>disco!file system!fat</nidx> In realtà ci sono 2 <tt/fat/, <tt/fat12/ e <tt/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 <tt/fat/ non potete avere partizioni più grandi di 2 GB. <sect2><tt/fat32/ <p> <nidx>disco!file system!fat32</nidx> Dopo circa 10 anni la Microsoft realizzò cosa fosse la <tt/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ò. <sect2><tt/vfat/ <p> <nidx>disco!file system!vfat</nidx> Nello stesso periodo in cui Microsoft lanciò la <tt/fat32/, aggiunsero anche il supporto per i nomi lunghi dei file, conosciuto come <tt/vfat/. Linux legge partizioni <tt/vfat/ e <tt/fat32/ mediante mount con il tipo <tt/vfat/. <sect2><tt/ntfs/ <p> <nidx>disco!file system!ntfs</nidx> 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. <sect1>File system per il Logging e il Journaling <p> <nidx>disco!file system!logging file system</nidx> <nidx>disco!file system!journaling file system</nidx> 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 <em/logging/ tengono traccia dei cambiamenti fatti sia ai dati chee agli inode, mentre i file system che effettuano <em/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. <itemize> <item>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 <url url="ftp://ftp.yggdrasil.com/private/adam" name="the Yggdrasil ftp server"> dove possono essere trovate speciali versioni con patch del kernel. <item>Un altro progetto è il <url url="http://collective.cpoint.net/lfs/" name="Linux log-structured Filesystem Project"> che è anch'esso tristemente sospeso. Nonostante ciò questa pagina contiene parecchie informazioni sull'argomento. <item>Infine c'è il <url url="http://www.complang.tuwien.ac.at/czezatke/lfs.html" name="dtfs -- A Log-Structured Filesystem For Linux"> che sembra crescere forte. Ancora in alfa ma sufficientemente completo da far girare programmi su questo file system. </itemize> <sect1>File System di sola lettura <p> <nidx>disco!file system!file system di sola lettura</nidx> 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. <nidx>disco!file system!CD-ROM</nidx> <nidx>disco!file system!DVD</nidx> <nidx>disco!file system!loopback</nidx> 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. <nidx>disco!file system!file system rom</nidx> <nidx>disco!file system!romfs</nidx> C'è un <tt/romfs/ per Linux ma visto che non è relativo al disco, più nulla potrà essere detto relativamente a questo in questa sede. <sect2><tt/High Sierra/ <p> <nidx>disco!file system!High Sierra</nidx> Questo fu uno dei più giovani standard per i formati CD-ROM, chiamato così forse dall'albergo in cui si raggiunse l'ultimo accordo. <tt/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 <tt/High Sierra/ rimane il comune precursore ed è quindi ancora ampiamente supportato. <sect2><tt/iso9660/ <p> <nidx>disco!file system!iso9660</nidx> L'International Standards Organisation fece le proprie estensioni e formalizzò lo standard nel quale noi riconosciamo lo standard <tt/iso9660/. Il file system Linux iso9660 gestisce sia le estensioni High Sierra che quelle <tt/Rock Ridge/. <sect2><tt/Rock Ridge/ <p> <nidx>disco!file system!Rock Ridge</nidx> Non tutti accettano limiti come i nomi corti e assenza di permessi, così molto presto sopraggiunsero le estensioni <tt/Rock Ridge/ per rettificare queste mancanze. <sect2><tt/Joliet/ <p> <nidx>disco!file system!Joliet</nidx> 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 <tt/Joliet/. Linux gestisce questi standard nei kernel 2.0.34 o superiori. Dovete abilitare l'NLS per usarlo. <sect2>Trivia <p> <nidx>disco!file system!Trivia</nidx> 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". <sect2><tt/UDF/ <p> <nidx>disco!file system!UDF</nidx> 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'<tt/iso9660/ e sarà richiesto per il DVD. Attualmente non è nel kernel standard di Linux ma un progetto è in corso per fare un <url url="http://trylinux.com/projects/udf/index/htm" name="driver UDF"> per Linux. Patch e documentazione sono disponibili. <sect1>File System di Rete <p> <nidx>disco!file system!file system di rete</nidx> 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. <sect2><tt/NFS/ <p> <nidx>disco!file system!NFS</nidx> 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 <tt/NFS/ che oscillano dalle prestazioni alla sicurezza, ma in ogni caso ciò si è stabilizzato. <sect2><tt/AFS/ <p> <nidx>disco!file system!AFS</nidx> Questo è un sistema che permette un'efficiente condivisione di file attraverso ampie reti. Iniziato come un progetto accademico, è oggi venduto da <url url="http://www.transarc.com" name="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 (<htmlurl url="mailto:linux-afs@mit.edu" name="linux-afs@mit.edu">) che è aperta al pubblico. Richieste per partecipare alla lista dovrebbero essere spedite a <htmlurl url="mailto:linux-afs-request@mit.edu" name="linux-afs-request@mit.edu"> ed infine si dovrebbero riportare i bug a <htmlurl url="mailto:linux-afs-bugs@mit.edu" name="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'<url url="http://www.stacken.kth.se/projekt/arla" name="Arla homepage"> per maggiori informazioni come anche per la documentazione. <sect2>Coda <p> <nidx>disco!file system!Coda</nidx> È iniziato un lavoro per un sostituto gratuito di <tt/AFS/ ed è chiamato <url url="http://coda.cs.cmu.edu/" name="Coda">. <sect2><tt/nbd/ <p> <nidx>disco!file system!nbd</nidx> <nidx>disco!dispositivo!dispositivo di blocco di rete</nidx> Il <url url="http://atrey.karlin.mff.cuni.cz/˜pavel" name="Dispositivo di Blocco di Rete"> (<tt/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). <sect2>GFS <p> <nidx>disco!file system!GFS</nidx> <nidx>disco!dispositivo!File System Globale</nidx> Il <url url="http://gfs.lcse.umn.edu/" name="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. <sect1>File System Speciali <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. <sect2><tt/tmpfs/ e <tt/swapfs/ <label id="tmpfs"> <p> <nidx>disco!file system!tmpfs</nidx> <nidx>disco!file system!swapfs</nidx> Per un'archiviazione veloce di file a breve termine, Sun OS offre <tt/tmpfs/ che è praticamente la stessa cosa di <tt/swapfs/ su NeXT. Questo risolve l'intrinseca lentezza di <tt/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 <tt>/tmp</tt> ma non per <tt>/var/tmp</tt> che è la sede dove vengono posti i dati temporanei che devono sopravvivere al reboot. SunOS offre scarsa regolazione per <tt/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 <tt/ext2fs/ sia sufficientemente veloce da eliminarne la necessità. <sect2><tt/userfs/ <p> <nidx>disco!file system!userfs</nidx> <nidx>disco!file system!arcfs</nidx> <nidx>disco!file system!docfs</nidx> Il file system utente (<tt/userfs/) permette una serie di estensioni verso l'utilizzo di file system tradizionali come file system basati su FTP, compressione (<tt/arcfs/) e veloci prototipazioni e molte altre caratteristiche. Il <tt/docfs/ è basato su questo filesystem. Controllate l' <url url="http://www.goop.org/˜jeremy/userfs/" name="userfs homepage"> per maggiori informazioni. <sect2><tt/devfs/ <p> <nidx>disco!file system!devfs</nidx> Quando i dischi vengono aggiunti, rimossi o semplicemente falliscono, è probabile che i nomi dei dispositivi dei dischi rimanenti cambieranno. Ad esempio <tt/sdb/ fallisce e quindi il vecchio <tt/sdc/ diventa <tt/sdb/, il vecchio <tt/sdc/ diventa <tt/sdb/ e così via. Notate che in questo caso <tt/hda/, <tt/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 <tt/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 <file>/dev</file>, informazioni sulla numerazione e sull'allocazione possono essere trovate con il comando <tt/man MAKEDEV/. Attualmente ci sono 2 soluzioni a questo problema a vari stadi di sviluppo: <descrip> <tag/scsidev/ funziona mediante la creazione di un database dei dischi e di cosa essi fanno parte, controllate <em/man scsifs/ per maggiori informazioni. <tag/devfs/ è un progetto a lungo termine orientato a raggirare l'intero impiccio della numerazione dei dispositivi facendo sì che la directory <file>/dev</file> diventi un file system del kernel come lo è il <file>/procfs</file>. </descrip> <!-- <sect2><tt/cachefs/ <p> <nidx>disk!file system!cachefs</nidx> <sect2>File System Translucidi o Ereditati <p> <nidx>disk!file system!translucent</nidx> <nidx>disk!file system!inheriting</nidx> <nidx>disk!file system!</nidx> --> <sect1>Raccomandazioni sui File System <p> C'è una marea di scelte ma generalmente è consigliabile usare il file system generale che è presente nella vostra distribuzione. Se utilizzate <tt/ufs/ e avete disponibilità di qualcosa tipo <tt/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 <tt/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 <tt/fat/ visto che molti sistemi possono affidabilmente leggere e scrivere su questa. Ricordatevi del limite dei 2 GB per le partizioni <tt/fat/. Per maggiori informazioni sulle interconnettività tra file system potete controllare la pagina del <url url="http://www.ceid.upatras.gr/˜gef/fs/" name="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 <tt/hda/ o su <tt/sda/ e supporti rimovibili cone dischi ZIP alla fine dell'ordine di scansione. <sect>Technologie <label id="technologies"> <p> <nidx>disco!tecnologie</nidx> Al fine di decidere come ottenere il massimo dai vostri dispositivi dovete sapere quali tecnologie sono disponibili e le loro implicazioni. Come sempre ci possono essere esigenze conflittuali riguardo la velocità, l'affidabilità, l'alimentazione, la flessibilità, la facilità di utilizzo e la complessità. Molte delle tecniche descritte qui sotto possono essere unite in maniere diverse per aumentare la prestazione e l'affidabilità, sebbene a scapito di ulteriore complessità. <sect1>RAID<label id="RAID"> <p> <nidx>disco!tecnologie!RAID</nidx> Questo è un metodo per aumentare l'affidabilità, la velocità o entrambi utilizzando più dischi in parallelo così da diminuire il tempo di accesso ed aumentare la velocità di trasferimento. Per aumentare l'affidabilità può essere usato un sistema di controllo o di mirroring. Grossi server possono trarre vantaggio da questo setup ma potrebbe essere troppo per un utente singolo a meno che non abbiate un gran numero di dischi disponibili. Guardate altri documenti e FAQ per maggiori informazioni. Si può avere RAID in Linux o mediante software (il modulo <tt>md</tt> nel kernel), una scheda controller compatibile Linux (PCI-to-SCSI) o un controller SCSI-to-SCSI. Controllate la documentazione per sapere per cosa possono essere utilizzati i controller. Una soluzione hardware è generalmente più veloce, e forse anche più sicura, ma costa. <sect2>SCSI-to-SCSI<label id="SCSI-to-SCSI"> <p> <nidx>disco!tecnologie!RAID!SCSI-to-SCSI</nidx> I controller SCSI-to-SCSI sono generalmente implementati come cabinet completi con dischi ed un controller che si connette al computer con un secondo bus SCSI. Questo fa sì che l'intero cabinet sembri un singolo grosso, veloce disco SCSI e non richiede nessun driver RAID particolare. Lo svantaggio è che il bus SCSI che connette il cabinet al computer diventa un collo di bottiglia. Uno svantaggio significativo per la gente con grosse quantità di dischi è che c'è un limite a quante voci SCSI possono esserci nella directory <tt>/dev</tt>. In questi casi utilizzare lo SCSI-to-SCSI conserverà le voci. Generalmente sono configurati attraverso il pannello frontale o con un terminale connesso alle loro interfacce seriali. Tra i produttori di questi sistemi ci sono <url url="http://www.cmd.com" name="CMD"> e <url url="http://www.syred.com" name="Syred"> nelle cui pagine web sono descritti diversi sistemi. <sect2>PCI-to-SCSI<label id="PCI-to-SCSI"> <p> <nidx>disco!tecnologie!RAID!PCI-to-SCSI</nidx> I controller PCI-to-SCSI sono, come suggerisce il nome, connessi al bus PCI ad alta velocità e non soffrono dello stesso collo di bottiglia come i controller SCSI-to-SCSI. Questi controller richiedono driver speciali ma potete anche capire cosa significa controllare la configurazione RAID attraverso la rete il che semplifica la gestione. Attualmente solo poche famiglie di adattatori PCI-to-SCSI sono gestiti sotto Linux. <descrip> <tag/DPT/ I più vecchi e più maturi sono una gamma di controller della <url url="http://www.dpt.com" name="DPT"> incluse le famiglie di controller SmartCache I/III/IV e SmartRAID I/III/IV. Questi controller sono supportati dai driver EATA-DMA presenti nel kernel standard. Questa compagnia ha inoltre una <url url="http://www.dpt.com" name="home page"> informativa che descrive i vari aspetti generali del RAID e dello SCSI oltre alle informazioni dei prodotti. Maggiori informazioni dall'autore dei driver dei controller DPT (driver EATA* possono essere trovate sulla sua pagina presso <!-- Old links updated 971021 <url url="http://www.i-connect.net/˜mike/scsi" name="SCSI"> e <url url="http://www.i-connect.net/˜mike/scsi/dpt" name="DPT">. --> <url url="http://www.uni-mainz.de/˜neuffer/scsi" name="SCSI"> e <url url="http://www.uni-mainz.de/˜neuffer/scsi/dpt" name="DPT">. Questi non sono i più veloci ma hanno una affidabilità più che provata. Notate che gli strumenti di gestione per i controller DTP attualmente girano solamente sotto DOS/Win, così avrete bisogno di una piccola partizione Dos/Win per un po' di software. Ciò significa pure che dovrete lanciare il sistema con Windows per fare manutenzione del vostro sistema RAID. <tag/ICP-Vortex/ Una recentissima aggiunta è un set di controller della <url url="http://www.icp-vortex.com" name="ICP-Vortex"> con la caratteristica di avere fino a 5 canali indipendenti e hardware molto veloce basati sul chip i960. Il driver per Linux è stato scritto dalla compagnia stessa il che dimostra che supportano Linux. Visto che ICP-Vortex fornisce il software di manutenzione per Linux, non è necessario fare un boot verso altri sistemi operativi per il setup e la manutenzione del vostro sistema RAID. Questo vi fa risparmiare tempo. <tag/Mylex DAC-960/ Questo è una delle ultime uscite ed è in beta. Maggiori informazioni come anche i driver sono disponibili presso la <url url="http://www.dandelion.com/Linux/DAC960.html" name="Dandelion Digital's Linux DAC960 Page">. <tag/Compaq Smart-2 PCI Disk Array Controllers/ Un'altra entrata recentissima e attualmente in versione beta è il driver <url url="http://www.insync.net˜frantze/cpqarray.html" name="Smart-2">. </descrip> <!-- I controller SCSI-to-SCSI sono piccoli computer loro stessi, spesso con una notevole quantità di cache RAM. Si mascherano al sistema cui sono connessi come un disco SCSI gigante, veloce ed affidabile mentre verso i propri dischi si mostrano come l'adattaore SCSI del computer. Alcuni di questi controller hanno l'opzione di parlare contemporaneamente con più host. Visto che per l'host, questi controller sembrano come un normale, anche se immenso, disco SCSI, non necessitano manutenzione particolare dal sistema. Generalmente sono configurati dal pannello frontale o con un emulatore di terminale VT100 connesso all'interfaccia seriale che hanno integrata. Molto di recente ho sentito che anche Syred fa controller SCSI-to-SCSI che sono supportati da Linux. Non ho ancora informazioni riguardo questo ma ce ne saranno presto di nuove. Intanto controllate la loro <url url="http://www.syred.com" name="home"> page per maggiori informazioni. --> <sect2>Software RAID<label id="soft-raid"> <p> <nidx>disco!tecnologie!RAID!RAID Software</nidx> Qualche sistema operativo offre software RAID su dischi comuni e controller. Il costo è basso e le prestazioni per il crudo IO su disco possono essere molto alte. Visto che può richiedere molte risorse della CPU, aumenta il carico evidente quindi se la macchina è limitata nelle prestazioni della CPU piuttosto che nelle prestazioni dell'IO, sarebbe meglio per voi risolvere con un controller hardware PCI-to-RAID. Il costo reale, le prestazioni e specialmente l'affidabilità del RAID software contro quello hardware sono un argomento molto controverso. L'affidabilità su sistemi Linux è stata finora molto buona. L'attuale progetto del software RAID per Linux, è il sistema <tt/md/ (multiple devices) che offre molto più del RAID, quindi è descritto maggiormente più avanti. <sect2>Livelli di RAID<label id="raid-levels"> <p> <nidx>disco!tecnologie!RAID!Livelli di RAID</nidx> Il RAID lo troviamo con molti livelli e sapori su cui farò una breve descrizione qui. Molto è stato scritto riguardo questo ed il lettore interesato è invitato a leggere di più sulle FAQ del RAID. <itemize> <item>RAID <em/0/ non è affatto ridondante ma offre la più alta velocità di trasferimento di tutti i livelli. I dati sfilano attraverso un bel numero di dischi quindi le operazioni di lettura e scrittura avvengono in parallelo attraverso tutti i dischi. D'altra parte se un singolo disco fallisce, allora tutto è perduto. Avevo parlato di backup? <item>RAID <em/1/ è il metodo più primitivo per ottenere ridondanza duplicando i dati attraverso tutti i drive. Naturalmente questo è un metodo che spreca molto ma ottenete un vantaggio che è l'accesso rapido. Il disco che accede ai dati per primo vince. I trasferimenti non sono più veloci che per dischi singoli, sebbene potreste ottenere trasferimenti di lettura maggiori utilizzando una lettura di traccia per disco. Inoltre se avete solo due dischi, questo è l'unico modo per raggiungere la ridondanza. <item>RAID <em/2/ e <em/4/ non sono così comuni e non ci sono qui. <item>RAID <em/3/ utilizza un certo numeri di dischi (almeno 2) per immagazzinare i dati come nella modalità RAID 0. Esso utilizza inoltre un disco di ridondanza addizionale per archiviare la somma XOR dei dati dai dischi contenenti i dati. Dovesse fallire il disco di ridondanza, il disco può continuare ad operare come se niente fosse accaduto. Se un disco contenente i dati dovesse fallire, il sistema può determinare i dati su questo disco dall'informazione sul disco di ridondanza e sui dischi rimanenti. Qualsiasi doppio fallo porterà alla disattivazione del RAID. RAID 3 ha senso solo con almeno 2 dischi di dati (3 dischi incluso il disco di ridondanza). Teoricamente non c'è limite per il numero di dischi nell'insieme, ma la probabilità di un errore aumenta con il numero di dischi nell'insieme RAID. Generalmente il limite superiore è dai 5 ai 7 dischi in un singolo insieme RAID. Visto che RAID 3 immagazzina tutte le informazioni ridondanti su un disco dedicato e visto che questa informazione deve essere aggiornata qualora ci sia un'operazione di scrittura su qualsiasi disco di dati, la velocità generale di scrittura dell'insieme RAID 3 è limitata dalla velocità di scrittura del disco di ridondanza. Anche questo è un limite per il numero di dischi in un insieme RAID. La velocità generale di lettura di un insieme RAID 3 con tutti i dischi di dati attivati, è quella di un insieme RAID 0 con quel numero di dischi. Se l'insieme deve ricostruire i dati immagazzinati su un disco fallito da un'informazione ridondante, la prestazione sarà severamente limitata: tutti i dischi nell'insieme devono essere letti e dev'essere fatto l'XOR dai dati per calcolare le informazioni rimanenti. <item>RAID <em/5/ è come il RAID 3, ma l'informazione ridondante è sparsa su tutti i dischi dell'insieme RAID. Questo aumenta la prestazione in scrittura, perché il carico è distribuito più omogeneamente tra tutti i dsichi disponibili. </itemize> Ci sono anche ibridi basati su RAID 0 o 1 e un altro livello. Molte combinazioni sono possibili ma ne ho viste solamente poche. Questi sono più complessi dei livelli RAID sopra menzionati. RAID <em>0/1</em> combina lo spandimento con la duplicazione, il che conferisce trasferimenti molto veloci insieme ad accessi veloci come anche ridondanza. Lo svantaggio è il grosso consumo di disco come anche la complessità sopra descritta. RAID <em>1/5</em> combina la velocità e i benefici della ridondanza del RAID 5 con l'accesso veloce del RAID 1. La ridondanza è migliorata se paragonata al RAID 0/1 ma il consumo di disco è ancora importante. Implementare questo sistema vuol dire utilizzare in genere più di 6 dischi, forse anche diversi controller o canali SCSI. <!-- <sect2>AFS, Veritas e altri Sistemi di Gestione dei Volumi <p> <nidx>disk!technologies!AFS</nidx> <nidx>disk!technologies!Veritas</nidx> <nidx>disk!technologies!volume management systems</nidx> Sebbene partizioni e dischi multipli, hanno il vantaggio di avviarsi verso più spazio e più alta velocità ed affidabilità, c'è un imprevisto significativo: se per esempio la partizione <tt>/tmp</tt> è piena, siete nei guai anche se lo spool delle news è vuoto, visto che non è facile ritrasferire le quote attraverso le partizioni. La gestione del volume è un sistema che fa proprio questo e AFS e Veritas sono due dei sistemi meglio conosciuti. C'è anche chi offre altri file system come i file system di log ed altri ottimizzati per affidabilità o velocità. Notate che Veritas non è ancora disponibile per Linux e non è sicuro che potranno vendere i moduli kernel senza fornire i sorgenti per il codice proprietario, questo è solamente menzionato per informazione su cosa c'è là fuori. Potete ancora controllare la loro <url url="http://www.veritas.com" name="home page"> per vedere come funzionano questi sistemi. Derek Atkins, del MIT, ha fatto il porting di AFS per Linux ed ha inoltre creato la <url url="mailto:linux-afs@mit.edu" name="Linux AFS mailing List"> per questo ed è aperta al pubblico. Le richieste per far parte della lista dovrebbero essere inviate a: <url url="mailto:linux-afs-request@mit.edu" name="Request"> ed i bug dovrebbero essere riportati a: <url url="mailto:linux-afs-bugs@mit.edu" name="Bug Reports">. Importante: dal momento che AFS utilizza la cifratura, è un software che è caratterizzato da restrizione e non può essere facilmente esportato dagli Stati Uniti. L'AFS è ora venduta dalla Transarc ed essi hanno organizzato un sito web. La struttura delle directory è stata da poco riorganizzata quindi non posso dare una URL più accurata che la semplice <url url="http://www.transarc.com" name="Transarc Home Page"> che vi porta alla pagina principale del sito. Lì potrete ottenere molte altre informazioni come anche una FAQ. C'è anche uno sviluppo recente basato sugli ultimi sorgenti gratuiti di AFS. --> <sect1>Gestione dei Volumi<label id="vol-mgmnt"> <p> <nidx>disco!tecnologie!Gestione dei Volumi</nidx> La gestione dei volumi è un modo per superare le costrizioni delle partizioni e dei dischi a dimensione fissa mantenendo sempre il controllo di dove le varie parti dei file risiedono. Con un sistema del genere potete aggiungere nuovi dischi al vostro sistema e aggiungere spazio da questo disco alle parti dello spazio file dove è necessario, come anche migrare i dati fuori da un disco che ha dei problemi ad altri dischi prima che avvenga un fallimento catastrofico. Il sistema sviluppato da <url url="http://www.veritas.com" name="Veritas"> è diventato lo standard di fatto per la gestione logica dei volumi. La gestione dei volumi è una delle cose in cui attulamente Linux è carente. Uno è il progetto del sistema a partizioni virtuali <url url="http://www.uiuc.edu/ph/www/roth" name="VPS"> che reimplementerà molte delle funzioni di gestione trovate nel sistema AIX di IBM. Sfortunatamente questo progetto è fermo. Un altro progetto è il <url url="http://linux.msede.com/lvm/" name="Logical Volume Manager"> che è simile ad un progetto della HP. <sect1>La patch <tt/md/ per il kernel Linux <p> <nidx>disco!tecnologie!md</nidx> <nidx>disco!tecnologie!raid</nidx> <nidx>disco!tecnologie!striping</nidx> <nidx>disco!tecnologie!traslucenza</nidx> Il Linux Multi Disk (md) fornisce un certo numero di caratteristiche di livelli di blocco in vari stadi di sviluppo. RAID 0 (spargimento) e concatenamento sono molto solidi anche nella qualità di produzione e anche i RAID 4 e 5 sono molto maturi. È inoltre possibile ammucchiare qualche livello, ad esempio fare il mirror (RAID 1) di due paia di dischi, ogni paio costruito come dischi sparsi (RAID 0), il che offre la velocità del RAID 0 con l'affidabilità del RAID 1. Oltre al RAID questo sistema offre (allo stadio alfa) la gestione dei volumi a livelli di blocco e presto anche spazio file traslucido. Dal momento che questo è fatto a livello di blocco, esso può essere utilizzato in combinazione con qualsiasi file system, anche per la <tt/fat/ utilizzando Wine. Pensate attentamente quali dischi combinate così potete agire su tutti i dischi in parallelo, il che vi fornisce migliori prestazioni e meno usura. Leggete di più riguardo a ciò nella documentazione che accompagna <tt/md/. Sfortunatamente la documentazione è piuttosto vecchia ed in parte fuorviante e si riferisce solamente alla versione 0.35 di <tt/md/ che usa un setup di vecchio stile. Il nuovo sistema è molto differente e presto sarà rilasciato come versione 1.0 ma è attualmente non documentato. Se voleste provarlo, dovreste seguire la mailing list <tt/linux-raid/. La documentazione sta migliorando e il <url url="http://ostenfeld.dk/˜jakob/Software-RAID.HOWTO/" name="Software RAID HOWTO"> è in lavorazione. Suggerimento: se non riuscite a farlo funzionare correttamente, avete dimenticato di impostare il flag <tt/persistent-block/. La vostra documentazione migliore è attualmente il codice sorgente. <sect1>Compressione <p> <nidx>disco!tecnologie!compressione</nidx> <nidx>disco!compressione!DouBle</nidx> <nidx>disco!compressione!Zlibc</nidx> <nidx>disco!compressione!dmsdos</nidx> <nidx>disco!compressione!e2compr</nidx> La compressione del disco contro la compressione dei file è un dibattito caldo specialmente riguardo il rischio aggiunto di corruzione dei file. Nonostante ciò ci sono diverse opzioni disponibili per gli amministratori avventurosi. Questi intraprendono molte forme, dai moduli del kernel ed le patch alle librerie extra, ma notate che molti soffrono di diverse forme di limitazione quali essere di sola lettura. Visto che lo sviluppo va così rapidamente, sicuramente le specifiche saranno cambiate nel momento in cui leggete questo. Come sempre: controllate da soli gli aggiornamenti. Qui sono elencati solo pochi riferimenti. <itemize> <item>Compressione file dalle doppie caratteristiche con alcune limitazioni. <item>Zlibc aggiunge una decompressione in tempo reale e trasparente dei file mentre li carica. <item>ci sono molti moduli disponibili per leggere i file compressi o le partizioni che sono native ad altri svariati sistemi operativi sebbene attualmente la maggior parte di questi è di sola lettura. <item> <url url="http://bf9nt.uni-duisburg.de/mitarbeiter/gockel/software/dmsdos/" name="dmsdos"> (attualmente alla versione 0.9.2.0) offre molto della compressione disponibile per il DOS e per Windows. Non è ancora completa ma il lavoro sta andando avanti e nuove caratteristiche aggiunte regolarmente. <item><tt/e2compr/ è un pacchetto che implementa l'<tt>ext2fs</tt> con le capacità di compressione. È ancora in fase di test e sarà principalmente di interesse per gli hacker del kernel ma dovrebbe acquisire ben presto la stabilità necessaria per un uso più vasto. Controllate l' <url url="http://netspace.net.au/˜reiter/e2compr.html" name="homepage e2compr"> per maggiori informazioni. Ho saputo della velocità e della buona stabilità, ecco perché è menzionato qui. </itemize> <sect1>ACL <p> <nidx>disco!tecnologie!ACL</nidx> L'Access Control List (ACL) offre un controllo più fine sull'accesso ai file di un utente sulle basi dell'utente stesso piuttosto che il tradizionale owner, group and others, come si vede nel listato della directory (<tt/drwxr-xr-x/). Ciò non è ancora disponibile in Linux ma ci si aspetta che lo sarà nel kernel 2.3 visto che gli agganci sono già posizionati nell'<tt/ext2fs/. <sect1><tt/cachefs/ <p> <nidx>disco!tecnologie!cachefs</nidx> Questo utilizza una parte del disco rigido per mettere in cache supporti più lenti come i CD-ROM. è disponibile per SunOS ma non ancora per Linux. <sect1>File System Traslucidi o Nascosti <p> <nidx>disco!tecnologie!traslucidi</nidx> <nidx>disco!tecnologie!nascosti</nidx> Questo è un sistema copy-on-write dove le scritture finiscono su un sistema differente dalla reale origine facendolo sembrare uno spazio file ordinario. Quindi visto che lo spazio file nasconde i dati originali ed il traslucente li riscrive indietro, il buffer può essere privato per ogni utente. C'è un certo numero di applicazioni: <itemize> <item>aggiornare un file system vivo su un CD-ROM, rendendolo flessibile, veloce e che risparmi anche spazio, <item>uno scheletro dei file originale per ciascun nuovo utente, risparmiando spazio visto che i dati originali sono mantenuti in uno spazio singolo e condivisi, <item>progetto di sviluppo parallelo prototipizzando il fatto che ogni utente possa modificare il sistema globalmente non intaccando gli altri utenti. </itemize> SunOS offre questa caratteristica ed è in fase di sviluppo per Linux. C'era un vecchio progetto chiamato Inheriting File Systems (<tt/ifs/) ma questo progetto si è fermato. Un progetto attuale è parte del sistema <tt/md/ e offre traslucenza del livello di blocco così può essere applicato a qualsiasi file system. La Sun ha una <url url="http://www.sun.ca/white-papers/tfs.html" name="pagina"> informativa sul file system traslucido. <!-- This is the old section, from which I have moved various parts to other sections. <sect2>General File System Consideration <p> <nidx>disk!technologies!filesystem considerations</nidx> In the Linux world <tt>ext2fs</tt> is well established as a general purpose system. Still for some purposes others can be a better choice. News spools lend themselves to a log file based system whereas high reliability data might need other formats. This is a hotly debated topic and there are currently few choices available but work is underway. Log file systems also have the advantage of very fast file checking. Mail servers in the 100 GB class can suffer file checks taking several days before becoming operational after rebooting. The <tt/Minix/ file system is the oldest one, used in some rescue disk systems but otherwise very little used these days. At one time the <tt/Xiafs/ was a strong contender to the standard for Linux but seems to have fallen behind these days. Adam Richter from Yggdrasil posted recently that they have been working on a compressed log file based system but that this project is currently on hold. Nevertheless a non-working version is available on their FTP server. Check out <url url="ftp://ftp.yggdrasil.com/private/adam" name="the Yggdrasil ftp server"> where special patched versions of the kernel can be found. Hopefully this will be rolled into the mainstream kernel in the near future. An alternative project is the <url url="http://lucien.blight.com/˜c-cook/prof/lfs/" name="Logical Volume Manager"> project. As of July, 23th 1997 <url url="mailto:reiser (at) RICOCHET.NET" name="Hans Reiser"> has put up the source to his tree based <url url="http://idiom.com/˜beverly/reiserfs.html" name="reiserfs"> on the web. While his filesystem has some very interesting features and is much faster than <tt/ext2fs/, it is still very experimental and difficult to integrate with the standard kernel. Expect some interesting developments in the future - this is different from your "average log based file system for Linux" project, because Hans already has working code. There is room for access control lists (ACL) and other unimplemented features in the existing <tt>ext2fs</tt>, stay tuned for future updates. There is also an encrypted file system available but again as this is under export control from the US, make sure you get it from a legal place. Also under development is the <url url="http://www.virtual.net.au/˜rjc/enh-fs.html" name="Enhanced File System"> project. File systems is an active field of academic and industrial research and development, the results of which are quite often freely available. Linux has in many cases been a development tool in such activities so you can expect a lot of continuous work in this field, stay tuned for the latest development. One example of a file system research is <url url="http://www.cs.columbia.edu/˜ezk/research" name="Erez Zadok Research"> page. <sect2>CD-ROM File Systems <p> <nidx>disk!technologies!CD-ROM filesystems</nidx> There has been a number of file systems available for use on CD-ROM systems and one of the earliest one was the <em/High Sierra/ format, supposedly named after the hotel where the final agreement took place. This was the precursor to the <em/ISO 9660/ format which is supported by Linux. Later there were the <em/Rock Ridge/ extensions which added file system features such as long filenames, permissions and more. The Linux iso9660 file system supports both High Sierra as well as Rock Ridge extensions. However, once again Microsoft decided it should create another standard and their latest effort here is called <em/Joliet/ and offers some internationalisation features. This is now available in linux kernel 2.0.34 or newer. You need to enable NLS in order to use it. In a recent Usenet News posting hpa (at) transmeta.com (H. Peter Anvin) writes the following the following interesting piece of trivia: <tscreen><verb> Trivia: Joliet is a city outside Chicago; best known for being the site of the prison where Jake was locked up in the movie "Blues Brothers." Rock Ridge (the UNIX extensions to ISO 9660) is named after the (fictional) town in the movie "Blazing Saddles." </verb></tscreen> Very important note: it was actually Jake who was locked up. Oops. <sect2>Compression <p> <nidx>disk!technologies!compression</nidx> Disk compression versus file compression is a hotly debated topic especially regarding the added danger of file corruption. Nevertheless there are several options available for the adventurous administrators. These take on many forms, from kernel modules and patches to extra libraries but note that most suffer various forms of limitations such as being read-only. As development takes place at neck breaking speed the specs have undoubtedly changed by the time you read this. As always: check the latest updates yourself. Here only a few references are given. <itemize> <item>DouBle features file compression with some limitations. <item>Zlibc adds transparent on-the-fly decompression of files as they load. <item>dmsdos (currently in version 0.9.1.2) offer many of the compression options available for DOS and Windows. It is not yet complete but work is ongoing and new features added regularly. <item><tt/e2compr/ is a package that extends <tt>ext2fs</tt> with compression capabilities. It is still under testing and will therefore mainly be of interest for kernel hackers but should soon gain stability for wider use. Check the <url url="http://netspace.net.au/˜reiter/e2compr.html" name="e2compr homepage"> for more information. I have reports of speed and good stability which is why it is mentioned here. </itemize> <sect2>Other Filesystems <p> <nidx>disk!technologies!filesystems, other</nidx> Also there is the user file system (<tt/userfs/) that allows FTP based file system and some compression (<tt/arcfs/) plus fast prototyping and many other features. The <tt/docfs/ is based on this filesystem. Recent kernels feature the loop or loopback device which can be used to put a complete file system within a file. There are some possibilities for using this for making new file systems with compression, tarring, encryption etc. Note that this device is unrelated to the network loopback device. Very recently a compression package that extends <tt>ext2fs</tt> was announced. It is still under testing and will therefore mainly be of interest for kernel hackers but should soon gain stability for wider use. There is a number of other ongoing file system projects, but these are in the experimental stage and fall outside the scope of this HOWTO. --> <sect1>Posizionamento Fisico delle Tracce<label id="physical-track-positioning"> <p> <nidx>disco!tecnologie!posizionamento fisico delle tracce</nidx> <nidx>disco!tecnologie!posizionamento delle tracce</nidx> Questo trucco era molto importante quando i dischi erano lenti e piccoli e qualche file system era solito considerare le caratteristiche variabili nel posizionare i file. Oltre alla velocità generale più alta, la cache integrata nei controller e nei dischi ha ridotto questo effetto. Comunque c'è ancora qualcosa da guadagnare anche oggi. Da quel che sappiamo, "<it/il dominio del mondo/" è a portata di mano, ma per raggiungerlo "<it/velocemente/" dobbiamo impiegare tutti i trucchi che possiamo <htmlurl url="http://www.cs.indiana.edu/finger/linux.cs.helsinki.fi/linus" name=" ">. Per capire la strategia dobbiamo richiamare questo vecchio pezzo di conoscenza e le proprietà delle varie localizzazioni delle tracce. Questo è basato sul fatto che le velocità di trasferimento generalmente aumentano per le tracce più ci si allontana dal pignone, come anche per il fatto che è più veloce accedere verso o dalle tracce centrali che verso o dalle tracce più interne o più esterne. La maggior parte delle unità utilizzano dischi che girano con velocità angolare costante ma utilizzano una densità di dati (abbastanza) costante attraverso tutte le tracce. Questo vuol dire che otterrete una più alta velocità di trasferimento sulle tracce esterne che su quelle più interne; una carateristica che è molto buona per le necessità di grosse librerie. I dischi più recenti utilizzano una geometria logica di mappatura che differisce dall'attuale mappatura fisica con la quale sono mappati trasparentemente dal disco stesso. Questo fa sì che la stima delle tracce "di mezzo" sia più difficile. Nella maggior parte dei casi la traccia 0 è nella traccia più esterna e questo è lo standard per molte persone. Comunque, si dovrebbe ricordare che non ci sono garanzie che sia sempre così. <p> <descrip> <tag/Le tracce più interne/ sono generalmente lente in trasferimento e anche il fatto di giacere alla fine della posizione di accesso ne rende lento l'accesso. Sono quindi più adatte per le directory low end come DOS, root e gli spool di stampa. <tag/Le tracce intermedie/ sono mediamente più veloci riguardo al trasferimento rispetto alle tracce più interne e essendo in mezzo vi si accede più velocemente. Questa caratteristica è ideale per le parti che richiedono di più quali <tt>swap</tt>, <tt>/tmp</tt> e <tt>/var/tmp</tt>. <tag/Le tracce esterne/ hanno di media caratteristiche di trasferimento più veloci ma, come le tracce interne, sono collocate alla fine dell'accesso; quindi, statisticamente, accedervi è ugualmente lento che per le tracce interne. Grandi file come le librerie beneficerebbero del posizionamento in questa sede. </descrip> Quindi la riduzione del tempo di accesso può essere raggiunta posizionando le tracce con accesso frequente in mezzo così che la distanza media di accesso e di conseguenza il tempo di accesso possa essere breve. Questo può essere fatto sia utilizzando <tt>fdisk</tt> o <tt>cfdisk</tt> per fare una partizione nelle tracce di mezzo o facendo prima un file (utilizzando <tt/dd/) uguale alla metà della grandezza dell'intero disco prima di creare i file cui si ha accesso di frequente, dopo di che il file fittizio può essere cancellato. In entrambe i casi si assume che si inizi da un disco vuoto. L'ultimo trucco è adatto per gli spool delle news dove la struttura delle directory vuote può essere posizionata nel mezzo prima di metterci i file di dati. Questo aiuta inoltre un po' la frammentazione. Questo piccolo trucco può essere utilizzato sia sui dischi ordinari sia per i sistemi RAID. Nell'ultimo caso il calcolo per mettere al centro le tracce sarà differente, se possibile. Consultate l'ultimo manuale RAID. La differenza di velocità sta al drive ma un 50 per cento di miglioramento è un valore comune. <sect2>Valori di velocità del disco<label id="disk-speed-values"> <p> <nidx>disco!tecnologie!valori di velocità del disco</nidx> Lo stesso assemblaggo della testata (HDA) è spesso disponibile su un bel numero di interfacce (IDE, SCSI, ecc.) ed i parametri meccanici sono quindi paragonabili. Oggigiorno la meccanica è spesso il fattore limitante ma lo sviluppo sta migliorando le cose rapidamente. Ci sono due parametri principali, generalmente riportati in millisecondi (ms): <itemize> <item>Movimento delle testine - la velocità alla quale la testina di lettura e scrittura è capace di muoversi da una traccia a quella successiva, chiamata tempo di accesso. Se fate i calcoli e integrate l'accesso prima attraverso tutte le possibili tracce di partenza e poi attraverso tutte le possibili tracce di destinazione, troverete che ciò è uguale ad un colpo (stroke) attraverso un terzo di tutte le tracce. <item>Velocità rotazionale - che determina il tempo necessario per arrivare al settore giusto, chiamato latenza. </itemize> Dopo che le bobine audio hanno rimpiazzato i motori passo passo per il controllo del movimento delle testine, i miglioramenti sembrarono essersi livellati e maggiore energia è oggi impiegata (letteralmente) per migliorare la velocità rotazionale. Questo ha il beneficio secondario di aumentare anche le velocità di trasferimento. Qualche valore tipico: <tscreen><verb> Tipo di Disco Tempo di acceso (ms) | Veloce Tipico Vecchio -------------------------------------------------- Traccia-a-traccia <1 2 8 Tempo medio di accesso 10 15 30 Fine-a-fine 10 30 70 </verb></tscreen> Ciò dimostra che gli ultimissimi dischi, offrono solo marginalmente un miglior tempo di accesso della media dei dischi ma che i vecchi dischi basati su motori passo passo sono decisamente peggiori. <tscreen><verb> Velocità di rotazione | 3600 | 4500 | 4800 | 5400 | 7200 | 10000 ------------------------------------------------------------------- Latenza (ms) | 17 | 13 | 12.5 | 11.1 | 8.3 | 6.0 </verb></tscreen> Dal momento che la latenza è il tempo medio per raggiungere un settore particolare, la formula è sufficientemente semplice <tscreen><verb> latenza (ms) = 60000 / velocità (RPM) </verb></tscreen> Ovviamente anche questo è un esempio della diminuzione dei compensi per gli sforzi messi nello sviluppo. Comunque, ciò che veramente importa qui è il consumo di elettricità, il calore ed il rumore. <sect1>Sovrapposizione di strati RAID <p> <nidx>disco!tecnologie!Sovrapposizione di strati RAID</nidx> Uno dei vantaggi di un progetto a strati di un sistema operativo è che si ha a disposizione la flessibilità di mettere insieme i pezzi in un gran numero di modi. Ad esempio potete mettere in cache un CD-ROM con <tt/cachefs/ che è un volume suddiviso tra due dischi. Questo a turno può essere organizzato in maniera traslucente con un volume che è montato da un'altra macchina via NFS. RAID può essere raggruppato in svariati strati per offrire accesso molto veloce e trasferimento in una maniera tale che potrebbe funzionare se anche fallissero 3 dischi. Le scelte sono tante, limitate solamente dall'immaginazione e, cosa probabilmente più importante, dal denaro. <sect1>Raccomandazioni <p> <nidx>disco!tecnologie!raccomandazioni</nidx> C'è un numero praticamente infinito di combinazioni disponibili ma la mia raccomandazione è di iniziare con un'installazione semplice senza alcuna aggiunta immaginosa. Capite cosa vi serve, dove è richiesta la massima prestazione, se il collo di bottiglia è il tempo di accesso o la velocità di trasferimento, e così via. Poi affrontate ogni componente a turno. Se voi potete raggruppare abbastanza liberamente, dovreste essere capaci di rimpiazzare la maggior parte dei componenti con poche difficoltà. RAID è generalmente una buona idea ma assicuratevi di avere una buona padronanza della tecnologia ed un solido sistema di back up. <sect>Altri Sistemi Operativi <p> <nidx>disco!sistemi operativi, altri</nidx> Molti utenti Linux hanno diversi sistemi operativi installati, spesso necessari a causa di sistemi di predisposizione dell'hardware che girano sotto altri sistemi operativi, In particolare il DOS o qualche tipo di Windows. Una piccola sezione su come avere a che fare al meglio con questi è qui inclusa. <sect1>DOS <p> <nidx>disco!sistemi operativi, altri!DOS</nidx> Mantenendo in disparte il dibattito sul fatto che il DOS si qualifichi o meno come sistema operativo, uno potrebbe dire che è molto poco sofisticato riguardo alle operazioni del disco. La più grave conseguenza di questo fatto è che ci possono essere serie difficoltà facendo girare varie versioni del DOS su dischi larghi, e voi siete quindi fortemente invitati a leggere il <em>Large Drives mini-HOWTO</em>. Un effetto collaterale di ciò è che spesso si propende a mettere il DOS su numeri di traccia bassi. Essendo stato progettato per piccoli dischi, ha un file system alquanto poco sofisticato (<tt/fat/) e quando usato su dischi grossi alloca blocchi di dimensioni enormi. Inoltre, causa la frammentazione dei blocchi, che dopo un po' causerà accessi spropositati e rallenterà i trasferimenti effettivi. Una soluzione a questo è fare una deframmentazione regolarmente ma è fortemente raccomandato fare un backup prima di deframmentare. Tutte le versioni del DOS hanno il <tt/chkdsk/ che può fare un po' di controllo del disco, le nuove versioni hanno anche lo <tt/scandisk/ che è in qualche modo migliore. Ci sono molti programmi di deframmentazione disponibili, qualche versione ne ha uno chiamato <tt/defrag/. Le Norton Utilities hanno un grosso insieme di attrezzi per il disco e ce ne sono anche molti altri. Come sempre ci sono imprevisti, e questo particolare serpente nel nostro paradiso del disco è chimato <em/file nascosti/. Qualche rivenditore cominciò ad usarli per schemi di protezione delle copie perché non avrebbero reagito bene nell'essere spostati in un'altra parte sul disco, anche se rimanevano nello stesso posto nella struttura della directory. Il risultato di questo fu che i programmi di deframmentazione non toccavano alcun file nascosto, che a lungo andare riduceva l'effetto della deframmentazione. Essendo un sistema operativo mono tasking, mono threading e mono molte altre cose, ci sono molti pochi vantaggi nell'usare dischi multipli se almeno non utilizzate un controller con un qualsiasi supporto RAID integrato. Ci sono un po' di utilità chiamate <tt/join/ e <tt/subst/ che possono eseguire una configurazione di dischi multipli ma c'è un guadagno molto piccolo da questo per l'enorme lavoro da fare. Qualcuno di questi programmi è stato rimosso nelle nuove versioni. Alla fine c'è molto poco che voi potete fare, ma niente è perduto. Molti programmi necessitano di archiviazione veloce, temporanea e quelli che si comportano bene cercheranno variabili d'ambiente chiamate <tt/TMPDIR/ o <tt/TEMPDIR/ che potete predisporre per farle puntare ad un altro disco. Questo è di solito fatto nell'<tt/autoexec.bat/. <code> SET TMPDIR=E:/TMP SET TEMPDIR=E:/TEMP </code> Non solo vi potrà far guadagnare più velocità ma può anche ridurre la frammentazione. Ci sono state delle affermazioni riguardo la difficoltà nel rimuovere partizioni primarie multiple utilizzando il programma <tt/fdisk/ che accompagna il DOS. Se dovesse capitare potete utilizzare un disco di recupero Linux con l'<tt/fdisk/ di Linux per riparare il sistema. Non dimenticate che ci sono altre alternative al DOS, le più note sono il <url url="http://www.caldera/dos/" name="DR-DOS"> della <url url="http://www.caldera/" name="Caldera">. Questo è il diretto discendente del DR-DOS della Digital Research. Esso offre molte caratteristiche non trovate nel più comune DOS, come il multi tasking ed i nomi di file lunghi. Un'altra alternativa, che è pure libera, è <url url="http://www.freedos.org/" name="Free DOS"> che è un progetto in sviluppo. Un numero di utilità libere sono disponibili. <sect1>Windows <p> <nidx>disco!sistemi operativi, altri!Windows</nidx> La maggior parte dei punti espressi qui sopra sono validi anche per Windows, con l'eccezione di Windows95 che apparentemente ha una migliore gestione del disco, che trarrà migliori prestazioni dai dischi SCSI. Una cosa utile è l'introduzione dei nomi di file lunghi, per leggerli da Linux dovrete avere il file system <tt/vfat/ per montare queste partizioni. La frammentazione del disco è ancora un problema. Un po' di questa può essere evitata facendo una deframmentazione immediatamente prima e immediatamente dopo l'installazione di grossi programmi o sistemi. Uso questa procedura al lavoro e mi sono accorto che funziona abbastanza bene. Eliminare i file inutilizzati e svuotare il cestino prima di tutto può migliorare la deframmentazione ancora di più. Anche Windows utilizza i dischi swap, e reindirizzare ciò verso un altro disco può concedervi guadagni di prestazione. Ci sono diversi mini-HOWTO che vi dicono come condividere al meglio lo spazio di swap tra vari sistemi operativi. <!-- aggiunto il 030298, necessito di maggiori informazioni su questo, quindi bassa priorità per adesso --> Il trucco di organizzare la <tt/TEMPDIR/ può ancora essere utilizzato ma non tutti i programmi soddisferanno questa disposizione. Alcuni comunque lo fanno. Per avere una buona visione delle disposizioni nei file di controllo, potete lanciare <tt/sysedit/ che aprirà un bel numero di file da editare, uno dei quali è l'<tt/autoexec/ dove potete aggiungere i settaggi della <tt/TEMPDIR/. Molti dei file temporanei sono messi nella directory <tt>/windows/temp</tt> e cambiare questo è più arduo. Per fare questo potete utilizzare <tt/regedit/ che è abbastanza potente e capace di mettere il vostro sistema in uno stato che non gradireste o, più precisamente, in uno stato meno gradevole di Windows in generale. Registry database error è un messaggio che significa seriamente cattive notizie. Inoltre vedrete che molti programmi hanno la propria directory temporanea sparsa nel sistema. Predisporre il file di swap su una partizione separata è un'idea migliore e molto meno rischiosa. Ricordatevi che questa partizione non può essere utilizzata per niente altro, anche se dovesse sembrare che c'è spazio residuo. Ora è possibile leggere le partizioni <tt/ext2fs/ da Windows, anche montando le partizioni utilizzando <url url="http://www.yipton.demon.co.uk/" name="FSDEXT2"> o utilizzando un esploratore di file chiamato <url url="http://uranus.it.swin.edu.au/˜jn/linux/Explore2fs.html" name="Explore2fs">. <sect1>OS/2 <p> <nidx>disco!sistemi operativi, altri!OS/2</nidx> L'unica nota speciale qui è che potete ottenere un driver del file system per OS/2 che può leggere una partizione <tt/ext2fs/. <sect1>NT <p> <nidx>disco!sistemi operativi, altri!Windows/NT</nidx> <nidx>disco!sistemi operativi, altri!NT</nidx> <nidx>disco!Microsoft!bug</nidx> Questo è un sistema più serio caratterizzato da termini di gran moda noti al marketing. È bene notare che può fare lo striping e molte altre sofisticate predisposizioni. Notate il drive manager nel pannello di controllo. Non ho facile accesso ad NT, maggiori dettagli su questo possono necessitare un po' di tempo. Un intoppo importante è stato riportato recentemente da acahalan at cs.uml.edu : (riformattato da un messaggio Usenet) Il DiskManager di NT ha un bug serio che può corrompere il vostro disco quando avete diverse (più di una?) partizioni estese. La Microsoft rilascia un programma per correggere questo problema sul proprio sito. Vedete la <url url="http://www.microsoft.com/kb/" name="knowledge base"> per saperne di più (questo tocca gli utenti Linux, perché hanno partizioni extra). Ora potete leggere le partizioni <tt/ext2fs/ da NT mediante <url url="http://uranus.it.swin.edu.au/˜jn/linux/Explore2fs.html" name="Explore2fs">. <sect1>Sun OS <p> <nidx>disco!sistemi operativi, altri!SunOS</nidx> C'è un po' di confusione in quest'area tra Sun OS contro Solaris. In maniera molto concisa, Solaris non è altro che Sun OS 5.x confezionato con Openwindows e poche altre cose. Se eseguite Solaris, vi basta scrivere <tt/uname -a/ per vedere la vostra versione. Parte della ragione di questa confusione è che la Sun Microsystems soleva utilizzare un SO proveniente dalla famiglia BSD, sebbene con un po' di pezzi da altre parti come anche con cose fatte da loro. Questa è stata la situazione fino al Sun OS 4.x.y quando presero una "decisione strategica della pianificazione" e decisero di passare oltre lo Unix ufficiale, il System V, la Versione 4 (aka SVR5), e fu creato il SO Sun 5. Questo rese scontenti molti. Inoltre venne unito ad altre cose e commercializzato sotto il nome di Solaris, che attualmente è alla versione 7 che proprio da poco ha rimpiazzato la versione 2.6 essendo l'ultima e la migliore. A differenza del grosso salto nel numero della versione c'è stato attualmente un piccolo miglioramento ma un salto enorme per il marketing. <sect2>Sun OS 4 <p> <nidx>disco!sistemi operativi, altri!SunOS 4</nidx> Questo è abbastanza familiare alla maggior parte degli utenti Linux. L'ultima versione è la 4.1.4 più varie patch. Notate comunque che la struttura del file system è abbastanza differente e non è conforme al FSSTND quindi ogni pianificazione deve essere fatta sulla struttura standard. Potete ottenere qualche informazione su questo dalle pagine man: <tt/man hier/. Questo è, come molte pagine man, abbastanza conciso ma dovrebbe essere un buon inizio. Se siete ancora confusi dalla struttura almeno sarà ad un livello più alto. <sect2>Sun OS 5 (aka Solaris) <p> <nidx>disco!sistemi operativi, altri!SunOS 5</nidx> <nidx>disco!sistemi operativi, altri!Solaris</nidx> Si presenta con un elegante sistema di installazione che gira sotto Openwindows, che vi aiuterà a partizionare ed a formattare i dischi prima dell'installazione del sistema da CD-ROM. Fallirà anche se il vostro setup dei dischi è troppo vasto e dal momento che serve un'intera sessione di installazione da un CD-ROM pieno, in un'unità 1x questo fallimento vi piomberà addosso dopo troppo tempo. Questa è l'esperienza che abbiamo fatto quando lo usavo al lavoro. Quindi installavamo tutto su un solo disco e poi spostavamo le directory tra i dischi. Le impostazioni abituali sono sensibili alla maggior parte delle cose, ma rimane ancora una piccola controversia: i dischi swap. Sebbene il manuale ufficiale raccomanda dischi di swap multipli (che sono utilizzati in maniera simile a Linux) abitualmente si utilizza un disco solo. Si raccomanda di cambiare ciò il prima possibile. Sun OS 5 offre inoltre un file system progettato in maniera specifica per i file temporanei, <tt/tmpfs/. Offre un miglioramento significativo della velocità rispetto a <tt/ufs/ ma non c'è sopravvivenza al riavvio. <!-- This is a kind of souped up RAM disk, and like ordinary RAM disks the contents is lost when the power goes. If space is scarce parts of the pseudo drive is swapped out, so in effect you store temporary files on the swap partition. Linux does not have such a file system; it has been discussed in the past but opinions were mixed. I would be interested in hearing comments on this. --> L'unico commento quindi è: state attenti! Sotto Solaris 2.0 sembra che creare file troppo grandi in <tt>/tmp</tt> possa causare una trappola con kernel panic da saturazione dello spazio swap. Ciò che risulta da ciò che accade è la perdita di ogni dato su un RAMdisk dopo avere spento e quindi risulta difficile capire ciò che accade dopo avere spento. Ciò che è peggio, sembra che i processi dello spazio utente possano causare questo kernel panic e sebbene questo problema sia molto a cuore, è meglio non utilizzare <tt/tmpfs/ in ambienti potenzialmente ostili. Controllate anche le note su <ref id="tmpfs" name="tmpfs">. <!-- and <ref id="comb-swap-n-tmp" name="Combining swap and /tmp">. --> Trivia: C'è anche un film chiamato Solaris, un film di fantascienza che è molto, molto lungo, lento ed incomprensibile. Questo è spesso stato segnalato quando Solaris (il SO) apparve... <sect2>BeOS <p> <nidx>disco!sistemi operativi, altri!BeOS</nidx> Questo sistema operativo è uno dei più recenti ad arrivare e ha la caratteristica di avere un file system che ha uno stampo ad archivio. C'è un driver per il file system BFS che stanno sviluppando per Linux ed è disponibile in versione alpha. Per maggiori informazioni controllate la <url url="http://hp.vector.co.jp/authors/VA008030/bfs" name="Linux BFS page"> dove sono disponibili anche le patch. <sect>Cluster <p> <nidx>disco!tecnologie!cluster</nidx> In questa sezione accennerò brevemente al modo in cui le macchine possono essere connesse tra loro ma questo è un argomento molto ampio che potrebbe essere oggetto di un HOWTO separato, suggerimento, suggerimento. Inoltre parlando concisamente, questa sezione giace fuori dallo scopo di questo HOWTO, quindi se avete voglia di gloria, <em/voi/ potreste contattarmi e accollarvi questa parte e riversarla su un nuovo documento. In questi giorni i computer diventano datati con una frequenza eccezionale. Non c'è comunque ragione per non fare un buon uso del vecchio hardware con Linux. Utilizzando un computer vecchio e fuori moda come un server di rete può essere sia utile nella propria essenza che come un buon esercizio didattico. Questo gruppo di computer collegati in rete può assumere diverse forme ma per rimanere nell'argomento di questo HOWTO mi limiterò alle strategie dei dischi. Nonostante ciò spererei che qualcun altro si accollasse questo argomento e lo riversasse in un proprio documento. Questa è un'area eccitante di attività oggi, e molte forme di raggruppamento sono disponibili oggi, spaziando dal bilanciamento del carico di lavoro automatico della rete locale ad un hardware più esotico come la Scalable Coherent Interface (SCI) che fornisce una stretta integrazione di macchine, covertendole effettivamente in una macchina unica. Vari tipi di raggruppamenti sono stati disponibili per macchine più grandi per qualche tempo e il gruppo VAXcluster è forse un esempio ben conosciuto di ciò. Il raggruppamento è fatto di solito al fine di condividere le risorse quali dischi, stampanti, terminali, ecc., ma anche per elaborare risorse ugualmente in maniera trasparente tra i nodi computazionali. Non c'è una definizione universale di raggruppamento, qui è inteso per definire una rete di macchine che combina le proprie risorse per servire gli utenti. Ammetto che questa è una definizione poco valida ma ciò cambierà più tardi. In questi giorni inoltre Linux offre caratteristiche di raggruppamento ma all'inizio descriverò solamente una semplice rete locale. È un buon modo per riutilizzare il vecchio ed altrimenti inutilizzabile hardware, fino a che possono permettere a Linux o a qualcosa del genere di girare. Uno dei modi migliori di utilizzare una vecchia macchina è un server di rete nel caso in cui la velocità effettiva sia verosimilmente limitata dall'ampiezza di banda piuttosto che dalla pura prestazione computazionale. Per utilizzo domestico potreste spostare la seguente funzionalità presso una macchina più vecchia utilizzata come server: <itemize> <item>news <item>posta <item>proxy web <item>server di stampa <item>modem server (PPP, SLIP, FAX, posta Vocale) </itemize> Potete anche montare con <tt/NFS/ i dischi sulla vostra stazione operativa riducendo le necessità di spazio disco. Comunque leggete il FSSTND per vedere quali directory <em/non/ dovrebbero essere esportate. I miglior candidati per esportare tutte le macchine sono <tt>/usr</tt> e <tt>/var/spool</tt> e possibilmente <tt>/usr/local</tt> ma probabilmente non <tt>/var/spool/lpd</tt>. La maggior parte delle volte anche i dischi lenti, fornirebbero una prestazione sufficiente. D'altro canto, se processate direttamente sui dischi del server o avete un sistema di rete molto veloce, potreste volere ripensare alla vostra strategia ed utilizzare dischi più veloci. Le caratteristiche di ricerca su un server web o ricerca su un archivio di news ne sono esempi. Una rete del genere può essere un modo eccellente di imparare l'amministrazione di rete e mettere su la propria rete tostapane, come è spesso chiamata. Potete ottenere maggiori informazioni su questo in altri HOWTO ma ci sono due cose importanti che dovreste tenere a mente: <itemize> <item>Non tirate fuori dal nulla i numeri IP. Configurate la vostra rete interna utilizzando numeri IP riservati per utilizzo privato, es. utilizzate il vostro server di rete come router che gestisca questo mascheramento di IP. <item>Ricordate che se configurate in aggiunta il router come un firewall, potreste non essere in grado di accedere ai vostri dati dal di fuori, a seconda della configurazione del firewall. </itemize> La rete <em/nyx/ fornisce un esempio di gruppo nel senso definito qui. Esso consiste delle seguenti macchine: <descrip> <tag/nyx/ è una delle due macchine per il login utente e fornisce qualche servizio di rete. <tag/nox/ (aka nyx10) è la macchina di login utente principale ed è anche il server di posta. <tag/noc/ è un server dedicato alle news. Lo spool delle news è reso accessibile attraverso NFS montando verso nyx e nox. <tag/arachne/ (aka www) è il server web. Le pagine Web sono scritte montando NFS su nox. </descrip> Ci sono inoltre altri progetti di raggruppamento più avanzato in atto <itemize> <item> <url url="http://cesdis.gsfc.nasa.gov/linux/beowulf/beowulf.html" name="Il progetto Beowulf"> <item> <url url="http://www.disi.unige.it/project/gamma/" name="The Genoa Active Message Machine (GAMMA)"> </itemize> <p> Il raggruppamento di alta tecnologia richiede interconnesioni ad alta tecnologia e SCI è uno di essi. Per scoprirne di più potete sia cercare sull'home page della <url url="http://www.dolphinics.no/" name="Dolphin Interconnect Solutions"> che è uno degli attori principali in questo campo, o potete vedere <url url="http://www.scizzl.com/" name="scizzl">. <p> I server di posta centralizzati che utilizzano IMAP stanno diventando sempre più popolari visto che i dischi diventano grandi abbastanza da contenere tutta la posta archiviata indefinitamente ed inoltre sufficientemente economici da renderla un'opzione realizzabile. Sfortunatamente è diventato chiaro che montare attraverso <tt/NFS/ la posta da un'altra macchina può causare la corruzione del database IMAP visto che il software del server non gestisce le interruzioni dell'NFS troppo bene e le interruzioni di NFS sono un'evenienza abbastanza comune. Mantenete in ogni caso l'archivio della posta localmente rispetto al server IMAP. <sect>Punti di Montaggio <p> <nidx>disco!punti di montaggio</nidx> Nel progettare la struttura del disco è importante non suddividere in maniera errata la struttura dell'albero delle directory, ecco il perché di questa sezione. Dal momento che è altamente dipendente dal FSSTND è stato messo da parte in una sezione separata, e probabilmente andrà forse completamente riscritta quando FHS sarà adottato in una distribuzione Linux. Nel frattempo lo farà questa. Ricordate che questa è una lista di dove una separazione <em/può/ avvenire, non dove <em/deve/ essere. Come sempre, è sempre richiesto un giudizio coscienzioso. Ancora una volta qui sarà data un'indicazione rozza. I valori indicano <tscreen><verb> 0=non separare qui 1=sconsigliato ... 4=utile 5=consigliato </verb></tscreen> Al fine di mantenere ancora la lista, le parti non interessanti sono state rimosse. <tscreen><verb> Directory Appropriatezza / | +-bin 0 +-boot 0 +-dev 0 +-etc 0 +-home 5 +-lib 0 +-mnt 0 +-proc 0 +-root 0 +-sbin 0 +-tmp 5 +-usr 5 | \ | +-X11R6 3 | +-bin 3 | +-lib 4 | +-local 4 | | \ | | +bin 2 | | +lib 4 | +-src 3 | +-var 5 \ +-adm 0 +-lib 2 +-lock 1 +-log 0 +-preserve 1 +-run 1 +-spool 4 | \ | +-mail 3 | +-mqueue 3 | +-news 5 | +-smail 3 | +-uucp 3 +-tmp 5 </verb></tscreen> C'è ovviamente una marea di aggiustamenti possibili, ad esempio ad un utente casalingo non importerà la separazione della gerarchia <tt>/var/spool</tt> ma ad un ISP serio dovrebbe. La soluzione qui è <em/l'utilizzo/. <em/QUIZ!/ Perché <tt>/etc</tt> non dovrebbe mai risiedere su una partizione separata? Risposta: Le istruzioni di montaggio durante l'avvio si trovano nel file <tt>/etc/fstab</tt> quindi se questo è su una partizione separata e non montata è come se una chiave di un cassetto chiuso sia nel cassetto stesso (sì, non faccio praticamente nulla per ravvivare questo HOWTO). <sect>Considerazioni e Dimensionamento <p> <nidx>disco!considerazioni e dimensionamento</nidx> Il punto di inizio in questo, sarà considerare dove siete e cosa volete fare. Un tipico sistema casalingo inizia con hardware esistente e l'utente Linux convertito da poco vorrà ottenere il massimo dall'hardware esistente. Qualcuno che mette su un nuovo sistema per uno scopo specifico (come un ISP) dovrà considerare invece quale è lo scopo e comprare in relazione ad esso. Essendo ambizioso, cercherò di ricoprire l'intero ambito. Vari scopi avranno anche necessità differenti riguardanti il posizionamento del file system sui dischi, una grande macchina multiutente sarà migliore con la directory <tt>/home</tt> su un disco separato, solo per dare un esempio. In generale, per prestazione è vantaggioso dividere la maggior parte delle cose su più dischi possibili ma c'è un numero limitato di dispositivi che possono vivere su un bus SCSI ed il costo è naturalmente un altro fattore. Ugualmente importante, la manutenzione del file system diventa più complicata con l'aumentare del numero delle partizioni e dei dischi fisici. <sect1>Sistemi casalinghi <p> <nidx>disco!considerazioni e dimensionamento!sistemi casalinghi</nidx> Con l'hardware economico che si può comprare oggi, è possibile avere un sistema grande a casa che è ancora economico, sistemi che battono i maggiori server del passato. Mentre molti hanno iniziato a mettere su un server Linux con vecchi dischi scartati (che è il motivo per il quale è nato questo HOWTO), molti possono permettersi oggi di comprare dischi da 20 GB. La dimensione rimane importante per alcuni, e qui ci sono un po' di linee guida: <descrip> <tag/Testare/ Linux è semplice e non avete nemmeno bisogno di un disco rigido per provarlo, se potete fare il boot dai floppy, probabilmente riuscirete a farlo funzionare sul vostro hardware. Se il kernel standard non vi funziona, non dimenticate che spesso ci possono essere versioni speciali dei dischi di boot per combinazioni inusuali di hardware che possono risolvere i vostri problemi iniziali fino a che non compilate il vostro kernel personale. <tag/Conoscere/ il sistema operativo è qualcosa in cui Linux eccelle, c'è una marea di documentazione ed i sorgenti sono disponibili. Un disco singolo con 50 MB è sufficiente per farvi iniziare con una shell e una cerchia ristretta dei comandi e delle utilità più frequentemente utilizzate. <tag/Un utilizzo per hobby/ o per un apprendimento più serio richiede più comandi ed utilità ma un disco singolo è ancora ciò che è necessario, 500 MB saranno spazio sufficiente, sia per i sorgenti che per la documentazione. <tag/Serio/ sviluppo software o semplicemente serio lavoro richiede anche molto altro spazio. A questo stadio, probabilmente avrete entrate di posta e news che richiedono file di coda e molto spazio. Dischi separati per compiti di vario genere cominceranno a mostrare un beneficio. A questo stadio probabilmente avrete anche un po' di dischi. Le necessità di dischi diventano più dure da stimare ma mi aspetterei che 2-4 GB siano sufficienti, anche per un piccolo server. <tag/I server/ sono di molti tipi, variando da server di posta fino a server ISP di piena grandezza. Una base di 2 GB per il sistema principale dovrebbe essere sufficiente, poi aggiungete spazio e forse anche dischi per caratteristiche separate che offrirete. Il costo è il maggior fattore limitante qui ma siate preparati a spendere un po' se volete giustificare la "S" dell'ISP. In verità non tutti lo fanno. Praticamente un server è dimensionato come ogni macchina per utilizzo serio con spazio aggiunto per i servizi offerti, e tende ad essere limitato dall'IO piuttosto che dalla CPU. Con tecnologia economica sia per linee di terra come anche per reti radio, è molto probabile che molto presto, gli utenti casalinghi avranno i propri server più o meno permenentemente agganciati alla rete. </descrip> <sect1>Server <p> <nidx>disco!server</nidx> Grossi compiti richiedono grossi dischi ed una sezione separata qui. Se possibile mantenete quanto più possibile su dischi separati. Qualcuna delle appendici descrivono il setup di un piccolo server dipartimentale per 10-100 utenti. Qui presenterò un po' di considerazioni per i server limite. In generale non dovreste avere paura di utilizzare RAID, non solo perché è veloce e sicuro ma anche perché rende la crescita un po' meno dolorosa. Tutte le note qui sotto sono aggiunte ai punti menzionati in precedenza. I server popolari raramente sono lì per caso, piuttosto, crescono nel tempo e questo richiede quantitativi generosi di spazio disco come anche una buona connessione di rete. In molti di questi casi potrebbe essere una buona idea riservare ad ogni compito interi dischi SCSI, da soli o in fila. In questo modo potrete spostare i dati nel caso il computer fallisse. Notate che trasferire i dischi attraverso i computer non è semplicissimo e potrebbe anche non funzionare sempre, specialmente nel caso di dischi IDE. Gli insiemi di dischi, richiedono setup attenti al fine di ricostruire i dati correttamente, quindi potreste voler mantenere una copia cartacea del vostro file <tt/fstab/ come anche una nota degli ID degli SCSI. <sect2>Directory Home <label id="server-home-dirs"> <p> <nidx>disco!server!directory home</nidx> Stimate di quanti dischi avete bisogno, se sono più di 2, raccomanderei RAID, fortemente. Altrimenti dovreste separare gli utenti attraverso i vostri dischi dedicati agli utenti basati su una qualche specie di semplice algoritmo di hash. Ad esempio potreste utilizzare le prime due lettere del nome utente, quindi <tt>jbloggs</tt> viene situato in <tt>/u/j/b/jbloggs</tt> dove <tt>/u/j</tt> è un link simbolico ad un disco fisico quindi potete ottenere un carico bilanciato sui vostri dischi. <sect2>FTP Anonimo <p> <nidx>disco!server!FTP, anonimo</nidx> <nidx>disco!server!FTP anonimo</nidx> Questo è un servizio essenziale se siete seri riguardo al servizio. I server buoni sono ben mantenuti, documentati, aggiornati e immensamente popolari, non importa dove sono localizzati nel mondo. Il grosso server <url url="ftp://ftp.funet.fi" name="ftp.funet.fi"> è un eccellente esempio di ciò. In generale questo non è una questione di CPU ma di ampiezza di banda di rete. La dimensione è difficile da calcolare, principalmente è una questione di ambizione e attitudini del server. Credo che il grosso archivo presente presso <url url="ftp://ftp.cdrom.com" name="ftp.cdrom.com"> sia una macchina *BSD con un disco da 50 GB. Inoltre anche la memoria è importante per un server FTP dedicato, circa 256 MB di RAM sarebbero sufficienti per un server molto grande, anche se server più piccoli possono farcela bene anche con 64 MB di RAM. Le connessioni di rete sarebbero comunque sempre il fattore più importante. <sect2>WWW <label id="www"> <p> <nidx>disco!server!WWW</nidx> <nidx>disco!server!World Wide Web</nidx> Per molti questa è la ragione principale per andare in Internet, infatti ora sembra che molti li considerino la stessa cosa. Inoltre ad essere intensi in rete consegue il fatto di avere un bel po' di attività nei dischi per questo motivo, principalmente riguardante le cache. Mantenere le cache su un disco separato e veloce, porterebbe beneficio. Anche meglio sarebbe installare un server proxy di cache. In questo modo potreste ridurre la dimensione della cache per ogni utente ed aumentare la velocità del servizio riducendo nello stesso tempo le necessità di ampiezza di banda. Con un server proxy di cache, avrete bisogno di un insieme di dischi veloci; RAID0 sarebbe l'ideale visto che l'affidabilità qui non è importante. Una capacità più alta è importante ma circa 2 GB sarebbero sufficienti per la maggior parte. Ricordatevi di far coincidere il periodo della cache con la capacità e la domanda. Periodi troppo lunghi sarebbero d'altro canto uno svantaggio, se possibile provate a regolare a seconda dell'URL. Per maggiori informazioni, controllate i server più utilizzati come <tt/Harvest/, <url url="http://www.nlanr.net/Squid" name="Squid"> e quello della <url url="http://www.netscape.com" name="Netscape">. <sect2>Posta <p> <nidx>disco!server!posta</nidx> Gestire la posta è qualcosa che molte macchine fanno fino ad un certo punto. I grandi server di posta, comunque, fanno gruppo a parte. Questo è un compito su richiesta e un grande server può essere lento anche se connesso a dischi veloci e ad una rete molto efficiente. Nel mondo Linux, il grande server come <tt/vger.rutgers.edu/ è un esempio ben noto. Diversamente da un servizio di news che è distribuito e che può parzialmente ricostruire lo spool utilizzando altre macchine come meccanismo di alimentazione, i server di posta, sono centralizzati. Questo rende la sicurezza molto più importante, quindi per un server principale, potreste considerare una soluzione RAID con enfasi sull'affidabilità. La dimensione è difficile da stabilire, dipende tutto da quante liste fate girare e da quanti iscritti avete. Notate che in questi giorni si sta passando dall'utilizzare <tt/POP/ per prelevare la posta sulla macchiana locale dal server di posta all'utilizzo di <tt/IMAP/ per servire la posta mantenendo gli archivi di posta centralizzati. Questo vuol dire che la posta non è più accodata nel senso originale ma spesso cresce, richiedendo un'enormità di spazio disco. Inoltre sempre più si (ab)usano i messaggi con allegati per spedire ogni sorta di roba, anche un piccolo documento di un elaboratore testi può facilmente finire sopra il MB. Dimensionate i vostri dischi generosamente e controllate quanto spazio resta. <sect2>News <p> <nidx>disco!server!news</nidx> Questo è sicuramente un compito di grande volume e molto dipendente dal gruppo a cui vi iscrivete. Sul Nyx c'è un meccanismo di alimentazione molto completo ed i file di coda occupano circa 17 GB. I gruppi più grandi sono senza dubbio nella gerarchia <tt>alt.binary.*</tt>, quindi se per qualche ragione decidete di non averli, potete avere un buon servizio forse con 12 GB. In ogni caso altri, che rimarranno senza nome, pensano che 2 GB siano sufficienti per conferirsi il titolo di ISP. In questo caso le news scadono molto velocemente che penso che chiamarli IsP è abbastanza giustificato. Un completo meccanismo di alimentazione per le news significa un traffico di qualche GB ogni giorno e questo è un numero sempre crescente. <sect2>Altri <p> <nidx>disco!server!altri</nidx> Ci sono molti servizi disponibili sulla rete e nonostante ciò molti sono stati messi nell'ombra dalla rete. Nonostante ciò servizi quali <em/archie/, <em/gopher/ e <em/wais/ esistono ancora e rimangono strumenti di valore sulla rete. Se state pensando in maniera coscienziosa di iniziare a creare un server principale, dovreste anche considerare questo servizio. Determinare lo spazio necessario è difficile, dipende tutto dalla popolarità e dalla domanda. Fornire un buon servizio ha inevitabilmente i suoi costi, lo spazio disco è solamente uno di essi. <sect2>Raccomandazioni sul Server <p> <nidx>disco!server!raccomandazioni</nidx> I server oggi richiedono molti dischi per funzionare in maniera soddisfacente per le impostazioni commerciali. Visto che il tempo medio tra i fallimenti (MTBF) diminuisce rapidamente con l'aumentare dei componenti, è consigliabile utilizzare RAID per protezione ed utilizzare un numero di dischi di media grandezza piuttosto che uno singolo ed enorme. Inoltre guardate anche nell progetto High Availability (HA) per maggiori informazioni. <sect1>Trappole <p> <nidx>disco!trappole</nidx> I pericoli di dividere ogni cosa su partizioni separate sono brevemente menzionati nella sezione riguardante la gestione del volume. Comunque, molte persone mi hanno chiesto di enfatizzare questo punto più fermamente: quando una partizione si riempie, non può crescere di più, non importa se c'è un mare di spazio su altre partizioni. In particolare tenete d'occhio la crescita esplosiva nella coda delle news (<tt>/var/spool/news</tt>). Per macchine multi utente con le quote tenete sotto controllo <tt>/tmp</tt> e <tt>/var/tmp</tt> visto che c'è qualcuno che cerca di nascondere i propri file lì, basta cercare i file che finiscono per gif o jpeg... Praticamente, per singoli dischi fisici questo schema offre guadagni molto piccoli, piuttosto che rendere più facile il controllo della crescita dei file (utilizzando '<tt>df</tt>') e del posizionamento fisico delle tracce. Più importante, non c'è possibilità per accesso di disco parallelo. La disponibilità di avere un sistema per la gestione di un volume potrebbe risolvere ciò, ma ciò accadrà in futuro. Comunque, quando file system più specializzati saranno disponibili, anche un disco singolo potrà beneficiare dall'essere diviso in diverse partizioni. <!-- <**** expand here (2) &&&> --> <sect>Struttura del Disco <label id="disk-layout"> <p> <nidx>disco!struttura del disco</nidx> <nidx>disco!struttura, disco</nidx> Con tutto questo in testa siamo pronti per iniziare la struttura. Ho basato ciò sul mio metodo sviluppato quando ho preso 3 vecchi dischi SCSI e ho provato tutte le possibilità. Le tavole nelle appendici sono disegnate per semplificare il processo di mappatura. Sono state progettate per aiutarvi attraverso il processo di ottimizzazione come anche per fare un log utile nel caso di riparazione del sistema. Sono dati anche alcuni esempi. <!-- At the end of this document there is an appendix with a few blank forms that you can fill in to help you decide and design your system. The following few paragraphs will refer to them. --> <sect1>Selezione per il Partizionamento <p> <nidx>disco!struttura, disco!partizionamento</nidx> Determinate le vostre necessità ed organizzate una lista di tutte le parti del file system che volete posizionare su partizioni separate ed ordinatele in ordine decrescente di richiesta di velocità e quanto spazio volete dare ad ogni partizione. La tabella presente nella sezione <ref id="app-a" name="Appendice A"> è uno strumento utile per selezionare quali directory dovreste mettere su partizioni differenti. È ordinata in ordine logico con lo spazio per le vostre aggiunte e annotazioni riguardo i punti di montaggio e sistemi addizionali. Inoltre esso non è ordinato per velocità, invece le necessità di velocità sono indicate da pallini ('ò). Se avete intenzione di impostare il RAID annotatevi i dischi che volete utilizzare e quali partizione volete usare con RAID. Ricordatevi che le varie soluzioni RAID offrono differenti velocità e gradi di affidabilità. (Solo per farla più facile assumerò che abbiamo un insieme identico di dischi SCSI e nessun tipo di RAID). <sect1>Organizzare le Partizioni sui Dischi <p> <nidx>disco!struttura, disco!partizioni di mappatura</nidx> <nidx>disco!struttura, disco!partizioni, mappatura</nidx> Quindi ora vogliamo mettere le partizioni sui dischi fisici. Lo scopo del seguente algoritmo è di aumentare il parallelismo e la capacità del bus. In questo esempio i dischi sono A, B e C e le partizioni sono 987654321 dove 9 è la partizione con la più alta necessità di velocità. Partendo da un drive noi 'avremo' la linea della partizione attraverso i dischi in questo modo: <tscreen><verb> A : 9 4 3 B : 8 5 2 C : 7 6 1 </verb></tscreen> Questo fa sì che la 'somma delle necessità di velocità' sia il più possibile omogenea per tutti i dischi. Utilizzate la tabella nella sezione <ref id="app-b" name="Appendice B"> per selezionare quale disco utilizzare per ogni partizione al fine di ottimizzare il parallelismo. Annotate le caratteristiche di velocità dei vostri dischi e annotate ogni directory nell'apposita colonna. Siate preparati a mischiare directory, partizioni e dischi prima di essere soddisfatti. <sect1>Ordinare le Partizioni sui Dischi <p> <nidx>disco!struttura, disco!ordinare le partizioni</nidx> <nidx>disco!struttura, disco!partizioni, ordinamento</nidx> Dopo di ciò è consigliato selezionare la numerazione delle partizioni per ciascun disco. Utilizzate la tabella nella sezione <ref id="app-c" name="Appendice C"> per selezionare i numeri di partizione al fine di ottimizzare in base alle caratteristiche di traccia. Alla fine dovreste avere una tabella ordinata in ordine crescente per numero di partizione. Riempite poi questi numeri nelle tabelle presenti nell'appendice A e B. Troverete utili queste tabelle quando eseguirete il programma di partizionamento (<tt>fdisk</tt> or <tt>cfdisk</tt>) e al momento di fare l'installazione. <sect1>Ottimizzazione <p> <nidx>disco!struttura, disco!ottimizzazione delle partizioni</nidx> <nidx>disco!struttura, disco!partizioni, ottimizzazione</nidx> Dopo di ciò, ci sono generalmente poche partizioni che devono essere 'mischiate' nei dischi sia per farcele entrare sia se ci fossero considerazioni speciali riguardanti la velocità, l'affidabilità, file system speciali ecc. In ogni caso, questo fornisce quello che questo autore crede sia un buon punto di inizio per un setup completo dei dischi e delle partizioni. Alla fine è l'utilizzo del momento che determinerà le necessità reali dopo aver fatto così tante premesse. Dopo le operazioni preliminari si dovrebbe assumere che arriva il momento in cui ripartizionare porterebbe benefici. Ad esempio se uno dei 3 dischi nell'esempio menzionato sopra è molto lento in confronto agli altri due, un miglior progetto potrebbe essere il seguente: <tscreen><verb> A : 9 6 5 B : 8 7 4 C : 3 2 1 </verb></tscreen> <sect2>Ottimizzare per Caratteristica <p> <nidx>disco!struttura, disco!ottimizzare per caratteristica</nidx> <nidx>disco!struttura, disco!caratteristiche, ottimizzare per</nidx> Spesso i dischi possono essere simili nell'apparente velocità globale ma qualche vantaggio può essere ottenuto accoppiando i dischi alla dimensione, alla distribuzione ed alla frequenza di accesso. Quindi i file binari sono fatti per dischi con accesso rapido che offre possibilità di accodamento dei comandi, e le librerie sono fatte per dischi con velocità di trasferimento più ampie dove IDE offre una buona prestazione rispetto al prezzo. <sect2>Ottimizzare mediante Parallelizzazione del Disco <label id="opt-drive-parall"> <p> <nidx>disco!struttura, disco!ottimizzare mediante parallelizzazione</nidx> <nidx>disco!struttura, disco!parallelizzare, ottimizzare mediante</nidx> Evitate la contenzione del disco guardando ai task: ad esempio se state accedendo a <tt>/usr/local/bin</tt> ci sono possibilità anche che avrete molto presto bisogno di file da <tt>/usr/local/lib</tt> quindi posizionarli in dischi separati permette meno ricerca e possibili azioni in parallelo e caching del drive. È abbastanza probabile che scegliendo ciò che può apparire inferiore alle caratteristiche del disco, sarà sicuramente vantaggioso se potete ottenere operazioni in parallelo. Identificate compiti comuni, che partizioni utilizzano e cercate di mantenerle su dischi separati. Giusto per illustrare il mio punto di vista, fornirò un po' di esempi dell'analisi dei task. <descrip> <tag/Software da Ufficio/ come l'editing, l'elaborazione testi ed i fogli elettronici, sono tipici esempi di software di bassa intensità sia per quanto riguarda la CPU che l'intensità di disco. In ogni caso, se doveste avere un singolo server per un grande numero di utilizzatori non dovreste dimenticare che molto di questo software ha opportunità di auto salvataggi il che causa traffico extra, generalmente nelle directory home. Dividere gli utenti su più dischi potrebbe ridurre la contenzione. <tag/I news reader/ fanno anche loro auto salvataggi nella directory home quindi gli ISP dovrebbero considerare di separare le directory home. Le code delle News sono note per avere directory profondamente ramificate e gran numero di file molto piccoli. La perdita di una partizione con le code delle News non è per molti un grande problema, quindi sono buone candidate per organizzare un RAID 0 con molti dischi piccoli per distribuire i vari accessi attraverso alberini multipli. Si raccomanda nei manuali e nelle FAQ del server delle news INN di mettere le cose delle news e i file <tt>.overview</tt> su dischi separati per installazioni più grandi. C'è anche una pagina web dedicata all'<url url="http://www.spinne.com/usenet/inn-perf.html" name="ottimizzazione di INN"> che sarebbe bene leggere. <tag/Le applicazioni database/ possono essere pretenziose sia in termini di utilizzo del disco che in termini di richiesta di velocità. I dettagli sono naturalmente specifici alle applicazioni, leggete la documentazione attentamente tenendo ben presente la richiesta di spazio su disco. Inoltre considerate il RAID sia per le prestazioni che per l'affidabilità. <tag/Leggere ed inviare e-mail/ coinvolge directory home come anche i file delle code in entrata ed in uscita. Se possibile mantenete le directory home e i file delle code su dischi separati. Se siete un server di posta o un hub di posta considerate di mettere le directory home e i file delle code su dischi separati. Perdere la posta è una cosa molto brutta, se state gestendo un ISP o un hub principale. Riflettete sul fatto di fare RAID della vostra posta e considerate backup frequenti. <tag/Lo sviluppo di software/ può richiedere un gran numero di directory per file binari, librerie, file include, nonch´ sorgenti e file di progetto. Se possibile dividete il più possibile su dischi separati. Su piccoli sistemi potete posizionare <tt>/usr/src</tt> e i file di progetto sullo stesso disco delle directory home. <tag/Navigare il Web/ sta diventando sempre più popolare. Molti browser hanno una cache locale che può espandersi in volumi abbastanza grandi. Dal momento che questa è utilizzata per richiamare le pagine e nel ritornare alle pagine precedenti, la velocità è abbastanza importante in questi casi. Se invece siete connessi attraverso un proxy server ben configurato, non avete bisogno di più di pochi megabyte per utente per sessione. Controllate anche le sezioni sulle <ref id="server-home-dirs" name="Directory Home"> e <ref id="www" name="WWW">. </descrip> <!-- 990124 moved over to recommendation section <sect1>Usage Requirements <p> <nidx>disk!usage requirements</nidx> When you get a box of 10 or so CD-ROMs with a Linux distribution and the entire contents of the big FTP sites it can be tempting to install as much as your drives can take. Soon, however, one would find that this leaves little room to grow and that it is easy to bite over more than can be chewed, at least in polite company. Therefore I will make a few comments on a few points to keep in mind when you plan out your system. Comments here are actively sought. <descrip> <tag/Testing/ Linux is simple and you don't even need a hard disk to try it out, if you can get the boot floppies to work you are likely to get it to work on your hardware. If the standard kernel does not work for you, do not forget that often there can be special boot disk versions available for unusual hardware combinations that can solve your initial problems until you can compile your own kernel. <tag/Learning/ about operating system is something Linux excels in, there is plenty of documentation and the source is available. A single drive with 50 MB is enough to get you started with a shell, a few of the most frequently used commands and utilities. <tag/Hobby/ use or more serious learning requires more commands and utilities but a single drive is still all it takes, 500 MB should give you plenty of room, also for sources and documentation. <tag/Serious/ software development or just serious hobby work requires even more space. At this stage you have probably a mail and news feed that requires spool files and plenty of space. Separate drives for various tasks will begin to show a benefit. At this stage you have probably already gotten hold of a few drives too. Drive requirements gets harder to estimate but I would expect 2-4 GB to be plenty, even for a small server. <tag/Servers/ come in many flavours, ranging from mail servers to full sized ISP servers. A base of 2 GB for the main system should be sufficient, then add space and perhaps also drives for separate features you will offer. Cost is the main limiting factor here but be prepared to spend a bit if you wish to justify the "S" in ISP. Admittedly, not all do it. </descrip> <sect1>Servers <p> <nidx>disk!servers</nidx> Big tasks require big drives and a separate section here. If possible keep as much as possible on separate drives. Some of the appendices detail the setup of a small departmental server for 10-100 users. Here I will present a few consideration for the higher end servers. In general you should not be afraid of using RAID, not only because it is fast and safe but also because it can make growth a little less painful. All the notes below come as additions to the points mentioned earlier. Popular servers rarely just happens, rather they grow over time and this demands both generous amounts of disk space as well as a good net connection. In many of these cases it might be a good idea to reserve entire SCSI drives, in singles or as arrays, for each task. This way you can move the data should the computer fail. Note that transferring drives across computers is not simple and might not always work, especially in the case of IDE drives. Drive arrays require careful setup in order to reconstruct the data correctly, so you might want to keep a paper copy of your <tt/fstab/ file as well as a note of SCSI IDs. <sect2>Home Directories <label id="server-home-dirs"> <p> <nidx>disk!servers!home directories</nidx> Estimate how many drives you will need, if this is more than 2 I would recommend RAID, strongly. If not you should separate users across your drives dedicated to users based on some kind of simple hashing algorithm. For instance you could use the first 2 letters in the user name, so <tt>jbloggs</tt> is put on <tt>/u/j/b/jbloggs</tt> where <tt>/u/j</tt> is a symbolic link to a physical drive so you can get a balanced load on your drives. <sect2>Anonymous FTP <p> <nidx>disk!servers!FTP, anonymous</nidx> <nidx>disk!servers!anonymous FTP</nidx> This is an essential service if you are serious about service. Good servers are well maintained, documented, kept up to date, and immensely popular no matter where in the world they are located. The big server <url url="ftp://ftp.funet.fi" name="ftp.funet.fi"> is an excellent example of this. In general this is not a question of CPU but of network bandwidth. Size is hard to estimate, mainly it is a question of ambition and service attitudes. I believe the big archive at <url url="ftp://ftp.cdrom.com" name="ftp.cdrom.com"> is a *BSD machine with 50 GB disk. Also memory is important for a dedicated FTP server, about 256 MB RAM would be sufficient for a very big server, whereas smaller servers can get the job done well with 64 MB RAM. Network connections would still be the most important factor. <sect2>WWW <label id="www"> <p> <nidx>disk!servers!WWW</nidx> <nidx>disk!servers!World Wide Web</nidx> For many this is the main reason to get onto the Internet, in fact many now seem to equate the two. In addition to being network intensive there is also a fair bit of drive activity related to this, mainly regarding the caches. Keeping the cache on a separate, fast drive would be beneficial. Even better would be installing a caching proxy server. This way you can reduce the cache size for each user and speed up the service while at the same time cut down on the bandwidth requirements. With a caching proxy server you need a fast set of drives, RAID0 would be ideal as reliability is not important here. Higher capacity is better but about 2 GB should be sufficient for most. Remember to match the cache period to the capacity and demand. Too long periods would on the other hand be a disadvantage, if possible try to adjust based on the URL. For more information check up on the most used servers such as <tt/Harvest/, <url url="http://www.nlanr.net/Squid" name="Squid"> and the one from <url url="http://www.netscape.com" name="Netscape">. <sect2>Mail <p> <nidx>disk!servers!mail</nidx> Handling mail is something most machines do to some extent. The big mail servers, however, come into a class of their own. This is a demanding task and a big server can be slow even when connected to fast drives and a good net feed. In the Linux world the big server at <tt/vger.rutgers.edu/ is a well known example. Unlike a news service which is distributed and which can partially reconstruct the spool using other machines as a feed, the mail servers are centralised. This makes safety much more important, so for a major server you should consider a RAID solution with emphasize on reliability. Size is hard to estimate, it all depends on how many lists you run as well as how many subscribers you have. <sect2>News <p> <nidx>disk!servers!news</nidx> This is definitely a high volume task, and very dependent on what news groups you subscribe to. On Nyx there is a fairly complete feed and the spool files consume about 17 GB. The biggest groups are no doubt in the <tt>alt.binary.*</tt> hierarchy, so if you for some reason decide not to get these you can get a good service with perhaps 12 GB. Still others, that shall remain nameless, feel 2 GB is sufficient to claim ISP status. In this case news expires so fast I feel the spelling IsP is barely justified. A full newsfeed means a traffic of a few GB every day and this is an ever growing number. <sect2>Others <p> <nidx>disk!servers!other</nidx> There are many services available on the net and even though many have been put somewhat in the shadows by the web. Nevertheless, services like <em/archie/, <em/gopher/ and <em/wais/ just to name a few, still exist and remain valuable tools on the net. If you are serious about starting a major server you should also consider these services. Determining the required volumes is hard, it all depends on popularity and demand. Providing good service inevitably has its costs, disk space is just one of them. <sect1>Pitfalls <p> <nidx>disk!pitfalls</nidx> The dangers of splitting up everything into separate partitions are briefly mentioned in the section about volume management. Still, several people have asked me to emphasize this point more strongly: when one partition fills up it cannot grow any further, no matter if there is plenty of space in other partitions. In particular look out for explosive growth in the news spool (<tt>/var/spool/news</tt>). For multi user machines with quotas keep an eye on <tt>/tmp</tt> and <tt>/var/tmp</tt> as some people try to hide their files there, just look out for filenames ending in gif or jpeg... In fact, for single physical drives this scheme offers very little gains at all, other than making file growth monitoring easier (using '<tt>df</tt>') and physical track positioning. Most importantly there is no scope for parallel disk access. A freely available volume management system would solve this but this is still some time in the future. However, when more specialised file systems become available even a single disk could benefit from being divided into several partitions. --> <sect1>Compromessi <p> <nidx>disco!compromessi</nidx> Un modo per evitare le trappole menzionate è semplicemente di dedicare le partizioni fisse a directory di dimensione ben nota come swap, <tt>/tmp</tt> e <tt>/var/tmp</tt> e raggruppare insieme i richiami nelle partizioni rimanenti utilizzando link simbolici. Esempio: un disco lento (<tt>discolento</tt>), un disco veloce (<tt>discoveloce</tt>) ed un assortimento di file. Avendo organizzato <tt/swap/ e <tt/tmp/ sul <tt/discoveloce/; e <tt>/home</tt> e root sul discolento abbiamo le rimanenti directory fittizie <tt>/a/lento</tt>, <tt>/a/veloce</tt>, <tt>/b/lento</tt> e <tt>/b/veloce</tt> da allocare sulle partizioni <tt>/mnt.discolento</tt> e <tt>/mnt.discoveloce</tt> che rappresentano le rimanenti partizioni dei due dischi. Mettere <tt>/a</tt> o <tt>/b</tt> direttamente su entrambe i dischi, conferisce le stesse proprietà alle sottodirectory. Potevamo fare tutte e 4 le directory come partizioni separate ma perderebbe un po' di flessibilità nella gestione della dimensione di ciascuna directory. Una soluzione migliore è quella di fare link simbolici delle 4 directory a directory appropriate sui rispettivi dischi. Quindi facciamo <tscreen><verb> /a/veloce punta a /mnt.discoveloce/a/veloce o /mnt.discoveloce/a.veloce /a/lento punta a /mnt.discolento/a/lento o /mnt.discolento/a.lento /b/veloce punta a /mnt.discoveloce/b/veloce o /mnt.discoveloce/b.veloce /b/lento punta a /mnt.discolento/b/lento o /mnt.discolento/b.lento </verb></tscreen> e abbiamo tutte le directory veloci sul disco veloce senza dovere organizzare una partizione per le 4 directory. La seconda alternativa ci da un file system più piatto che in questo caso rende più semplice tenere sotto controllo la struttura. Lo svantaggio è che all'inizio è uno schema complicato da mettere su e da pianificare e che tutti i punti di montaggio e le partizioni devono essere definiti prima dell'installazione del file system. <sect>Implementazione <p> <nidx>disco!implementazione</nidx> Avendo fatto la struttura, dovreste avere una descrizione dettagliata di cosa va dove. Probabilmente questo sarà su carta ma si spera che qualcuno farà un sistema più automatizzato che possa gestire qualsiasi cosa, a partire dal progetto, attraverso il partizionamento e la formattazione, fino all'installazione. Questa è la strada che uno dovrà seguire per realizzare il progetto. Le distribuzioni moderne hanno mezzi di installazione che vi guideranno attraverso il partizionamento e la formattazione e anche ad organizzare per voi il file <tt>/etc/fstab</tt> automaticamente. Per modifiche posteriori, dovrete capire il meccanismo che sta dietro. <sect1>Dischi e Partizioni <p> <nidx>disco!implementazione!dischi</nidx> <nidx>disco!implementazione!partizioni</nidx> Quando fate partire il DOS o qualcosa del genere troverete che tutte le partizioni sono nominate da <tt/C:/ in avanti, con nessuna differenza tra IDE, SCSI, rete o qualsiasi tipo di supporto che avete. Nel mondo di Linux, questo è abbastanza differente. Durante l'avvio, vedrete le partizioni descritte in questo modo: <code> Dec 6 23:45:18 demos kernel: Partition check: Dec 6 23:45:18 demos kernel: sda: sda1 Dec 6 23:45:18 demos kernel: hda: hda1 hda2 </code> I dischi SCSI sono etichettati <tt/sda/, <tt/sdb/, <tt/sdc/ ecc., e i dischi (E)IDE sono etichettati <tt/hda/, <tt/hdb/, <tt/hdc/ ecc. Ci sono inoltre nomi standard per tutti i dispositivi, tutte le informazioni possono essere trovate in <tt>/dev/MAKEDEV</tt> e in <tt>/usr/src/linux/Documentation/devices.txt</tt>. Le partizioni sono etichettate numericamente per ciascun disco <tt/hda1/, <tt/hda2/ e così via. Sui dischi SCSI ci possono essere 15 partizioni per disco, sui dischi EIDE ce ne possono essere 63. Tutti e due questi limiti eccedono ciò che è attualmente utile per molti dischi. Questi sono poi montati attenendosi al file <tt>/etc/fstab</tt> prima di entrare a far parte del sistema. <sect1>Partizionamento <p> <nidx>disco!implementazione!partizionamento</nidx> <nidx>disco!fdisk</nidx> <nidx>disco!cfdisk</nidx> <nidx>disco!Disk Druid</nidx> Prima di tutto, voi dovete partizionare ogni disco in un bel numero di partizioni separate. Sotto Linux ci sono due metodi principali, <tt/fdisk/ e quello più grafico <tt/cfdisk/. Questi sono programmi complessi, leggetene il manuale <em/molto/ attentamente. Le partizioni sono di 3 tipi, <tt/primarie/, <tt/estese/ e <tt/logiche/. Dovete utilizzare le partizioni <tt/primarie/ per avviare il sistema, ma c'è un massimo di 4 partizioni primarie. Se volete di più, dovete definire una partizione <tt/estesa/ nell'ambito della quale voi definite le vostre partizioni logiche. Ogni partizione ha un numero identificativo che dice al sistema operativo che cosa è, riguardo Linux i tipi che dovete conoscere sono <tt/swap(82)/ e <tt/ext2fs(83)/. C'è un file readme che accompagna <tt/fdisk/ che fornisce maggiori informazioni sul partizionamento. Qualcuno ha appena fatto un <em/Partitioning HOWTO/ che contiene informazioni eccellenti ed approfondite sui grattacapi del partizionamento. Piuttosto che ripeterlo qui e occupare oltre questo documento, farò invece riferimento ad esso per voi. La Redhat ha scritto un'utility visuale chiamata <em/Disk Druid/ che si suppone sia un'alternativa di facile utilizzo di <tt/fdisk/ e <tt/cfdisk/ ed inoltre automatizza un po' di altre cose. Sfortunatamente questo prodotto non è ancora sufficientemente maturo, quindi se lo utilizzate e non riuscite a farlo funzionare, siete ben avvisati di provare <tt/fdisk/ o <tt/cfdisk/. Il <url url="http://www.users.intercom.com/˜ranish/part/" name="Ranish Partition Manager"> è un'altra alternativa libera, mentre <url url="http://www.powerquest.com" name="Partition Magic"> è un'alternativa commerciale che inoltre offre qualche supporto per ridimensionare le partizioni <tt/ext2fs/. Notate che Windows si lamenterà se trova più di una partizione primaria su un disco. Inoltre sembra assegnare le lettere del disco alle partizioni primarie mentre trova i dischi, prima di reiniziare dal primo per assegnare nomi di dischi consecutivi alle partizioni logiche. Se volete DOS/Windows sul vostro sistema, prima di tutto dovreste fare quella partizione, una primaria su cui avviare il boot, fatta con l'<tt/fdisk/ del DOS. Poi, se volete NT, mettete quello. Alla fine, per Linux, create quelle partizioni con l'<tt/fdisk/ di Linux o con programmi equivalenti. Linux è sufficientemente flessibile da avviarsi sia dalle partizioni primarie che da quelle logiche. <sect1>Ripartizionamento <p> <nidx>disco!implementazione!ripartizionamento</nidx> <nidx>disco!fips</nidx> <nidx>disco!Partition Magic</nidx> Alcune volte è necessario cambiare le dimensioni delle partizioni esistenti mantenendone intatto il contenuto. Un modo è ovviamente quello di fare il backup di tutto, ricreare le nuove partizioni e poi ripristinare i vecchi contenuti, e sebbene questo vi fornisca un ottimo modo di testare il vostro sistema di back up, vi porta via un bel po' di tempo. Ridimensionare le partizioni è una semplice alternativa in cui un file system è dapprima contratto nel volume desiderato e poi la tavola di partizione è aggiornata per riflettere la nuova fine della posizione della partizione. Questo processo è comunque molto sensibile al file system. Ripartizionare necessita che ci sia spazio libero alla fine dello spazio file, quindi per assicurarvi di essere in grado di contrarre la dimensione, dovreste innanzitutto deframmentare il vostro disco e svuotare qualsiasi cestino. Utilizzando <url url="http://www.igd.fgh.de/˜aschaefe/fips/" name="fips"> potete ridimensionare una partizione <tt/fat/, e l'ultima versione 1.6 di <tt/fips/ o di <tt/fips 2.0/ sono in grado anche di ridimensionare le partizioni <tt/fat32/. Notate che questi programmi attualmente girano sotto DOS. Ridimensionare altri file system è molto più complesso ma un sistema commerciale abbastanza popolare è <url url="http://www.powerquest.com" name="Partition Magic"> che è in grado di ridimensionare più tipi di file system, inclusi <tt/ext2fs/ mediante il programma <tt/resize2fs/. Al fine di ottenere il massimo da <tt/fips/ dovreste innanzitutto cancellare i file non necessari, svuotare i cestini ecc., prima di deframmentare il vostro disco. In questo modo potete allocare più spazio per altre partizioni. Se il programma si lamenta che ci sono ancora file alla fine del disco, ciò forse è dovuto a file nascosti generati da Microsoft Mirror o da Norton Image. Questi sono probabilmente chiamati <tt/image.idx/ e <tt/image.dat/ e contengono backup di qualche file di sistema. Ci sono prove che in alcuni programmi di deframmentazione di Windows è necessario che la casella "permetti a Windows di spostare i file" <em/non/ sia contrassegnata, altrimenti finirete con l'avere qualche file nell'ultimo cilindro della partizione il che eviterà a FIPS di richiedere spazio. Se avete ancora file non spostabili alla fine della vostra partizione DOS, dovreste ottenere il programma DOS "showfat" versione 3.0 o superiore. Questo vi mostra quali file sono dove così potete avere a che fare con loro direttamente. Ripartizionare è un processo pericoloso come qualsiasi altro partizionamento quindi siete avvisati di avere a portata di mano un backup fresco. <sect1>Il Bug della Partizione Microsoft <label id="microsoft-partition-bug"> <p> <nidx>disco!implementazione!Bug Partizione Microsoft</nidx> <nidx>disco!Microsoft!brutto bug</nidx> Nei prodotti Microsoft fino a Win 98 c'è un bug che vi può causare un po' di problemi: se avete diverse partizioni <tt/fat/ primarie e l'ultima partizione estesa non è una partizione <tt/fat/, il system Microsoft cercherà di montare l'ultima partizione al posto dell'ultima partizione FAT primaria. Maggiori <url url="http://www.v-com.com/95Notes.html" name="informazioni"> su questo sono disponibili sulla rete. Per evitare ciò, potete sistemare una piccola parizione logica <tt/fat/ proprio alla fine del disco. Visto che qualche componente hardware è accompagnato da setup software che è disponibile sotto DOS, questo potrebbe essere a portata di mano in ogni caso. Esempi degni di nota sono i controller RAID da DPT ed un bel numero di schede di rete. <sect1>Dispositivi multipli (<tt>md</tt>) <p> <nidx>disco!implementazione!dispositivi multipli</nidx> <nidx>disco!implementazione!dispositivi, multipli</nidx> Essendo in uno stato di sviluppo dovreste assicurarvi di leggere la documentazione più recente su questa caratteristica del kernel. Spiegata brevemente, funziona aggiungendo partizioni insieme in nuovi dispositivi <tt/md0/, <tt/md1/ ecc. utilizzando <tt/mdadd/ prima che voi li attiviate mediante <tt/mdrun/. Questo processo può essere automatizzato mediante il file <tt>/etc/mdtab</tt>. Il sistema <tt/md/ più recente utilizza <file>/etc/raidtab</file> ed una sintassi differente. Assicuratevi che il pacchetto di strumenti RAID combaci con la versione <tt/md/ dal momento che il protocollo interno è cambiato. Dopo di che li trattate come qualsiasi altra partizione su disco. Procedete con la formattazione ecc. come descritto qui sotto utilizzando questi nuovi dispositivi. C'è ora anche un HOWTO in sviluppo per RAID che utilizza <tt/md/ che dovreste leggere. <sect1>Formattazione <p> <nidx>disco!implementazione!formattazione</nidx> Dopo viene la formattazione della partizione, in cui viene predisposta la struttura dei dati che descriverà i file e dove saranno posti. Se questa è la prima volta si raccomanda la formattazione con verifica. Parlando stringatamente, non dovrebbe essere necessario ma questo stimola l'I/O così tanto da scoprire problemi potenziali come incorretta terminazione, prima che voi archiviate i vostri preziosi dati. Guardate il comando <tt/mkfs/ per maggiori dettagli. Linux è in grado di gestire un gran numero di file system, piuttosto che ripetere i dettagli, potete leggere le pagine di manuale di <tt/fs/ che li descrive in maggior dettaglio. Notate che il kernel, per poter utilizzare queste funzioni, deve avere i driver compilati internamente o come moduli. Quando è ora di compilare il kernel, dovreste leggere attentamente la lista delle caratteristiche del file system. Se utilizzate <tt/make menuconfig/ potete avere un aiuto in linea per ogni tipo di file system. Notate che qualche sistema di disco di recupero ha bisogno che <tt/minix/, <tt/msdos/ e <tt/ext2fs/ vengano compilati nel kernel. Anche le partizioni di swap devono essere preparate e per far questo utilizzate <tt/mkswap/. <sect1>Montaggio <p> <nidx>disco!implementazione!montaggio</nidx> I dati presenti su una partizione non sono disponibili in un file system fino a che essa non è montata in un punto di montaggio. Questo può essere fatto manualmente utilizzando <tt/mount/ o automaticamente durante l'avvio, aggiungendo linee appropriate all'<tt>/etc/fstab</tt>. Leggete il manuale di <tt/mount/ e prestate molta attenzione alle tabulazioni. <sect1><tt/fstab/ <p> <nidx>disco!implementazione!fstab</nidx> <nidx>disco!fstab</nidx> Durante il processo di boot il sistema monta tutte le partizioni come elencate nel file <tt/fstab/ che può apparire così: <tscreen><verb> # <file system> <punto mont.> <tipo> <opzioni> <dump> <pass> /dev/hda2 / ext2 defaults 0 1 None none swap sw 0 0 proc /proc proc defaults 0 0 /dev/hda1 /dosc vfat defaults 0 1 </verb></tscreen> Questo file è in qualche modo sensibile alla formattazione utilizzata quindi è meglio e più conveniente modificarlo utilizzando uno degli strumenti di modifica creati per questo scopo. Brevemente, i campi sono: nome della partizione, dove montare la partizione, tipo di file system, quando montarla, quando effettuare il dump per il backup e quando fare <tt/fsck/. Linux offre la possibilità di fare un controllo di file parallelo (<tt/fsck/) ma per essere efficiente è importante non fare <tt/fsck/ su più di una partizione di un disco alla volta. Per maggiori informazioni fate riferimento alle pagine di manuale di <tt/mount/ e <tt/fstab/. <sect1>Raccomandazioni <p> Avendo costruito ed implementato il vostro intelligente schema, siete ben avvisati di annotarvelo tutto, su carta. È inutile avere le informazioni necessarie su disco, se la macchina è andata. Le tabelle di partizione possono essere danneggiate o perse, nel qual caso è estremamente importante che voi mettiate gli stessi, esatti, numeri in <tt/fdisk/, così da recuperare il vostro sistema. Potete utilizzare il programma <tt/printpar/ per fare una chiara annotazione delle tabelle. Scrivetevi anche i numeri SCSI o i nomi IDE per ogni disco, così potete rimettere insieme il sistema nell'ordine giusto. <sect>Manutenzione <p> <nidx>disco!manutenzione</nidx> È dovere dell'amministratore di sistema tenere d'occhio i dischi e le partizioni. Se dovesse riempirsi una delle partizioni, è probabile che il sistema possa smettere di funzionare correttamente, non importa quanto spazio sia disponibile su altre partizioni, fino a che lo spazio è richiesto. Le partizioni e i dischi possono essere facilmente monitorate utilizzando <tt>df</tt> e dovrebbe essere fatto frequentemente, forse mediante l'utilizzo di un job di cron o con altri strumenti di gestione del sistema. Non dimenticate le partizioni di swap, queste sono monitorate meglio utilizzando uno dei programmi di statistica della memoria come <tt>free</tt>, <tt>procinfo</tt> o <tt>top</tt>. Monitorare l'utilizzo dei dischi è più difficile ma è importante nell'interesse delle prestazioni per evitare la disputa - ponendo troppa domanda su un singolo disco se altri sono disponibili e inattivi. È importante, quando si installano i pacchetti software, avere una chiara idea di dove i vari file devono andare. Come menzionato precedentemente GCC mantiene i file binari in una directory di libreria e ci sono anche altri programmi che per ragioni storiche sono difficili da tenere presente, X11 per esempio ha una struttura inusualmente complessa. Quando il vostro sistema è quasi pieno, è ora di controllare e sfoltire i vecchi messaggi di log ed anche eliminare i file core. L'uso corretto di <tt/ulimit/, nelle impostazioni globali della shell, può essere utile a salvarvi dall'avere i file core sparsi per tutto il sistema. <sect1>Backup <p> <nidx>disco!manutenzione!backup</nidx> Il lettore attento avrà notato un po' di consigli sulla utilità di fare backup. Ci sono storie horror riguardo incidenti e cosa è accaduto al responsabile quando il backup si è rivelato non essere funzionante o anche non esistente. Potreste pensare che sia più semplice investire in backup corretti che in una seconda identità segreta. Ci sono molte opzioni ed anche un mini-HOWTO ( <tt/Backup-With-MSDOS/ ) che spiega in dettaglio cosa dovete sapere. In aggiunta alle specifiche DOS, esso contiene inoltre informazioni generali e gli orientamenti futuri. Oltre a fare questi backup, dovreste assicurarvi che siate in grado di ripristinare i dati. Non tutti i sistemi verificano che i dati scritti siano corretti e molti amministratori hanno iniziato felici a ripristinare i dati dopo un incidente, nella speranza che tutto fosse funzionante, solo per scoprire con orrore che i backup erano inutili. Fate attenzione. <sect1>Deframmentazione <p> <nidx>disco!manutenzione!deframmentazione</nidx> Questa dipende molto dalla struttura del file system, alcuni soffrono di una frammentazione veloce e abbastanza debilitante. Fortunatamente per noi, <tt/ext2fs/ non appartiene a questo gruppo e inoltre c'è stato molto poco da dire riguardo gli strumenti di deframmentazione. Infatti esistono, ma difficilmente se ne ha bisogno. Se per qualche ragione ritenete che ciò sia necessario, la soluzione veloce e facile è di fare un backup e ripristinare. Se solo una piccola area ne è affetta, ad esempio le directory home, potreste fare un <tt/tar/ di essa su una area temporanea di un'altra partizione, <em/verificare/ l'archivio, cancellare l'originale e poi rifarne l'estrazione di nuovo con tar. <sect1>Cancellazioni <p> <nidx>disco!manutenzione!cancellazioni</nidx> Abbastanza spesso le carenze di disco possono essere rimediate semplicemente cancellando i file non necessari accumulati nel sistema. Molto spesso i programmi che terminano di funzionare in maniera anormale, causano confusioni di tutti i tipi nei posti peggiori. Normalmente un core dump si ha dopo una situazione del genere e se non avete intenzione di fare il debug, potete cancellarlo. Questi li possiamo trovare dappertutto quindi siete avvisati di farne una ricerca completa ora e sempre. L'interruzione improvvisa di un programma può inoltre causare tutta una serie di file temporanei che rimangono in posti quali <tt>/tmp</tt> o <tt>/var/tmp</tt>, file che sono automaticamente rimossi quando il programma finisce normalmente. Il riavvio pulisce qualcuna di queste aree ma non necessariamente tutte e se passa molto tempo potreste finire con avere un sacco di roba. Se lo spazio è poco, dovete cancellare con attenzione, assicurandovi che il file non sia in uso in quel momento. Utilità quali <tt/file/ possono spesso dirvi che tipo di file state guardando. Molte cose vengono messe nei log quando il sistema gira, per lo più nell'area <tt>/var/log</tt>. In particolare il file <tt>/var/log/messages</tt> tende a crescere fino a che viene cancellato. È una buona idea mantenere un piccolo archivio di file log per paragonarli se il sistema dovesse cominciare a comportarsi in modo non corretto. Se il sistema di posta o delle news non funziona correttamente, potreste avere crescita eccessiva nelle aree di coda, <tt>/var/spool/mail</tt> e <tt>/var/spool/news</tt> rispettivamente. Fate attenzione ai file di overview visto che hanno un punto che li rende invisibili all'<tt/ls -l/, generalmente è meglio utilizzare <tt/ls -Al/ che ve li svelerà. La saturazione dello spazio dell'utente è un argomento particolarmente complesso. Guerre sono state fatte tra amministratori di sistemi e utenti. Tatto, diplomazia e un budget generoso per i nuovi dischi è ciò di cui si ha bisogno. Utilizzate la caratteristica message-of-the-day, visualizzato durante il login dal file <tt>/etc/motd</tt> per dire agli utenti quando lo spazio è poco. Predisporre la configurazione standard della shell per prevenire la formazione di file core può far risparmiare molto spazio. Alcuni tipi di persone cercano di mascherare i file nel sistema, generalmente cercando di trarre vantaggio dal fatto che i file con un punto davanti al nome sono invisibili al comando <tt/ls/. Un esempio comune sono i file che appaiono come <tt/.../ che anche normalmente non sono visibili, o quando si usa <tt/ls -al/ scompaiono nel rumore di tutti i file come <tt/./ o <tt/../ che sono presenti in ogni directory. C'è comunque una contromisura a ciò, utilizzate <tt/ls -Al/ che sopprime <tt/./ o <tt/../ ma mostra tutti gli altri file con il punto. <sect1>Aggiornamenti. <p> <nidx>disco!manutenzione!aggirnamenti</nidx> Non importa quanto grandi siano i vostri dischi, verrà il tempo in cui scoprirete che ne avete bisogno di altri. Con l'avanzare della tecnologia potete ottenere sempre di più col vostro denaro. Al momento di scrivere ciò, sembra che i dischi da 6.4 GB siano quanto di meglio si possa avere coi vostri soldi. Notate che con i dischi IDE potreste dover rimuovere un vecchio disco, visto che il massimo numero gestito dalla vostra scheda madre è generalmente di 2 o qualche volta di 4. Con lo SCSI, ne potete avere fino a 7 per canale per lo SCSI stretto (8-bit) e fino a 15 per il wide SCSI (15-bit). Qualche adattatore può gestire più di un singolo canale e in ogni caso potete avere più di un adattatore per sistema. La mia raccomandazione personale è che a lungo andare vi troverete meglio con lo SCSI. La domanda che viene è, dove dovrei mettere questo nuovo disco? In molti casi, la ragione per l'espansione è che volete un'area per le code più ampia e in quel caso la soluzione più semplice e veloce è di montare il disco da qualche parte sotto <tt>/var/spool</tt>. D'altra parte, i dischi più nuovi sono generalmente più veloci dei vecchi quindi a lungo andare vi potrebbe sembrare opportuno di fare una riorganizzazione generale, possibilmente utilizzando i vostri vecchi schemi di pianificazione. Se l'aggiornamento è forzato dal fatto che non c'è più spazio in partizioni utilizzate per cose come <tt>/usr</tt> o <tt>/var</tt>, l'aggiornamento è un po' più complesso. Dovreste considerare la possibilità di una riorganizzazione completa dalla vostra distribuzione preferita (e si spera più aggiornata). In questi casi dovreste stare attenti a non sovrascrivere le vostre configurazioni essenziali. Generalmente queste cose sono nella directory <tt>/etc</tt>. Procedete con cura, backup recenti e dischi di recupero che funzionano. L'altra possibilità è di copiare semplicemente la vecchia directory sopra quella nuova che è montata su un punto di montaggio temporaneo, editate il file <tt>/etc/fstab</tt>, fate ripartire il sistema con la nuova partizione al suo posto e controllate che funzioni. Qualora dovesse fallire, potete riavviare con il disco di recupero, rieditare il file <tt>/etc/fstab</tt> e provare di nuovo. Fino a che la gestione dei volumi non diventerà disponibile per Linux, questo è sia complicato che pericoloso. Non vi meravigliate più di tanto se scoprite che avete bisogno di ripristinare il sistema da un backup. Il Tips-HOWTO fornisce l'esempio seguente su come spostare un'intera struttura della directory. <code> (cd /directory/di/origine; tar cf - . ) | (cd /directory/di/destinazione; tar xvfp -) </code> Sebbene questo approccio per muovere alberi di directory è portabile per molti sistemi Unix, è difficile da ricordare. Inoltre esso fallisce con directory troppo annidate quando i nomi dei percorsi diventano troppo lunghi per essere maneggiati da tar (il tar GNU ha caratteristiche speciali per gestire nomi di file lunghi). Se potete utilizzare il cp di GNU (il che accade sempre nel caso di sistemi linux), potete anche utilizzare <code> cp -av /directory/di/origine /directory/di/destinazione </code> Il cp di GNU ha una conoscenza specifica di link simbolici, FIFO e file di dispositivo e li copierà correttamente. Ricordatevi che non è una buona idea provare a trasferire <tt>/dev</tt> o <tt>/proc</tt>. <sect1>Recupero <p> <nidx>disco!mantenimento!recupero</nidx> <nidx>disco!gpart</nidx> I crash di sistema avvengono in molti e divertenti modi e la corruzione della tabella di partizione garantisce sempre il massimo dell'eccitazione. Uno strumento recente e senza dubbio utile per quelli di noi che sono contenti con il normale livello di eccitazione è <url url="http://www.stud.uni-hannover.de/user/76201/gpart" name="gpart"> che significa "Guess PC-Type hard disk partitions" (indovina il tipo delle partizioni dell'hard disk. ndt). Utile. <sect>Questioni Avanzate <p> <nidx>disco!Argomenti avanzati</nidx> Linux ed i sistemi correlati, offrono una marea di possibilità per una distruzione veloce, efficiente e devastante. Questo documento non fa eccezione. Con la potenza c'è il pericolo e le sezioni seguenti descrivono poche altre imprese esoteriche che non dovrebbero essere tentate prima di aver letto e capito la documentazione, le questioni ed i pericoli. Dovreste anche fare backup. Ricordatevi inoltre di provare a ripristinare il sistema da zero dal vostro backup almeno una volta. Altrimenti potreste scoprire di non essere il primo ad avere un backup perfetto e nessuno strumento disponibile per reinstallarlo (o, ancora più imbarazzante, qualche file critico mancante su nastro). Le tecniche qui descritte sono raramente necessarie, ma possonoe essere utilizzate per setup molto specifici. Pensate bene cosa volete ottenere prima di averci a che fare. <sect1>Regolazione del Disco Rigido <p> <nidx>disco!Argomenti avanzati!regolazione, disco rigido</nidx> I paramentri del disco rigido possono essere regolati utilizzando l'utilità <tt/hdparm/. Qui, il parametro più interessante è probabilmente il parametro di lettura che determina quanto prefetch debba essere fatto nella lettura sequenziale. Se volete provarlo, ha più senso regolare per la dimensione di file caratteristica sul vostro disco ma ricordate che questa regolazione è per il disco <em/intero/ il che lo rende più difficile. Probabilmente questo è usato solamente sui grandi server, utilizzando dischi dedicati alle news ecc. Per motivi di sicurezza, i settaggi convenzionali di hdparm sono abbastanza conservativi. Lo svantaggio è che ciò significa che potete ottenere interrupt persi se avete alta frequenza di IRQ, come avreste utilizzando la porta seriale e un disco IDE, visto che gli IRQ degli ultimi maschererebbero altri IRQ. Questo si potrebbe notare da una prestazione inferiore all'ideale nello scaricare i dati dalla rete al disco. Fare <tt/hdparm -u1 dispositivo/ dovrebbe prevenire il mascheramento e aumentare anche le prestazioni, o a seconda dell'hardware, corrompere i dati dell'hard disk. Sperimentazioni con cautela e backup recenti. <sect1>Regolazione del File System <p> <nidx>disco!Argomenti avanzati!regolazione, filesystem</nidx> Molti file system sono disponibili con un'utilità di regolazione e per <tt/ext2fs/ c'è l'utilità <tt/tune2fs/. Diversi parametri possono essere modificati ma forse il parametro più importante è che dimensione dovrebbe essere preservata e chi dovrebbe trarre vantaggio da ciò, il che vi potrà aiutare ad ottenere più spazio utile dai vostri dischi possibilmente al costo di un minor spazio per riparare un sistema qualora dovesse piantarsi. <sect1>Sincronizzazione dell'Alberino <p> <nidx>disco!Argomenti avanzati!sincronizzazione dell'alberino</nidx> Questo non dovrebbe essere pericoloso, se non per il fatto che i dettagli esatti delle connessioni rimangono poco chiare per molti dischi. La teoria è semplice: mantenere una prefissata differenza di fase tra i dischi diversi in un setup RAID fa sì che si debba aspettare di meno che la traccia giusta arrivi in posizione per la testina di lettura/scrittura. In pratica sembra ora che con grandi buffer di lettura nei dischi, l'effetto sia da trascurare. La sincronizzazione dell'alberino non dovrebbe essere utilizzata su RAID0 o RAID 0/1 visto che perdereste il beneficio di avere le testine di lettura sopra aree differenti dei settori rispecchiati. <sect>Ulteriori Informationi <p> <nidx>dischi!risorse di informazioni</nidx> C'è un'enormità di informazioni che si dovrebbero conoscere nel metter su un sistema più grande, ad esempio per un Fornitore di Accessi News o un generico Fornitore di Accessi Internet. Le FAQ nei gruppi seguenti sono utili: <sect1>News group <p> <nidx>disco!risorse di informazioni!news group</nidx> Alcuni dei news group più interessanti sono: <itemize> <item><url url="news:comp.arch.storage" name="Archiviazione">. <item><url url="news:comp.sys.ibm.pc.hardware.storage" name="Archiviazione su PC">. <item><url url="news:alt.filesystems.afs" name="AFS">. <item><url url="news:comp.periphs.scsi" name="SCSI">. <item><url url="news:comp.os.linux.setup" name="Linux setup">. </itemize> La maggior parte dei newsgroup ha le proprie FAQ che sono organizzate per rispondere a molte delle vostre domande, come indica il nome Frequently Asked Question (domande poste frequentemente). Versioni recenti dovrebbero essere postate regolarmente sui newsgroup rilevanti. Se non potete trovarle nelle vostre code di stampa, potete andare direttamente al <url url="ftp://rtfm.mit.edu" name="sito FTP del maggior archivio di FAQ">. Le versioni WWW posso essere lette nel <url url="http://www.cis.ohio-state.edu/hypertext/faq/usenet/FAQ-List.html" name="sito WWW del maggior archivio di FAQ">. Qualche FAQ ha il proprio sito, di particolare interesse qui abbiamo <itemize> <item><url url="http://www.paranoia.com/˜filipg/HTML/LINK/F_SCSI.html" name="SCSI FAQ"> e <item><url url="http://alumni.caltech.edu/˜rdv/comp_arch_storage/FAQ-1.html" name="comp.arch.storage FAQ">. </itemize> <sect1>Mailing List <p> <nidx>disco!risorse di informazioni!mailing list</nidx> Questi sono canali di bassa confusione principalmente dedicati agli sviluppatori. Pensate due volte prima di chiedere lì visto che il chiasso rallenta lo sviluppo. Tra le liste rilevanti troviamo <tt/linux-raid/, <tt/linux-scsi/ e <tt/linux-ext2fs/. Molte delle mailing list più utili girano sul server <tt>vger.rutgers.edu</tt> ma questo è notoriamente sovraccarico, quindi cercate di trovare un mirror. C'è qualche lista mirrorata presso <url url="http://www.redhat.com" name="The Redhat Home Page">. Molte liste sono inoltre accessibili presso <url url="http://www.linuxhq.com/lnxlists" name="linuxhq">, ed il resto del sito è una miniera di utili informazioni. Se volete trovare di più riguardo le liste disponibili potete mandare un messaggio con la riga <tt/lists/ al list server presso vger.rutgers.edu ( <htmlurl url="mailto:majordomo@vger.rutgers.edu" name="majordomo@vger.rutgers.edu">). Se avete bisogno di aiuto su come utilizzare il mail server, mandate semplicemente la riga <tt/help/ allo stesso indirizzo. Vista la popolarità di questo server, è probabile che passerà un po' di tempo prima che otteniate una risposta, o anche i messaggi, dopo aver spedito il comando <tt/subscribe/. C'è inoltre un bel numero di list server majordomo che possono essere di qualche interesse come la lista dei driver EATA ( <htmlurl url="mailto:linux-eata@mail.uni-mainz.de" name="linux-eata@mail.uni-mainz.de">) e la lista intelligente di IO <htmlurl url="mailto:linux-i2o@dpt.com" name="linux-i2o@dpt.com">. Le mailing list sono in uno stato di flux ma potete trovare link ad un bel numero di liste interessanti dalla <url url="http://metalab.unc.edu/LDP/" name="Linux Documentation Homepage">. <sect1>HOWTO <p> <nidx>disco!risorse di informazioni!HOWTO</nidx> Questi vanno intesi come punti di partenza per ottenere l'informazione di supporto o anche per mostrarvi come risolvere uno specifico problema. Tra gli HOWTO rilevanti troviamo <tt/Bootdisk/, <tt/Installation/, <tt/SCSI/ e <tt/UMSDOS/. Il sito principale per questi è l'<url url="http://metalab.unc.edu/LDP/" name="archivio LDP"> presso Metalab (formalmente conosciuto come Sunsite). C'è un nuovo HOWTO che ha a che fare con il mettere su un sistema RAID DPT, controllate la <url url="http://www.ram.org/computing/linux/dpt_raid.html" name="DPT RAID HOWTO homepage">. <sect1>Mini-HOWTO <p> <nidx>disco!risorse di informazioni!mini-HOWTO</nidx> Questi sono testi liberi più piccoli rispetto agli HOWTO. Tra i mini-HOWTO rilevanti troviamo <tt/Backup-With-MSDOS/, <tt/Diskless/, <tt/LILO/, <tt/Large Disk/, <tt/Linux+DOS+Win95+OS2/, <tt/Linux+OS2+DOS/, <tt/Linux+Win95/, <tt/NFS-Root/, <tt/Win95+Win+Linux/, <tt/ZIP Drive/. Li potete trovare allo stesso posto degli HOWTO, generalmente in una sottodirectory chiamata <tt/mini/. Notate che questi sono destinati ad essere convertiti in SGML ed a diventare veri e propri HOWTO in un futuro prossimo. Il vecchio <tt/Linux Large IDE mini-HOWTO/ non è più valido, leggete invece <tt>/usr/src/linux/drivers/block/README.ide</tt> o <tt>/usr/src/linux/Documentation/ide.txt</tt>. <sect1>Risorse locali <p> <nidx>disco!risorse di informazioni!locali</nidx> In molte distribuzioni di Linux, c'è installata una directory di documenti, controllate nella directory <htmlurl url="file:///usr/doc" name="/usr/doc"> in cui la maggior parte dei pacchetti pone la propria documentazione principale, i file README, ecc. Inoltre troverete qui l'archivio HOWTO ( <htmlurl url="file:///usr/doc/HOWTO" name="/usr/doc/HOWTO">) di HOWTO già formattati ed inoltre l'archivio di mini-HOWTO ( <htmlurl url="file:///usr/doc/HOWTO/mini" name="/usr/doc/HOWTO/mini">) con documenti in testo semplice. La maggior parte dei file di configurazione citati in precedenza può essere trovata nella directory <htmlurl url="file:///etc" name="/etc"> In particolare vorrete lavorare con il file <htmlurl url="file:///etc/fstab" name="/etc/fstab"> che predispone il montaggio delle partizioni e probabilmente anche col file <htmlurl url="file:///etc/mdtab" name="/etc/mdtab"> che è utilizzato dal sistema <tt/md/ per organizzare il RAID. I sorgenti del kernel <htmlurl url="file:///usr/src/linux" name="/usr/src/linux"> sono, ovviamente, il documento finale. In altre parole, <em>usa i sorgenti, Luke</em>. Dovrebbe anche essere puntualizzato che il kernel non ` dato solo con i codici sorgenti, che sono anche commentati (beh, almeno una parte), ma anche con una <url url="file:///usr/src/linux/Documentation" name="directory di documentazione"> informativa. Se state per chiedere qualcosa riguardo al kernel, dovreste prima leggerla; eviterà a voi e a molti altri di perdere un sacco di tempo e anche possibili imbarazzi. Controllate anche nel file log del sistema ( <htmlurl url="file:///var/log/messages" name="/var/log/messages">) per vedere cosa sta succedendo e in particolare come è andato l'avvio, se vi è sfuggito via dallo schermo. Utilizzando <tt>tail -f /var/log/messages</tt> in una finestra o in uno schermo separati, otterrete un continuo aggiornamento su cosa succede nel vostro sistema. Potete anche trarre vantaggio del file system <htmlurl url="file:///proc" name="/proc"> che è una finestra dell'intrinseco funzionamento del vostro sistema. Utilizzate <tt/cat/ piuttosto che <tt/more/ per vedere i file nel momento in cui sono dichiarati essere di lunghezza zero. <!-- removed 221198 Much of the work here is based on the Filesystem Structure Standard (FSSTND). It has changed name to File Hierarchy Standard (FHS) and is less Linux specific. The maintainer has set up a <url url="http://www.pathname.com/fhs" name="home page"> which tells you how to join the currently private mailing list, where the development takes place. --> <sect1>Pagine Web <p> <nidx>disco!risorse di informazioni!WWW</nidx> <nidx>disco!risorse di informazioni!pagine web</nidx> C'è un grande numero di pagine web informative lì fuori e per loro stessa natura cambiano velocemente, quindi non siate troppo sorpresi se questi link diventano facilmente datati. Un buon punto di inizio è ovviamente l'<url url="http://metalab.unc.edu/LDP/" name="archivio LDP"> di Metalab che è un centro di informazioni sulla documentazione, sulle pagine di progetti e molto altro. <itemize> <item>Mike Neuffer, l'autore dei driver dei controller RAID con caching DPT, ha qualche pagina interessante sullo <!-- Old links updated 971021 <url url="http://www.i-connect.net/˜mike/scsi" name="SCSI"> and <url url="http://www.i-connect.net/˜mike/scsi/dpt" name="DPT">. --> <url url="http://www.uni-mainz.de/˜neuffer/scsi" name="SCSI"> e <url url="http://www.uni-mainz.de/˜neuffer/scsi/dpt" name="DPT">. <item>Informazioni sullo sviluppo del Software RAID possono essere trovate presso il <url url="http://www.kernel.org/" name="sito del kernel Linux"> con patch ed utility. <item>Informazioni riguardanti i dischi, sul benchmarking, sul RAID, sull'affidabilità e molto altro, possono essere trovate presso la pagina del progetto <url url="http://linas.org" name="Linas Vepstas">. <item>Ci sono inoltre anche altre informazioni disponibili su come <url url="ftp://ftp.bizsystems.com/pub/raid/Root-RAID-HOWTO.html" name="fare il RAID della partizione root"> e quali pacchetti software sono necessari per farlo. <item>È disponibile anche una documentazione approfondita su <url url="http://step.polymtl.ca/˜ldd/ext2fs/ext2fs_toc.html" name="ext2fs">. <!-- moved 990126 <item>Mark D. Roth has information on <url url="http://www.uiuc.edu/ph/www/roth" name="VPS"> --> <!-- moved <item>A similar kind of project on an <url url="http://www.virtual.net.au/˜rjh/enh-fs.html" name="Enhanced File System"> --> <item>Gente che cerca informazioni su VFAT, FAT32 e Joliet può dare un'occhiata alla <url url="http://bmrc.berkeley.edu/people/chaffee/index.html" name="pagina di sviluppo">. <!-- Only minor details are missing before it comes into the kernel. --> Questi driver sono nella serie di sviluppo del kernel 2.1.x come anche nel kernel 2.0.34 e successivi. <!-- redundant <item>There is an ongoing compression project that integrates in <tt/ext2fs/ and is called <tt/e2compr/. For more information check out the <url url="http://netspace.net.au/˜reiter/e2compr.html" name="e2compr homepage">. --> <item>Per maggiori informazioni sull'avvio e anche qualche informazione su BSD, date un'occhiata alla pagina con le <url url="http://www.paranoia.com/˜vax/boot.html" name="informazioni sull'avvio"> </itemize> Per i diagrammi e le informazioni su tutti i tipi di dischi, controller ecc. Sia per linee continue che discontinue <url url="http://theref.c3d.rl.af.mil" name="The Ref"> è il sito di cui avete bisogno. Ci sono un bel po' di informazioni utili qui, un vero tesoro. Potete anche scaricarvi il database presso l' <url url="ftp://theref.c3d.rl.af.mil/public" name="FTP">. Fatemi sapere se avete qualche altra idea che può essere utile. <sect1>Motori di Ricerca <p> <nidx>disco!risorse di informazioni!motori di ricerca</nidx> Ricordatevi che potete anche utilizzare i motori di ricerca e che alcuni, come <itemize> <item><url url="http://www.altavista.digital.com" name="Altavista"> <item><url url="http://www.excite.com" name="Excite"> <item><url url="http://www.hotbot.com" name="Hotbot"> </itemize> permettono anche ricerche usenet. Ricordatevi inoltre che <url url="http://www.dejanews.com" name="Dejanews"> è un motore dedicato alle news che mantiene una coda di news dal 1995 in poi. Se dovete chiedere aiuto potrete forse trovarne nel newsgroup <url url="news:comp.os.linux.setup" name="Linux Setup"> A causa di un grande carico di lavoro e una lenta connessione di rete non sono in grado di seguire quel newsgroup quindi se volete contattarmi dovete farlo via e-mail. <sect>Ottenere Aiuto <p> <!-- New 971006 --> <nidx>disco!ottenere assistenza</nidx> Alla fine vi potrete trovare nella condizione di non poter risolvere i problemi ed avere bisogno di aiuto da qualcuno. La maniera più efficiente è quella di chiedere localmente o nel più vicino LUG, cercate sul web il più vicino. Un'altra possibilità è di chiedere su Usenet in uno dei moltissimi newsgroup disponibili. Il problema è che questi hanno un traffico e un rumore così elevati (chiamato basso rapporto segnale/rumore), che la vostra domanda può finire col non ricevere risposta. Non importa dove lo chiedete ma è importante che lo chiediate correttamente o non sarete presi sul serio. Dire solamente <it/il mio disco non funziona/ non vi aiuterà ed aumenterà il brusio ancora di più e se siete fortunati qualcuno vi chiederà delucidazioni. Invece descrivete i vostri problemi in dettaglio, il che permetterà alla gente di aiutarvi. Il problema potrebbe giacere da qualche parte che non sospettavate. Quindi siete avvisati di elencare le seguenti caratteristiche del vostro sistema: <descrip> <tag/Hardware/ <itemize> <item>Processore <item>DMA <item>IRQ <item>Chip set (LX, BX ecc) <item>Bus (ISA, VESA, PCI ecc) <item>Schede di espansione utilizzate ( Adattatori, video, IO ecc.) </itemize> <tag/Software/ <itemize> <item>BIOS (Su scheda madre e possibilmente gli adattatori SCSI) <item>LILO, se utilizzato <item>Versione del kernel Linux ed anche possibili patch e modifiche <item>Parametri del kernel, se ce ne sono <item>Software che mostra l'errore (con il numero di versione o la data) </itemize> <tag/Periferiche/ <itemize> <item>Tipo di lettori con la marca, la versione ed il tipo <item>Altre periferiche rilevanti connesse allo stesso bus </itemize> </descrip> Come esempio su come queste cose sono relazionate tra loro: un vecchio chip set ha causato problemi con una certa combinazione di controller video e adattatori SCSI. Ricordatevi che il testo del boot è presente in <tt>/var/log/messages</tt> e può rispondere a molte delle domande qui sopra. Ovviamente, se i dischi falliscono non sarete in grado di avere i file di log salvati ma potete almeno tornare indietro nello schermo utilizzando i tasti <tt/SHIFT/ e <tt/PAGE UP/. Potrebbe anche essere utile includere parte di ciò nella vostra richiesta di aiuto ma non esagerate, <em/capite/ che un completo file di log inserito in Usenet è più che un semplice fastidio. <sect>Annotazioni conclusive <p> <nidx>disco!conclusioni</nidx> La messa a punto del disco e le decisioni sulle partizioni sono difficili da intraprendere e non ci sono grosse regole. Ciò nonostante è una buona idea lavorare di più su queste cose visto che i vantaggi possono essere considerevoli. Aumentare al massimo l'utilizzo su un disco solo quando gli altri sono inutilizzati è tutt'altro che una buona idea, guardate le luci dei dischi, non stanno lì solo per decorazione. Per un sistema organizzato bene le luci dovrebbero sembrare come Natale in una discoteca. Linux offre il software RAID ma gestisce anche qualche controller SCSI RAID hardware. Controllate cosa è disponibile. Con il progredire del sistema e delle esperienze, potreste ripartizionare e controllare questo documento ancora una volta. Le aggiunte sono sempre benvenute. Per finire mi piacerebbe riassumere qualche raccomandazione<itemize> <item>I dischi sono economici ma i dati che essi contengono potrebbero valere molto di più, utilizzate e testate il vostro sistema di backup. <item>Anche il lavoro è costoso, assicuratevi di ottenere dischi sufficientemente grandi visto che installarne altri, o ripartizionare i vecchi, richiede tempo. <item>Pensate all'affidabilità, rimpiazzate i vecchi dischi prima che falliscano. <item>Mantenete una copia cartacea della vostra configurazione, avere tutto su disco quando la macchina è andata non aiuta molto. <item>Cominciate con un semplice progetto con un minimo di tecnologia fantasiosa e piuttosto mettetecela dopo. In generale aggiungere è più facile che rimpiazzare, che siano dischi, tecnologia o altre caratteristiche. </itemize> <sect1>Presto disponibili <p> <nidx>disco!presto disponibili</nidx> Ci sono un po' di cose importanti che stanno per apparire qui. In particolare aggiungerò più tabelle di esempi visto che sto per mettere su due sistemi grossi e generici, uno al lavoro e uno a casa. Questo dovrebbe dare una sensazione generale su come un sistema può essere organizzato per uno di questi due scopi. Esempi su sistemi che girano bene sono benvenuti. C'è anche un po' di lavoro da fare sui vari tipi di file system e sulle utility. Ci sarà una grande aggiunta sulle tecnologie dei dischi molto presto come anche una descrizione più dettagliata sull'utilizzo di <tt>fdisk</tt>, <tt>cfdisk</tt> e <tt>sfdisk</tt>. I file system saranno aggiornati con l'avvento di nuove caratteristiche come anche più sul RAID e quali directory possono beneficiare da quale livello di RAID. <!-- Also I hope to get some information from DPT who make the only RAID controller supported by Linux so far. I have contacted them but have yet to hear from them. Recently I received an information pack from DPT, who made the first hardware RAID supported by Linux. Their leaflets now carry the familiar penguin logo to show they support Linux. More in-depth information will come soon. --> C'è qualche piccola interferenza tra il Linux Filesystem Structure Standard e il FHS che spero di integrare meglio presto, il che probabilmente vuol dire un grande rimaneggiamento di tutte le tavole alla fine di questo documento. Con la lettura di questo documento da parte di più persone dovrei ottenere qualche ulteriore commento e feedback. Sto anche pensando ad un programma in grado di automatizzare un bel po' di queste decisioni e sebbene non sia certo l'optimum, dovrebbe fornire un punto di inizio più semplice e completo. <sect1>Richieste ed Informazioni <p> <nidx>disco!richieste di informazioni</nidx> C'è voluto un bel po' di tempo per ottenere questo documento e sebbene molti pezzi stanno congiungendosi ci sono ancora delle informazioni di cui abbiamo bisogno prima di uscire dalla versione beta. <itemize> <item> Sono necessarie maggiori informazioni sulle politiche di dimensionamento dello swap come anche informazioni sulla massima dimensione di swap possibile con le varie versioni del kernel. <item> Quanto è diffusa la corruzione del disco o del file system? Fino ad ora ho sentito solo di problemi causati da hardware critico. <item> Sono necessarie notizie sulla velocità e sui dischi. <item> Ci sono altri controller RAID compatibili con Linux? <!-- <item> Leads to file system, volume management and other related software is welcome. --> <item> Quali strumenti rilevanti sono disponibili per il monitoraggio, la gestione ed il mantenimento? <item> Sono necessari riferimenti generali sulle fonti di informazione, dovrebbe forse essere un documento separato? <item> L'utilizzo di <tt>/tmp</tt> e <tt>/var/tmp</tt> è stato difficile da determinare, infatti quali programmi utilizzano quali directory, non è ben definito e maggiori informazioni sono richieste qui. Ancora, alla fine sembra essere chiaro che queste dovrebbero risiedere su drive fisici differenti al fine di aumentare il parallelismo. </itemize> <sect1>Progetti di Lavoro Suggeriti <p> <nidx>disco!progetti, suggeriti</nidx> Ora e sempre la gente posta su comp.os.linux.*, cercando buone idee per i progetti. Ora ne elencherò alcune che mi vengono in mente e che sono pertinenti a questo documento. Dovrebbero essere postati anche piani riguardanti enormi progetti, come nuovi file system, al fine di trovare collaboratori o di vedere se qualcuno ci sta già lavorando. <descrip> <tag/I mezzi per pianificare/ che possono automatizzare i contorni del progetto più velocemente, farebbero probabilmente un progetto di media grandezza, forse come un esercizio in programmazione di base. <tag/I mezzi per partizionare/ che prendono l'output del programma precedentemente menzionato e formattano i dischi in parallelo e applicano i collegamenti simbolici appropriati alla struttura della directory. Sarebbe generalmente meglio se questo fosse integrato nel software per l'installazione del sistema esistente. Il setup del partizionamento dei dischi utilizzato in Solaris è un esempio di cosa può servire. <tag/Strumenti di sorveglianza/ che controllano le dimensioni delle partizioni e avvertono prima che una partizione si riempia. <tag/Strumenti di migrazione/ che vi permettono di spostare vecchie strutture verso nuovi sistemi (ad esempio RAID). Questo potrebbe essere fatto probabilmente con script shell che controllano programmi di backup e sarebbe abbastanza semplice. Ancora una volta, accertatevi che sia sicuro e che i cambiamenti possano essere ripristinati. </descrip> <sect>Domande e risposte <p> <nidx>disco!FAQ</nidx> <nidx>disco!domande poste di frequente</nidx> Questa è solamente una collezione di quello che io penso siano le domande più comuni che la gente può fare. Contattatemi e muterò questa sezione in una vera e propria FAQ. <itemize> <item>D: Di quanti dischi fisici (alberini) ha bisogno un sistema Linux? <p> R: Linux può girare bene su un unico disco (alberino). Avere abbastanza RAM (attorno a 32 MB e fino a 64 MB) per gestire lo swap è una scelta di prezzo/prestazione migliore che prendere un disco secondario. Un disco (E)IDE è generalmente più economico (ma un po' più lento) di uno SCSI. <item>D: Ho un singolo disco, mi aiuterà questo HOWTO? <p> R: Si, sebbene solo ad un grado inferiore. La sezione <ref id="physical-track-positioning" name="Posizionamento Fisico delle Tracce"> vi fornirà del guadagno. <item>D: Ci sono svantaggi in questo schema? <p> R: C'è solo una piccola rogna: se anche solo una singola partizione si riempie, il sistema potrebbe smettere di lavorare correttamente. La gravità dipende ovviamente da quale partizione è interessata. Comunque questo non è difficile da tenere sotto controllo, il comando <tt/df/ vi da una buona visione della situazione. Controllate inoltre le partizioni di swap mediante <tt/free/ per assicurarvi che non state per saturare la memoria virtuale. <item>D: OK, quindi dovrei dividere il sistema in quante più partizioni possibili per un disco solo? <p> R: No, ci sono diversi svantaggi nel fare ciò. Prima di tutto la manutenzione diventa inutilmente complessa e ottenete molto poco. Infatti se le vostre partizioni sono troppo grandi, accederete su aree più larghe del necessario. Questo è un bilancio dipendente dal numero di dischi fisici che avete. <item>D: Questo significa che più dischi permettono più partizioni? <p> R: In qualche modo sì. Comunque, qualche directory non dovrebbe essere separata da root, controllate il file system standard per maggiori dettagli. <item>D: Che devo fare se ho molti dischi che voglio utilizzare? <p> R: Se avete più di 3-4 dischi dovreste considerare l'utilizzo di un qualche tipo di RAID. Comunque è una buona idea di mantenere root su una singola partizione senza RAID, controllate la sezione <ref id="RAID" name="RAID"> per maggiori dettagli. <item>D: Ho installato l'ultimo Windows95 ma non posso accedere a questa partizione dal sistema Linux, cosa è sbagliato? <p> R: È presumibile che tu stia utilizzando <tt/FAT32/ nella partizione windows. Sembra che Microsoft abbia deciso che noi abbiamo bisogno di ancora un altro sistema e questo è stato introdotto nell'ultima versione di Windows95, chiamata OSR2. Il vantaggio è che questo formato è meglio adatto a dischi larghi. Può interessare sapere che NT 4.0 della Microsoft non lo gestisce ancora. <item>D: Non riesco a far coincidere la dimensione del disco e quella della partizione, manca qualcosa. Cosa è successo? <p> R: È possibile che abbiate montato una partizione su un punto di montaggio che non era una directory vuota. I punti di montaggio sono directory e se non sono vuote il montaggio maschererà i contenuti. Se sommate vedrete che la quantità di spazio disco utilizzato in questa directory manca dal totale osservato. Per risolvere ciò potete fare il boot da un disco di recupero e controllare cosa si sta nascondendo nei punti di montaggio e rimuovere o spostarne i contenuti montando la partizione in questione su un punto di montaggio provvisorio. Potreste trovare utile avere punti di montaggio di emergenza "sparsi" già fatti. <item>D: Non mi sembra che la partizione di swap sia in uso, come è successo? <p> R: È possibile che non sia stato necessario fare swap, specialmente se avete molta RAM. Controllate i vostri file di log per controllare se avete saturato la memoria su di un punto o su un altro. In quel caso il vostro spazio di swap dovrebbe essere stato messo in uso. Se così non è, è possibile che o alla partizione di swap non è stato assegnato il numero giusto, o che non l'avete preparata con <tt/mkswap/ o che non avete fatto lo <tt/swapon/ o che non lo avete aggiunto al vostro <file/fstab/. <item>D: Cos'è qusto nyx cui si accenna molte volte qui? <p> R: È un sistema Unix gratuito con attualmente circa 10000 utenti. Lo utilizzo per le mie pagine web, per questo HOWTO come anche per una sorgente di idee per un setup su grossi sistemi UNIX. Sono parecchi anni che gira ed ha un setup abbastanza stabile. Per maggiori informazioni controllate la <url url="http://www.nyx.net" name="Nyx homepage"> che vi dà anche informazioni su come ottenere il vostro account gratuito. </itemize> <sect>Pezzettini e Ritagli <label id="bits-n-pieces"> <p> <nidx>diso!varie</nidx> Questa è praticamente una sezione dove ammucchio tutti i pezzetti che ancora non ho deciso dove mettere, ma che sento sia necessario saperne qualcosa. È una specie di area di transizione. <!-- removed 990124 <sect1>Combining <tt/swap/ and <tt>/tmp</tt> <label id="comb-swap-n-tmp"> <p> <nidx>disk!miscellaneous!swap and tmp combined</nidx> Recently there have been discussions in the various linux related news groups about specialized file systems for temporary storage. This is partly inspired by the <tt/tmpfs/ on *BSD* and Solaris, as well as <tt/swapfs/ on the NeXT machines. The rationale is that these are temporary storage that normally does not require much space, yet in normal systems you need to reserve a certain amount of space for these. Elementary statistical knowledge tells you (very simplified) that when you sum a number of variables the relative statistical uncertainty decreases. So combining <tt/swap/ and <tt>/tmp</tt> you do not need to reserve as much space as you otherwise would need. This specialized file system is nothing more than a swappable RAM disk that are swapped out to disk when and only when space is limited, thus effectively putting temporary files on the swap partition. There is, however, a snag. This scheme prevents you from getting parallel activity on <tt/swap/ and <tt>/tmp</tt> drives so under heavy activity the system takes a bigger performance hit. Put another way, you trade speed to get space. Interleaving across multiple drives reduces this somewhat. Also there is the security problem with users bringing down the machine by overflowing the <tt>/tmp</tt> directory. --> <!-- redundant <sect1>Interleaved <tt/swap/ drives. <p> <nidx>disk!miscellaneous!interleaved swap drives</nidx> This is not striping across several drives, instead drives are accessed in a round robin fashion in order to spread the load in a crude fashion. In Linux you additionally have a priority parameter you can adjust for tuning your system, especially useful if your disks differs significantly in speed. Check <tt/man 8 swapon/ as well as <tt/man 2 swapon/ for more information. --> <sect1>Partizione Swap: usarla o non usarla <p> <nidx>disco!varie!swap o non swap</nidx> In molti casi non avete bisogno di una partizione di swap, ad esempio se avete molta RAM, tipo più di 64 MB, e siete l'unico utente della macchina. In questo caso potete provare a procedere senza una partizione di swap e controllare in ogni momento se avete mai saturato la memoria virtuale. Rimuovere le partizioni di swap ha due vantaggi: <itemize> <item>risparmiate spazio disco (in realtà abbastanza ovvio) <item>risparmiate tempo di accesso alle partizioni swap altrimenti giacerebbero al centro del vostro spazio disco. </itemize> In fine, avere una partizione di swap è come avere un bagno riscaldato: non lo usate molto spesso, ma sicuramente lo apprezzerete quando ne avete bisogno. <sect1>Punto di montaggio e <tt>/mnt</tt> <p> <nidx>disco!varie!questioni sul punto di montaggio</nidx> Nelle versioni più recenti di questo documento ho proposto di mettere tutte le partizioni montate in maniera permanente sotto <tt>/mnt</tt>. Il che, comunque, non è che sia proprio una buona idea visto che essa può essere utilizzata come un punto di montaggio, che guida a tutte le partizioni montate che diventano disponibili. Invece proporrò di montare direttamente da root mediante un nome significativo come <tt>/mnt.nome-descrittivo</tt>. Recentemente sono diventato conscio del fatto che qualche distribuzione Linux utilizza punti di montaggio su subdirectory <em/sotto/ <tt>/mnt</tt>, come <tt>/mnt/floppy</tt> e <tt>/mnt/cdrom</tt>, che mostra solamente quanto confusa sia l'intera faccenda. Speriamo che FHS chiarisca tutto ciò. <!-- <sect1>SCSI Id Numbers and Names <p> <nidx>disk!miscellaneous!SCSI id numbers vs. names</nidx> Partitions are labeled in the order they are found, <em/not/ depending on the SCSI id number. This means that if you add a drive with an id number inserted in the previous order of numbers, or change id number in any other way, the partition names will be messed up. This is important if you use removable media. In order to save yourself from some unpleasant experiences, you are recommended to use low numbers for fixed media and reserve the last number(s) for removable media drives. Many have been bitten by this misfeature and there is a strong call for something to be done about it. Nobody knows how soon this will be fixed so in the meantime it is wise to take this into consideration when you design your system. For instance it may be a good idea to use the lowest SCSI id number for your root disk so that it has the least probability of being renumbered should one drive fail. The source of the problem lies in the limited number of bits available for major and minor numbering in the device files used to describe the device itself. You can see these in the <tt>/dev</tt> directory, info on the numbering and allocation can be found in <tt/man MAKEDEV/. Currently there are 2 solutions to this problem in various stages of development: <descrip> <tag/scsidev/ works by creating a database of drives and where they belong, check <em/ man scsifs/ for more information <tag/devfs/ is a more long term project aimed at getting around the whole business of device numbering by making the <tt>/dev</tt> directory a kernel file system in the same way as <tt>/procfs</tt> is. More information will appear as it becomes available. </descrip> SCSI numbers are also used for arbitration. If several drives request service, the drive with the lowest number is given priority. --> <sect1>Alimentazione e Riscaldamento <label id="power-heating"> <p> <nidx>disco!varie!questioni riguardanti l'alimentazione</nidx> <nidx>disco!varie!questioni riguardanti il riscaldamento</nidx> Non molti anni fa, una macchina con la potenza di un moderno PC richiedeva alimentazione e raffreddamento a 3 fasi, generalmente mediante aria condizionata nella stanza della macchina, alcune volte anche raffreddando ad acqua. La tecnologia si è evoluta velocemente portando non solo alta velocità ma anche componenti a basso consumo. Comunque, c'è un limite definito dalla tecnologia, qualcosa che uno dovrebbe tenere a mente visto che il sistema si espande con ancora un altro disco o un'altra scheda PCI. Quando l'alimentazione gira a pieno regime tenete presente che tutta questa energia sta andando da qualche parte, per lo più in calore. Se questo non viene dissipato attraverso ventole, avrete un serio riscaldamento nel cabinet seguito da un'affidabilità ridotta ed anche da una riduzione della vita delle elettroniche. I produttori stabiliscono un minimo di necessità di raffreddamento per i loro dischi, generalmente in termini di piedi cubi al minuto (CFM). Siete tutti avvisati di prenderlo seriamente in considerazione. Mantenete i passaggi di aria aperti, pulite la polvere e controllate la temperatura del vostro sistema in funzione. Se è troppo caldo da toccare, probabilmente gira in condizioni di calore eccessivo. Se possibile utilizzate spin up sequenziali per i dischi. È durante l'avvio, quando le piastre dei dischi accelerano fino a velocità normale che un disco consuma il massimo dell'energia e se tutti i dischi partono simultaneamente potreste andare oltre il massimo della vostra alimentazione. <sect1>Dejanews <p> <nidx>disco!varie!Dejanews</nidx> <nidx>disco!affidabilità</nidx> Questo è un sistema Internet che indubbiamente è familiare a molti di voi. Esso cerca e fornisce articoli <em/Usenet/ dal 1995 fino ai più recenti messaggi e offre inoltre un'interfaccia web di lettura e scrittura. C'è molto altro, controllate <url url="http://www.dejanews.com" name="Dejanews"> per maggiori informazioni. Ciò che forse è meno risaputo, è che utilizzano circa 120 computer Linux SMP molti dei quali utilizzano per questo servizio il modulo <tt/md/ per gestire dai 4 ai 24 Giga di spazio disco (più di 1200 Giga tutti insieme). Il sistema cresce in continuazione ma al momento di scrivere essi utilizzano generalmente dual Pentium Pro 200MHz e sistemi Pentium II 300 MHz con 256 MB di RAM o più. Una macchina per production database ha generalmente un disco per il sistema operativo e tra i 4 ed i 6 gestiti dal modulo <tt/md/ dove gli articoli sono archiviati. I dischi sono connessi ad adattatori PCI SCSI BusLogic Model BT-946C e BT-958 <!-- Added 980809, to be checked --> Per i sistemi di produzione (che sono accesi 365 giorni l'anno) il tempo di interruzione dovuto ad errori di disco è inferiore allo 0.25% (che è un quarto di 1%, non di 25%). <!-- end of addition --> Solo una cosa: questa non è pubblicità, è inserito come un esempio di quanto è richiesto per quel che è un servizio Internet principale. <!-- removed 221198 <sect1>File System Structure <p> <nidx>disk!miscellaneous!filesystem structure</nidx> There are many file system structures in existence, differing with FSSTND (and soon FHS) to varying degree both in terms of philosophy, strategy and implementation. It is not possible to detail all here, instead the interested reader should read the relevant manual page, <tt/man hier/ which is available on many platforms and implementations. --> <!-- removed 221198 <sect1>Track Numbering and Optimizing Schemes <p> <nidx>disk!miscellaneous!track numbering</nidx> <nidx>disk!miscellaneous!optimization</nidx> In the old days the file system used to take advantage of knowing the physical drive parameters in order to optimize transfers, for instance by endeavouring to keep a file within a single track if possible which saves track-to-track seek time. These days with logical drive parameters, drive cache and schemes to map out bad sectors, such optimizations become meaningless and might even cost more than it would gain. As most Linux installations use modern file systems these schemes are not used, however, some other operating systems have retained such schemes. --> <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --> <sect>Appendice A: Tabella della Struttura del Partizionamento: Montare e Linkare <label id="app-a"> <p> <nidx>disco!Tabella della Struttura del Partizionamento!Montare e Linkare</nidx> La tabella seguente è progettata per fare della struttura un semplice esercizio di carta e matita. È probabilmente meglio stamparlo (utilizzando caratteri non scalabili) ed aggiustarne i numeri fino a che non ne siete soddisfatti. I punti di montaggio sono le directory dove vorreste montare le partizioni o il dispositivo reale. Questo è anche il posto giusto dove annotare come avrete intenzione di utilizzare i link simbolici. La dimensione data corrisponde ad una installazione di Debian 1.2.6 abbastanza grande. Altri esempi seguiranno più avanti. Principalmente utilizzate questa tabella per selezionare quali strutture e dischi utilizzerete, i numeri di partizione e le lettere arriveranno dalle prossime 2 partizioni. <tscreen><verb> Directory Punto Montag. veloc. accesso trasferimento dim. DIM swap __________ ooooo ooooo ooooo 32 ____ / __________ o o o 20 ____ /tmp __________ oooo oooo oooo ____ /var __________ oo oo oo 25 ____ /var/tmp __________ oooo oooo oooo ____ /var/spool __________ ____ /var/spool/mail __________ o o o ____ /var/spool/news __________ ooo ooo oo ____ /var/spool/____ __________ ____ ____ ____ ____ /home __________ oo oo oo ____ /usr __________ 500 ____ /usr/bin __________ o oo o 250 ____ /usr/lib __________ oo oo ooo 200 ____ /usr/local __________ ____ /usr/local/bin __________ o oo o ____ /usr/local/lib __________ oo oo ooo ____ /usr/local/____ __________ ____ /usr/src __________ o oo o 50 ____ DOS __________ o o o ____ Win __________ oo oo oo ____ NT __________ ooo ooo ooo ____ /mnt._________ __________ ____ ____ ____ ____ /mnt._________ __________ ____ ____ ____ ____ /mnt._________ __________ ____ ____ ____ ____ /_____________ __________ ____ ____ ____ ____ /_____________ __________ ____ ____ ____ ____ /_____________ __________ ____ ____ ____ ____ Capacità totale: </verb></tscreen> <sect>Appendice B: Tabella della Struttura del Partizionamento. Numerazione e dimensionamento <label id="app-b"> <p> <nidx>disco!Tabella della Struttura del Partizionamento!Numerazione e dimensionamento</nidx> Questa tabella segue la stessa struttura logica della tabella precedente in cui avete deciso che disco utilizzare. Qui voi selezionate il physical tracking, ricordando l'effetto del posizionamento delle tracce menzionato in precedenza in <ref id="physical-track-positioning" name="Posizionamento Fisico delle Tracce">. Il numero della partizione finale verrà fuori dalla tabella successiva. <tscreen><verb> Disco sda sdb sdc hda hdb hdc ___ SCSI ID | __ | __ | __ | Directory swap | | | | | | | / | | | | | | | /tmp | | | | | | | /var : : : : : : : /var/tmp | | | | | | | /var/spool : : : : : : : /var/spool/mail | | | | | | | /var/spool/news : : : : : : : /var/spool/____ | | | | | | | /home | | | | | | | /usr | | | | | | | /usr/bin : : : : : : : /usr/lib | | | | | | | /usr/local : : : : : : : /usr/local/bin | | | | | | | /usr/local/lib : : : : : : : /usr/local/____ | | | | | | | /usr/src : : : : DOS | | | | | | | Win : : : : : : : NT | | | | | | | /mnt.___/_____ | | | | | | | /mnt.___/_____ : : : : : : : /mnt.___/_____ | | | | | | | /_____________ : : : : : : : /_____________ | | | | | | | /_____________ : : : : : : : Capacità Totale: </verb></tscreen> <sect>Appendice C: Tabella della Struttura del Partizionamento: Posizionamento delle Partizioni <label id="app-c"> <p> <nidx>disco!Tabella della Struttura del Partizionamento!Posizionamento delle Partizioni</nidx> Questa serve solamente per ordinare i numeri delle partizioni in ordine crescente, pronti per essere immessi in fdisk o cfdisk. Qui prendete in considerazione il posizionamento fisico delle tracce quando finalizzate il vostro progetto. Se non avete informazioni specifiche, potete assumere che la traccia 0 sia la traccia più esterna. Questi numeri e lettere sono poi utilizzati per aggiornare le tabelle precedenti, che vi risulteranno tutte molto utili nella manutenzione futura. In caso di crash del disco, potreste trovare utile sapere quale SCSI id appartiene a quale drive, considerate di tenere una copia di ciò. <tscreen><verb> Disco : sda sdb sdc hda hdb hdc ___ Capac. totale: | ___ | ___ | ___ | ___ | ___ | ___ | ___ SCSI ID | __ | __ | __ | Partizione 1 | | | | | | | 2 : : : : : : : 3 | | | | | | | 4 : : : : : : : 5 | | | | | | | 6 : : : : : : : 7 | | | | | | | 8 : : : : : : : 9 | | | | | | | 10 : : : : : : : 11 | | | | | | | 12 : : : : : : : 13 | | | | | | | 14 : : : : : : : 15 | | | | | | | 16 : : : : : : : </verb></tscreen> <sect>Appendice D: Esempio: Server Multifunzionale <p> <nidx>disco!esempio!server, multifunzionale</nidx> La tabella seguente viene da un setup di un server multifunzionale di media grandezza dove lavoro. Oltre che essere una macchina generale Linux, esso sarà anche un server di rete (DNS, posta, FTP, news, stampanti ecc.), un server X per vari programmi CAD, masterizzatori e molte altre cose. I file risiedono su 3 dischi SCSI con capacità di 600, 1000 e 1300 MB. Un po' di ulteriore velocità potrebbe essere ottenuta separando <tt>/usr/local</tt> dal resto del sistema <tt>/usr</tt> ma abbiamo ritenuto che l'ulteriore complessità aggiunta, non sarebbe valsa lo sforzo. Con un altro paio di dischi sarebbe stato più vantaggioso. In questa configurazione, sda è vecchio e lento e potrebbe essere benissimo sostituito da un disco IDE. Gli altri due dischi sono entrambi sufficientemente veloci. Praticamente abbiamo diviso la maggior parte del carico tra questi due. Per ridurre i pericoli di sbilanciamento nel dimensionamento delle partizioni abbiamo deciso di mantenere <tt>/usr/bin</tt> e <tt>/usr/local/bin</tt> in un solo disco e <tt>/usr/lib</tt> e <tt>/usr/local/lib</tt> su un altro disco separato, il che inoltre ci permette un po' di parallelizzazione. Potrebbe essere guadagnato anche di più utilizzando RAID, ma abbiamo avuto la sensazione che come server avevamo bisogno di più affidabilità di quella che permetteva la patch <tt/md/ e un controller RAID dedicato era lontano dalla nostra portata. <sect>Appendice E: Esempio: Montare e Linkare <p> <nidx>disco!esempio!montare e linkare</nidx> <tscreen><verb> Directory Punto di mont. veloc. accesso trasferimento dim. DIM. swap sdb2, sdc2 ooooo ooooo ooooo 32 2x64 / sda2 o o o 20 100 /tmp sdb3 oooo oooo oooo 300 /var __________ oo oo oo ____ /var/tmp sdc3 oooo oooo oooo 300 /var/spool sdb1 436 /var/spool/mail __________ o o o ____ /var/spool/news __________ ooo ooo oo ____ /var/spool/____ __________ ____ ____ ____ ____ /home sda3 oo oo oo 400 /usr sdb4 230 200 /usr/bin __________ o oo o 30 ____ /usr/lib -> libdisk oo oo ooo 70 ____ /usr/local __________ ____ /usr/local/bin __________ o oo o ____ /usr/local/lib -> libdisk oo oo ooo ____ /usr/local/____ __________ ____ /usr/src ->/home/usr.src o oo o 10 ____ DOS sda1 o o o 100 Win __________ oo oo oo ____ NT __________ ooo ooo ooo ____ /mnt.libdisk sdc4 oo oo ooo 226 /mnt.cd sdc1 o o oo 710 Capacità Totale: 2900 MB </verb></tscreen> <sect>Appendice F: Esempio: Numerazione e Dimensionamento <p> <nidx>disco!esempio!numerazione e dimensionamento</nidx> Qui facciamo gli aggiustamenti delle dimensioni e del posizionamento. <tscreen><verb> Directory sda sdb sdc swap | | 64 | 64 | / | 100 | | | /tmp | | 300 | | /var : : : : /var/tmp | | | 300 | /var/spool : : 436 : : /var/spool/mail | | | | /var/spool/news : : : : /var/spool/____ | | | | /home | 400 | | | /usr | | 200 | | /usr/bin : : : : /usr/lib | | | | /usr/local : : : : /usr/local/bin | | | | /usr/local/lib : : : : /usr/local/____ | | | | /usr/src : : : : DOS | 100 | | | Win : : : : NT | | | | /mnt.libdisk | | | 226 | /mnt.cd : : : 710 : /mnt.___/_____ | | | | Capac. Totale: | 600 | 1000 | 1300 | </verb></tscreen> <sect>Appendice G: Esempio: Posizionamento delle Partizioni <p> <nidx>disk!esempio!posizionamento delle partizioni</nidx> Questo è solo per ordinare i numeri delle partizioni in ordine ascendente pronti per essere immessi in fdisk o cfdisk. Ricordate di ottimizzare il posizionamento fisico delle tracce (non fatto qui). <tscreen><verb> Disco : sda sdb sdc Capac. Totale : | 600 | 1000 | 1300 | Partizione 1 | 100 | 436 | 710 | 2 : 100 : 64 : 64 : 3 | 400 | 300 | 300 | 4 : : 200 : 226 : </verb></tscreen> <sect>Appendice H: Esempio II <p> <nidx>disco!esempio!server, accademico</nidx> Il seguente è un esempio di una predisposizione di un server con impostazioni accademiche ed è un contributo di <tt/nakano (at) apm.seikei.ac.jp/. Ho fatto piccolissime modifiche a questa sezione. <tt>/var/spool/delegate</tt> è una directory per archiviare i file di log e i file di cache di un programma per server proxy WWW, "delegato". Dal momento che non lo noto ampiamente, attualmente ci sono 1000--1500 richieste al giorno e l'utilizzo medio del disco è del 15--30% con scadenza giornaliera delle cache. <tt>/mnt.archive</tt> è utilizzato per i file che sono grandi e cui non si fa frequentemente riferimento come i dati sperimentali (specialmente quelli grafici), vari sorgenti di archivi e backup di Win95 (che crescono molto velocemente). <tt>/mnt.root</tt> è un file system di backup che contiene utilità di recupero. Un boot floppy è inoltre preparato per fare un boot su questa partizione. <tscreen><verb> ================================================= Directory sda sdb hda swap | 64 | 64 | | / | | | 20 | /tmp | | | 180 | /var : 300 : : : /var/tmp | | 300 | | /var/spool/delegate | 300 | | | /home | | | 850 | /usr | 360 | | | /usr/lib -> /mnt.lib/usr.lib /usr/local/lib -> /mnt.lib/usr.local.lib /mnt.lib | | 350 | | /mnt.archive : : 1300 : : /mnt.root | | 20 | | Capac. Totale: 1024 2034 1050 ================================================= Disco : sda sdb hda Capac. Totale : | 1024 | 2034 | 1050 | Partizione 1 | 300 | 20 | 20 | 2 : 64 : 1300 : 180 : 3 | 300 | 64 | 850 | 4 : 360 : ext : : 5 | | 300 | | 6 : : 350 : : Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda1 19485 10534 7945 57% / /dev/hda2 178598 13 169362 0% /tmp /dev/hda3 826640 440814 343138 56% /home /dev/sda1 306088 33580 256700 12% /var /dev/sda3 297925 47730 234807 17% /var/spool/delegate /dev/sda4 363272 170872 173640 50% /usr /dev/sdb5 297598 2 282228 0% /var/tmp /dev/sdb2 1339248 302564 967520 24% /mnt.archive /dev/sdb6 323716 78792 228208 26% /mnt.lib </verb></tscreen> Apparentemente <tt>/tmp</tt> e <tt>/var/tmp</tt> sono troppo grandi. Queste directory dovrebbero essere unite insieme in una partizione quando lo spazio disco diminuisce. Anche <tt>/mnt.lib</tt> dovrebbe esistere, ma ho pianificato di installare archivi TeX e ghostscript più nuovi, quindi <tt>/usr/local/lib</tt> potrebbe crescere di circa 100 MB o giù di lì (visto che dobbiamo utilizzare caratteri giapponesi!). Viene fatto un backup dell'intero sistema da un Seagate Tapestore 8000 (Travan TR-4, 4G/8G). <!-- // 140197 text removed It works fine when accessed through <tt>/dev/st0</tt>, but when done through <tt>/dev/nst0</tt> or with `<tt>mt</tt>' command, SCSI system get up a panic occasionally. It's not critical, but the biggest problem rest in our system... --> <sect>Appendice I: Esempio III: SPARC Solaris <p> <nidx>disco!esempio!server, industriale</nidx> La sezione seguente è il progetto base utilizzato al lavoro per una serie di server Sun SPARC su cui gira Solaris 2.5.1 in un ambiente di sviluppo industriale. Esso serve una serie di archivi e applicazioni cad oltre ai normali servizi come la posta. La semplicità è qui enfatizzata quindi <tt>/usr/lib</tt> non è stata separata da <tt>/usr</tt>. Questa è la struttura di base, pianificata per circa 100 utenti. <tscreen><verb> Disco: SCSI 0 SCSI 1 Partizione Dim. (MB) Punto di Mount Dim. (MB) Punto di Mount 0 160 swap 160 swap 1 100 /tmp 100 /var/tmp 2 400 /usr 3 100 / 4 50 /var 5 6 remainder /local0 remainder /local1 </verb></tscreen> A causa di specifiche necessità in questa sede è a volte necessario avere la disponibilità di grandi partizioni con un breve preavviso. Quindi al disco 0 vengono conferiti più compiti possibili, mantenendo una grande partizione <tt>/local1</tt>. Questa configurazione è stata in uso per qualche tempo ed ora la riteniamo soddisfacente. Per un sistema più generale e bilanciato, sarebbe meglio dividere <tt>/tmp</tt> e <tt>/var/tmp</tt> e spostare <tt>/var</tt> al disco 1. <sect>Appendice J: Esempio IV: Server con 4 Dischi <p> <nidx>disco!esempio!server, 4 dischi</nidx> Questo fornisce un esempio di utilizzo di tutte le tecniche descritte prima, con un po' di RAID. Si deve riconoscere che è abbastanza complicato ma offre in compenso alta prestazione da un hardware modesto. Il dimensionamento è saltato ma descrizioni ragionevoli possono essere trovate in esempi precedenti. <tscreen><verb> Partizione sda sdb sdc sdd ---- ---- ---- ---- 1 root overview lib news 2 swap swap swap swap 3 home /usr /var/tmp /tmp 4 spare root mail /var </verb></tscreen> La configurazione è ottimizzata nel rispetto del posizionamento delle tracce ma anche per mancanza di accessi ai dischi. Se inoltre volete DOS o Windows dovrete utilizzare <tt/sda1/ per questo e spostare durante queste sessioni le altre partizioni su <tt/sdb2/, <tt/sdc2/ e <tt/sdd2/ per lo swap di Windows, <tt/TEMPDIR/ e la directory temporanea di Windows. Una serie di altri HOWTO descrive come potete far coesistere diversi tipi di sistemi operativi sulla vostra macchina. Per completezza viene fornito un esempio di 4 dischi con l'utilizzo di diversi tipi di RAID il che è anche molto più complesso dell'esempio sopra. <tscreen><verb> Partizione sda sdb sdc sdd ---- ---- ---- ---- 1 boot overview news news 2 overview swap swap swap 3 swap lib lib lib 4 lib overview /tmp /tmp 5 /var/tmp /var/tmp mail /usr 6 /home /usr /usr mail 7 /usr /home /var 8 / (root) spare root </verb></tscreen> Qui tutti i duplicati sono parti di un set RAID 0 con due eccezioni, swap che è lasciato da parte e home e mail che sono implementati come RAID 1 per sicurezza. Notate che boot e root sono separati: solo il file di boot con il kernel deve risiedere entro il limite del cilindro 1023. Il resto della root può essere dovunque e qui sono piazzati sulla partizione più lenta e lontana. Per semplicità e sicurezza la partizione root non è su un sistema RAID. Con una complessità tale ne consegue che avremo un file <tt/fstab/ egualmente complicato. Il grande numero di partizioni rende importante fare passaggi di <tt/fsck/ nell'ordine esatto, altrimenti il processo può metterci dieci volte il tempo per concludersi come la soluzione migliore. <tscreen><verb> /dev/sda8 / ? ? 1 1 (a) /dev/sdb8 / ? noauto 1 2 (b) /dev/sda1 boot ? ? 1 2 (a) /dev/sdc7 /var ? ? 1 2 (c) /dev/md1 news ? ? 1 3 (c+d) /dev/md2 /var/tmp ? ? 1 3 (a+b) /dev/md3 mail ? ? 1 4 (c+d) /dev/md4 /home ? ? 1 4 (a+b) /dev/md5 /tmp ? ? 1 5 (c+d) /dev/md6 /usr ? ? 1 6 (a+b+c+d) /dev/md7 /lib ? ? 1 7 (a+b+c+d) </verb></tscreen> Le lettere tra parentesi indicano quali dischi saranno attivi per ogni voce e passaggio di <tt/fsck/. Queste lettere <em/non/ sono presenti in un vero file <tt/fstab/. In tutto ci sono 7 passaggi. <sect>Appendice K: Esempio V: Sistema con Doppio Disco <p> <nidx>disco!esempio!sistema, 2 dischi</nidx> Un sistema con doppio disco offre meno opportunità per schemi intelligenti ma il seguente dovrebbe fornire un semplice punto di partenza. <tscreen><verb> Partizione sda sdb ---- ---- 1 boot lib 2 swap news 3 /tmp swap 4 /usr /var/tmp 5 /var /home 6 / (root) </verb></tscreen> Se utilizzate un sistema con due SO dovete ricordarvi che molti altri sistemi devono fare il boot dalla prima partizione del primo disco. Un semplice sistema DOS / Linux potrebbe apparire così: <tscreen><verb> Partizione sda sdb ---- ---- 1 DOS lib 2 boot news 3 swap swap 4 /tmp /var/tmp 5 /usr /home 6 /var DOSTEMP 7 / (root) </verb></tscreen> Inoltre ricordate che DOS e Windows preferiscono essere la sola partizione che deve anche essere la prima da dove si fa il boot. Visto che Linux può esistere felicemente in partizioni logiche, questo non è un grande problema. <sect>Appendice L: Esempio VI: Sistema con un Singolo Disco <p> <nidx>disco!esempio!sistema, 1 disco</nidx> Sebbene questo cada in qualche modo fuori da quello che è lo scopo di questo HOWTO, non può essere negato che recentemente qualche disco abbastanza grande è diventato molto accessibile. Dischi con 10-20 GB stanno diventando comuni ed è frequente la domanda su come partizionare questi mostri. È abbastanza interessante il fatto che molto pochi sembrano avere problemi nel riempire questi dischi ed il futuro sembra generalmente abbastanza roseo per i produttori che puntano su dischi ancora più grandi. Opportunità per ottimizzazioni sono ovviamente anche più piccole che per i sistemi a due dischi ma qualche trucco può ancora essere utilizzato per ottimizzare il posizionamento delle tracce nel minimizzare i movimenti delle testine. <tscreen><verb> Partizione hda Dimensione Stimata (MB) ---- ------------------ 1 DOS 500 2 boot 20 3 Winswap 200 4 data La massa del disco 5 lib 50 - 500 6 news 300+ 7 swap 128 (Dimensione massima per una CPU a 32-bit) 8 tmp 300+ (/tmp e /var/tmp) 9 /usr 50 - 500 10 /home 300+ 11 /var 50 - 300 12 mail 300+ 13 dosdata 10 ( Si aggirano i bug di Windows!) </verb></tscreen> Ricordate che la partizione <tt/dosdata/ è un filesystem DOS che deve essere l'ultima partizione sul disco, altrimenti Windows si confonde. </article>