RAID
batteria ridondante di dischi economici (Redundant Array of Inexpensive Disks)

L'idea consiste nel posizionare diversi dischi entro un singolo contenitore e quindi scrivere i dati su queste unità in modo che se uno o più dischi venissero a mancare le informazioni resterebbero comunque disponibili. I vari dischi sono raggruppati in una singola unità logica che a sua volta viene vista dal server come se fosse una singola unità fisica. La tecnica RAID viene impiegata sia per aumentare la sicurezza sia per ridurre i tempi di accesso al di sotto dei valori fisici tipici di ogni singolo disco presente nella batteria. Questa configurazione può essere realizzata via hardware con un controller specializzato oppure via software unendo tra loro dischi di tipo standard.I tre attributi fondamentali della tecnologia RAID sono: a) si tratta di un insieme di dischi visti dall'utente come un singolo dispositivo logico, b) i dati dell'utente vengono distribuiti fisicamente tra i vari dischi in una maniera ben definita, c) viene aggiunta capacità di disco ridondante in modo da recuperare le informazioni in caso di guasto di un'unità della batteria.Livelli della configurazione RAIDLivello 0
Singolo disco oppure dischi multipli che offrono funzioni di data striping
(in sostanza si tratta di una configurazione non-RAID) ma nessuna funzione
di sicurezza. Il data striping consiste nel distribuire in modo uniforme
su tutti i dischi disponibili i dati che compongono il file in da salvare.
Non viene eseguita nessuna correzione d'errore con il meccanismo del
controllo di parità e il file viene spezzettato in tante parti quanti sono
i dischi disponibili e queste porzioni vengono scritte in contemporanea
con un tempo di accesso molto inferiore grazie al parallelismo. La
dimensione massima dei file registrabili viene dalla somma dei vari dischi
che compongono la batteria (disk spanning) visto che l'insieme appare come
se fosse un singolo disco fisico. In caso di rottura di un disco tutti i
dati che vi sono contenuti vanno irrimediabilmente persi insieme
all'usabilità dell'intero disco logico di cui questa unità faceva parte.
Le altre unità logiche (definite ai livelli da 1 a 5 della tecnologia
RAID) non vengono influenzate, però l'intero sistema entra in fase critica
perchè non può consentire che si guasti un altro disco. L'eventuale disco
di riserva (hot spare) non viene attivato in automatico quando si lavora a
livello 0.

Livello 1
A questo livello il RAID equivale al mirroring: i dati vengono copiati
specularmente da un disco a un altra unità uguale con scrittura simultanea
su entrambi delle stesse informazioni. Questo genere di configurazione
risulta più veloce di quanto lo sarebbe un singolo disco (la ricerca delle
informazioni viene suddivisa tipicamente metà su un disco e metà
sull'altro) e si ha la garanzia al 100% della salvaguardia delle
informazioni in caso di rottura di uno dei due dischi.
Esiste anche un RAID di livello 1 Enhanced utilizzato da alcuni fornitori,
come IBM, che consiste nell'abbinare lo striping dei dati al mirroring. Il
file viene suddiviso in tante porzioni quanti sono i dischi disponibili
così da avere un parallelismo di scrittura e di ricerca come nel RAID
livello 0, solo che in questo caso la scrittura viene ripetuta due volte,
una per la copia originale e una per la copia in mirroring, entrambe
distribuite uniformemente su tutti i dischi con la sola differenza che la
copia di mirroring viene registrata con lo sfasamento di un disco: se la
prima porzione del file si trova sul disco 1 la prima porzione della copia
di mirroring dello stesso file sarà sul disco 2 e sul disco 1 troveremo
invece l'ultima porzione della copia di mirroring (ad esempio la quarta
nel caso ci siano quattro dischi), quale coda della completa rotazione tra
i dischi. Alcuni fornitori chiamano impropriamente questa configurazione
RAID di livello 6.

Livello 2
A questo livello le informazioni vengono distribuite sui vari dischi
usando una tecnica chiamata bit interleave. Il primo disco della batteria
contiene il primo bit, il secondo disco contiene il secondo bit e via di
questo passo. Al posto del bit si può usare un intero byte come unità
minima, ma la sostanza non cambia. Questo approccio ha una certa validità
per le applicazioni che prevedono lettura sequenziale delle informazioni,
come la modellazione grafica, ma richiede parecchi dischi per funzionare
adeguatamente, inoltre è necessario riservare alcuni dischi per i codici
di correzione d'errore oppure la verifica di parità. La lettura è molto
lenta poichè bisogna continuamente assemblare e disassemblare i vari
pacchetti leggendo bit da tutti i dischi. E' un sistema originariamente
progettato per i mainframe e i minicomputer che non si adatta ai server di
rete e ai PC. Non si presta affatto ai sistemi transazionali poichè non
può gestire diverse richieste simultanee.

Livello 3
Questo livello corregge alcuni difetti del livello 2 distribuendo le
informazioni su dischi diversi un bit alla volta, ma utilizzando un solo
disco per i codici di correzione d'errore oppure per la verifica di
parità. In questa situazione le testine dei dischi sono sincronizzate il
che significa che le operazioni di lettura e scrittura possono svolgersi
ad alta velocità. Si tratta di un approccio ottimo per trasferire grandi
quantità di dati oppure per letture sequenziali, ma conserva i limiti del
livello 2 per quel che riguarda le letture casuali (fino a 15 volte più
lento rispetto agli stessi dischi usanti senza configurazione RAID). Il
sistema deve accedere in sincrono a tutti i dischi per recuperare il file.

Livello 4
Tutti codici di errore o il controllo di parità vengono mantenuti su un
singolo disco, come nel livello 3, ma i dati vengono distribuiti sui vari
dischi un blocco anzichè un bit alla volta. La dimensione dei blocchi
corrisponde alle informazioni trasferite con una sola operazione di
accesso. Diventa possibile eseguire letture multiple anche casuali e le
prestazioni in lettura aumentano considerevolmente. In scrittura si viene
invece limitati dal fatto che esiste un solo disco per i codici di parità
comuni a tutti i dischi al quale bisogna accedere per qualsiasi operazione
di aggiornamento. La capacità complessiva della batteria è n-1 dove n è il
numero di dischi, indipendentemente dalle dimensioni della batteria (più
dischi ci sono, più il sistema diventa conveniente). Supponendo di avere
quattro unità da 1 GByte ciascuna, la capacità complessiva del RAID
sarebbe di 3 GByte.

Livello 5
Qui tutti i dischi contengono sia i dati sia le informazioni di parità
oppure i codici di correzione degli errori. La distribuzione dei dati in
blocchi in dischi multipli secondo una progressione sequenziale (blocco 1
nel disco 1, blocco 2 nel disco 2, eccetera) e lo stesso accade, con lo
sfasamento di un disco, per le informazioni di controllo. In tal modo si
elimina il collo di bottiglia del disco singolo nelle operazioni di
scrittura e diventa possibile eseguire diverse transazioni in parallelo.
La capacità massima disponibile è sempre n-1, dove n è il numero dei
dischi che compongono la batteria, indipendentemente dalle dimensioni
della batteria stessa.

Livello 6
Distribuzione dei dati a blocchi sui vari dischi con impiego di due dischi
non dedicati per le informazioni di controllo (codici di correzione
dell'errore o parità). Questo è considerato il più alto dei livelli di
ridondanza poichè dedica due dischi alla conservazione delle informazioni
di sicurezza. La capacità totale diventa n-2 e questo approccio è
consigliato solo per batterie di grandi dimensioni.

Il concetto di RAID è stato definito per la prima volta nel 1987 da
Paterson, Gibson e Katz a Berkeley nell'Università della California, a
Berkeley che studiarono un modo per far apparire più dischi come se
fossero uno solo (livello 0 della configurazione RAID). Le prestazioni
erano migliori rispetto a quelle ottenibili con un singolo grande disco di
capacità equivalente, ma l'affidabilità non era alta visto che basta che
si rompa un solo disco per rendere inutilizzabile l'intera batteria. Per
questo motivo fu introdotta una certa ridondanza di elementi e i suoi
sviluppatori definirono anche i livelli RAID da 1 a 5, in seguito
l'industria aggiunse il livello 6. Nessuna configurazione è superiore
all'altra, ma ciascuna offre funzionalità diverse. Il RAID 0 viene
impiegato nelle workstation per ottenere le massime prestazioni possibili
senza garantire alcuna ridondanza. Gli altri sei livelli vengono
utilizzati sui server per garantire prestazioni migliori rispetto
all'impiego di un singolo disco e protezione dei dati, grazie alla
ridondanza. Tipicamente i RAID vengono realizzati con dischi SCSI.






Glossario dei termini dell'informatica a cura di Roberto Mazzoni
Tutti i diritti riservati