|
|
|
|
RAID
|
Redundant Array of Inexpensive Disks
|
batteria ridondante di dischi economici
|
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
RAID Livello 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.
|
|
|
|
|
|
|
|
|