Avanti Indietro Indice

6. Technologie

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

6.1 RAID

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

SCSI-to-SCSI

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 /dev. 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 CMD e Syred nelle cui pagine web sono descritti diversi sistemi.

PCI-to-SCSI

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.

DPT

I più vecchi e più maturi sono una gamma di controller della 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 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 SCSI e 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.

ICP-Vortex

Una recentissima aggiunta è un set di controller della 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.

Mylex DAC-960

Questo è una delle ultime uscite ed è in beta. Maggiori informazioni come anche i driver sono disponibili presso la Dandelion Digital's Linux DAC960 Page.

Compaq Smart-2 PCI Disk Array Controllers

Un'altra entrata recentissima e attualmente in versione beta è il driver Smart-2.

Software RAID

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 md (multiple devices) che offre molto più del RAID, quindi è descritto maggiormente più tardi.

Livelli di RAID

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.

Ci sono anche ibridi basati su RAID 0 o 1 e un altro livello. Molte combinazioni sono possibili ma ne ho visto solamente pochi. Questi sono più complessi che i livelli RAID sopra menzionati.

RAID 0/1 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 1/5 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.

6.2 Gestione dei Volumi

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 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 VPS che reimplementerà molte delle funzioni di gestione trovate nel sistema AIX di IBM. Sfortunatamente questo progetto è fermo.

Un altro progetto è il Logical Volume Manager che è simile ad un progetto della HP.

6.3 La patch md per il kernel Linux

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

Sfortunatamente la documentazione è piuttosto vecchia ed in parte forviante e si riferisce solamente alla versione 0.35 di 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 linux-raid.

La documentazione sta migliorando e il Software RAID HOWTO è in lavorazione.

Suggerimento: se non riuscite a farlo funzionare correttamente, avete dimenticato di impostare il flag persistent-block. La vostra documentazione migliore è attualmente il codice sorgente.

6.4 Compressione

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

6.5 ACL

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 (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'ext2fs.

6.6 cachefs

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.

6.7 File System Translucidi o Nascosti

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:

SunOS offre questa caratteristica ed è in fase di sviluppo per Linux. C'era un vecchio progetto chiamato Inheriting File Systems (ifs) ma questo progetto si è fermato. Un progetto attuale è parte del sistema md e offre traslucenza del livello di blocco così può essere applicato a qualsiasi file system.

La Sun ha una pagina informativa sul file system traslucido.

6.8 Posizionamento Fisico delle Tracce

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, "la dominazione del mondo" è nell'immediato raggiungimento ma per raggiungerla "velocemente" dobbiamo impiegare tutti i trucchi che possiamo .

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

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.

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 swap, /tmp e /var/tmp.

Le tracce esterne

hanno di media caratteristiche di trasferimento più veloci ma come le tracce interne sono collocate alla fine dell'accesso quindi statisticamente è ugualmente lento accedere come per le tracce interne.

Grandi file come le librerie beneficerebbero del posizionamento in questa sede.

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 fdisk o cfdisk per fare una partizione nelle tracce di mezzo o facendo prima un file (utilizzando 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 dummy 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 come anche 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.

Valori di velocità del disco

Lo stesso assemblaggo della testata (HDA) è spesso disponibile su un bel numero di interfacce (IDE, SCSI, ecc.) ed i parametri meccanici sono quindi paragonabili. La meccanica è oggigiorno spesso il fattore limitante ma lo sviluppo sta migliorando le cose rapidamente. Ci sono due parametri principali, generalmente riportati in millisecondi (ms):

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:


                      Tipo di Disco


Tempo di acceso  (ms)   | Veloce  Tipico  Vecchio
--------------------------------------------------
Tracccia-a-traccia         <1       2       8
Tempo medio di accesso     10      15      30
Fine-a-fine                10      30      70

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.


Velocità di rotazione |  3600 | 4500 | 4800 | 5400 | 7200 | 10000           
-------------------------------------------------------------------
Latenza          (ms)   |    17 |   13 | 12.5 | 11.1 |  8.3 |   6.0

Dal momento che la latenza è il tempo medio per raggiungere un settore particolare, la formula è sufficientemente semplice

latenza (ms) = 60000 / velocità (RPM)

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.

6.9 Sovrapposizione di strati RAID

Uno dei vantaggi di un progetto a strati di un sistema operativo è che si ha a disposizione la flessibilità di mettere i pezzi insieme in un gran numero di modi. Ad esempio potete mettere in cache un CD-ROM con 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.

6.10 Raccomandazioni

C'è un numero praticamente infinito di combinazioni disponibili ma la mia raccomandazione è di iniziare con un'installazione semplice senza alcuna aggiunta immaginaria. Capite cosa vi serve, dove è richiesta la massima prestazione, se è il tempo di accesso o la velocità di trasferimento il collo di bottiglia, 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.


Avanti Indietro Indice