Avanti Indietro Indice

11. Struttura del Disco

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.

11.1 Selezione per il Partizionamento

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

11.2 Organizzare le Partizioni sui Dischi

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:

        A : 9 4 3
        B : 8 5 2
        C : 7 6 1

Questo fa sì che la 'somma delle necessità di velocità' sia il più possibile omogenea per tutti i dischi.

Utilizzate la tabella nella sezione 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.

11.3 Ordinare le Partizioni sui Dischi

Dopo di ciò è consigliato selezionare la numerazione delle partizioni per ciascun disco.

Utilizzate la tabella nella sezione 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 (fdisk or cfdisk) e al momento di fare l'installazione.

11.4 Ottimizzazione

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:

        A : 9 6 5
        B : 8 7 4
        C : 3 2 1

Ottimizzare per Caratteristica

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.

Ottimizzare mediante Parallelizzazione del Disco

Evitate la contenzione del disco guardando ai task: ad esempio se state accedendo a /usr/local/bin ci sono possibilità anche che avrete molto presto bisogno di file da /usr/local/lib 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.

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.

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 .overview su dischi separati per installazioni più grandi.

C'è anche una pagina web dedicata all' ottimizzazione di INN che sarebbe bene leggere.

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

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.

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 /usr/src e i file di progetto sullo stesso disco delle directory home.

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 Directory Home e WWW.

11.5 Compromessi

Un modo per evitare le trappole menzionate è semplicemente di dedicare le partizioni fisse a directory di dimensione ben nota come swap, /tmp e /var/tmp e raggruppare insieme i richiami nelle partizioni rimanenti utilizzando link simbolici.

Esempio: un disco lento (discolento), un disco veloce (discoveloce) ed un assortimento di file. Avendo organizzato swap e tmp sul discoveloce; e /home e root sul discolento abbiamo le rimanenti directory fittizie /a/lento, /a/veloce, /b/lento e /b/veloce da allocare sulle partizioni /mnt.discolento e /mnt.discoveloce che rappresentano le rimanenti partizioni dei due dischi.

Mettere /a o /b 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

/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

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.


Avanti Indietro Indice

Hosting by: hurra.com
Generated: 2007-01-26 17:56:16