Appendice D. RAID (Redundant Array of Independent Disks)

Cos'� il RAID?

L'idea di base dietro al RAID � di combinare pi� dischi di modeste dimensioni e di costo ridotto in un array che superi le prestazioni di un disco unico, grande e costoso. Questo array di dischi viene visto dal computer come un unico dispositivo.

La tecnologia RAID offre un metodo per suddividere le informazioni su vari dischi, usando tecniche come il disk striping (RAID livello di 0), il disk mirroring (RAID di livello 1) e il disk striping with parity (RAID di livello 5) per aggiungere ridondanza ai dati, ottenere una latenza inferiore e/o una larghezza banda superiore per leggere o scrivere dati su dischi e massimizzare la capacit� di recupero dopo un crash del disco.

Il concetto di base della tecnologia RAID � che i dati possono essere distribuiti tra i dischi dell'array in maniera consistente. Per fare questo, i dati devono prima venir spezzati in "chunk" (spesso di 32k o 64k di grandezza, anche se vengono a volte usate altre dimensioni). Ogni chunk viene cos� scritto sui dischi a turno. Quando i dati vengono letti, il processo avviene al contrario, dando l'illusione che pi� dischi siano combinati in una unica unit�.

Chi dovrebbe usare i RAID?

Coloro che devono gestire grandi quantit� di dati e necessitano di un sistema che resista ai guasti hardware. I principali vantaggi apportati dalla la tecnologia RAID sono:

  • maggiore velocit�

  • aumento della capacita di archiviazione usando un unico disco virtuale

  • grande efficienza nel recupero in seguito a un crash del sistema

RAID: hardware e software

Esistono due possibili approcci al RAID: il RAID hardware e il RAID software.

RAID hardware

Le soluzioni hardware gestiscono il sottosistema RAID indipendentemente dall'host e presentano all'host un singolo disco per array.

Un esempio di RAID hardware potrebbe essere quello collegato a un controller SCSI che presenta al sistema un unico disco SCSI. Un sistema RAID esterno sposta tutta "l'intelligenza" gestita dal RAID in un controller situato nel sottosistema del disco esterno. Tutto il sottosistema � collegato a un calcolatore tramite un normale controller SCSI e compare come un singolo disco.

Esistono anche controller RAID nella forma di schede che agiscono come un controller e gestiscono tutte le comunicazioni reali tra i dischi in modo autonomo. In questi casi, basta collegare i dischi a un controller RAID cos� come fareste con un controller SCSI, ma dovete aggiungerli alla configurazione del controller RAID perch� il sistema operativo non veda la differenza.

RAID software

Il Software RAID implementa i vari livelli di RAID nel codice del kernel riguardante la gestione del disco (block device). Offre inoltre la soluzione in assoluto meno costosa: non sono richiesti costosi controller dedicati o chassis hot-swap, [1] e il RAID software funziona sia con dischi IDE meno costosi sia con dischi SCSI. Con le CPU dell'ultima generazione, le prestazioni di un RAID software possono eccellere quelle di un RAID hardware.

Il driver MD nel kernel di Linux � un esempio di una soluzione RAID completamente indipendente dall'hardware. Le prestazioni di un array basato su software dipende dalle prestazioni e dal carico della CPU.

Per informazioni sulla configurazione del RAID software nel programma di installazione di Red Hat Linux, consultate la Official Red Hat Linux Customization Guide.

Per coloro che desiderano ricevere maggiori informazioni sul RAID software, ecco un breve elenco delle sue caratteristiche pi� importanti:

  • Processo di ricostruzione basato su thread

  • Configurazione completamente basata sul kernel

  • Portabilit� di array tra macchine Linux senza ricostruire l'array RAID

  • Ricostruzione dell'array in background utilizzando risorse inutilizzate di sistema

  • Supporto per drive sostituibili a caldo

  • Riconoscimento automatico della CPU per sfruttare alcune ottimizzazioni della CPU

Livelli e supporto lineare

Il RAID offre il supporto per i livelli 0, 1, 4, 5, e lineare. Questi tipi di RAID si comportano nel modo seguente:

  • Livello 0 — Il RAID di livello 0, spesso chiamato "striping," � una tecnica orientata alle prestazioni di mappatura dati "striped". Questo vuol dire che i dati scritti sull'array vengono divisi in strisce e scritti sui dischi membri dell'array. Questo permette alte prestazioni di I/O a un basso costo, ma non fornisce ridondanza. La capacit� di memorizzazione dell'array � uguale alla capacit� totale dei dischi membri in un RAID hardware o alla capacit� totale delle partizioni membri in un RAID software.

  • Livello 1 — Il RAID di livello 1 o "mirroring," � stato utilizzato pi� a lungo rispetto ad altre forme di RAID. Il livello 1 fornisce ridondanza scrivendo dati identici su ogni disco membro dell'array, lasciando una copia "identica" su ciascun disco. Il mirroring rimane popolare grazie alla sua semplicit� e all'alto livello di disponibilit� di dati. Il livello 1 opera con due o pi� dischi che possono utilizzare una modalit� di accesso parallelo per trasferimenti veloci di dati in lettura, ma pi� comunemente opera in modo indipendente per fornire alti valori di transazioni di I/O. Il livello 1 assicura un'alta affidabilit� e migliora le prestazioni per applicazioni intensive nella lettura dati ma a un costo relativamente alto[2]. La capacit� di memorizzazione dell'array di livello 1 � uguale alla capacit� di uno dei dischi fissi copiati in un RAID hardware o di una della partizioni copiate in un RAID software.

  • Livello 4 — Il RAID di livello 4 utilizza la parit�[3] concentrandola su un singolo disco per la protezione dei dati. � pi� adeguato alle transazioni di I/O piuttosto che ai pesanti trasferimenti di dati. Poich� il disco dedicato alla parit� rappresenta un collo di bottiglia non indifferente, il livello 4 � utilizzato di rado senza tecnologie aggiuntive come il write-back caching. Anche se il RAID di livello 4 � un'opzione in alcuni schemi di ripartizionamento RAID, non � un opzione permessa nell'installazione RAID di Red Hat Linux [4]. La capacit� del RAID hardware di livello 4 � uguale alla capacit� dei dischi membri meno la capacit� di un disco. La capacit� del software RAID di livello 4 � uguale alla capacit� delle partizioni membri meno le dimensioni di una partizione se hanno le stesse dimensioni.

  • Livello 5 — � il tipo pi� comune di RAID. Distribuendo la parit� tra alcuni o tutti i dischi membri, il RAID di livello 5 elimina il collo di bottiglia inerente al livello 4. L'unico collo di bottiglia � il processo di calcolo della parit�. Con le moderne CPU e il RAID software, ci� non rappresenta un grosso problema. Come con il livello 4, i risultati sono prestazioni molto elevate, con letture sostanzialmente migliori delle scritture. Il livello 5 � spesso utilizzato con il write-back caching per ridurre l'asimmetria. La capacit� del RAID hardware di livello 5 � uguale alla capacit� dei dischi membri meno la capacit� di un disco. La capacit� del RAID software di livello 5 � uguale alla capacit� delle partizioni membri meno le dimensioni di una partizione se hanno le stesse dimensioni.

  • RAID lineare — Il RAID lineare � un semplice raggruppamento di dischi in modo da creare un disco virtuale pi� grande. Nel RAID lineare, i chunk sono disposti sequenzialmente da un disco membro fino al disco successivo solo quando il primo � pieno. Questo raggruppamento non porta vantaggi a livello delle prestazioni, cos� come � poco probabile che un'operazione di I/O venga divisa tra i dischi membri. Il RAID lineare non offre ridondanza e infatti l'affidabilit� diminuisce: se uno dei drive viene meno, l'intero array non pu� essere utilizzato. La capacit� � quella totale di tutti i dischi membri.

Note

[1]

Uno chassis hot-swap vi permette di rimuovere un disco rigido senza dover spegnere il computer.

[2]

Il RAID livello 1 ha un alto costo poich� si scrivono le stesse informazioni su tutti i dischi dell'array, sprecando un notevole spazio di memorizzazione. Per esempio: avete configurato il RAID di livello 1 in modo che la vostra partizione root (/) sia su dischi da 40 GB. Avete una capacit� totale di 80 GB ma potete memorizzarne solo 40 GB. Gli altri 40 GB si comportano come una copia di riserva dei primi 40 GB.

[3]

Le informazioni sulla parit� vengono calcolate in base al contenuto degli altri dischi membri dell'array. Queste informazioni possono essere quindi utilizzate per la ricostruzione dei dati quando uno dei dischi dell'array viene danneggiato. I dati ricostruiti possono quindi essere utilizzati per soddisfare le richieste di I/O per il disco danneggiato prima che venga sostituito e per ricostituirne il contenuto dopo la sua sostituzione.

[4]

Il RAID di livello 4 richiede fino allo stesso spazio richiesto dal livello 5, ma il livello 5 ha molti pi� vantaggi rispetto al livello 4. Per questo motivo il livello 4 non viene supportato.