La tecnologia RAID (acronimo di Redundant Array of Inexpensive Disks, conosciuto anche come Redundant Array of Independent Disks) è l'Insieme ridondante di dischi indipendenti</ital> che permette di costituire un'unità d' archivio, partendo da più dischi rigidi. L'unità così creata (detta cluster) ha dunque un'elevata tolleranza ai guasti (elevata disponibilità), oppure una più elevata capacità/velocità di scrittura. La ripartizione dei dati su più dischi rigidi permette quindi di aumentarne la sicurezza e di rendere più affidabili i servizi associati.
La tecnologia RAID è stata messa a punto nel 1987 da tre ricercatori (Patterson, Gibson e Katz) dell'Università delle California (Berkeley). Dal 1992 è il RAID Advisory Board che gestisce queste specifiche, questa consiste nel costituire un disco di grandi capacità (quindi costoso) mediante dischi più piccoli relativamente economici (cioè il Mean Time Between Failure -MTBF- ossia il tempo medio fra due guasti, è ridotto).
I dischi assemblati con la tecnologia RAID possono essere utilizzati in modi diversi, detti Livelli RAID. L'Università della California ne ha definiti 5, ai quali sono stati aggiunti i livelli 0 e 6. Ciascuno descrive il modo in cui i dati sono ripartiti sui dischi:
Livello 0, chiamato striping;
Livello 1, chiamato mirroring, shadowing o duplexing;
Livello 2, chiamato striping with parity (obsoleto);
Livello 3, detto disk array with bit-interleaved data;
Livello 4, detto disk array with block-interleaved data;
Livello 5, detto disk array with block-interleaved distributed parity;
Livello 6: detto disk array with block-interleaved distributed parity.
Ognuno di questi livelli costituisce un modo d'uso del cluster, in funzione:delle performance; del costo e degli accessi ai dischi.
Il livello RAID-0, detto striping (tradotto intreccio o aggregato per striscia+D108, talvolta detto, seppur sbagliando, stri pp ing) consiste nello stoccare i dati ripartendoli sull'insieme dei dischi del cluster. In questo modo, non vi sono ripetizioni, e non si può quindi parlare di tolleranza ai guasti. In effetti in caso di problema su uno dei dischi, l'integralità dei dati ripartiti sui dischi sarà persa.
Tuttavia, dato che ogni disco del cluster ha il proprio controllore, questo costituisce una sostituzione con un'elevata velocità di trasferimento. Il RAID 0 consiste quindi nella giustapposizione logica (aggregazione) di più dischi rigidi hardware. In modalità RAID-0 i dati sono scritti per "strisce" (in inglese stripes):
|
|
|
Si parla di fattore di intreccio per caratterizzare la dimensione relativa dei frammenti (strisce) stoccati su ogni unità hardware. La capacità di trasferimento media dipende da questo fattore (più piccola è ogni striscia, migliore sarà la capacità). Se uno degli elementi del cluster è più grande degli altri, il sistema di riempimento per striscia si bloccherà quando il più piccolo dei dischi sarà pieno. La dimensione finale è quindi uguale o doppia rispetto alla capacità del più piccolo dei due dischi:
Due dischi da 20 GB daranno un disco software di 40 GB;
Un disco di 10 GB usato congiuntamente ad un disco di 27 GB permetterà di ottenere un disco software di 20 GB (17 GB del secondo disco saranno allora inutilizzati):
Si raccomanda di utilizzare dei dischi della stessa dimensione per il RAID-0 dato che, in caso contrario, il disco di capacità maggiore non sarà pienamente sfruttato. |
Il livello 1 ha lo scopo di duplicare su più dischi l'informazione da stoccare. Si parla allora di mirroring, o shadowing per designare questa procedura:
|
|
|
Si ha quindi una sicurezza dei dati più elevata, dato che se uno dei dischi si guasta, i dati sono salvati sull'altro. D'altra parte, la lettura può essere molto più rapida quando i due dischi sono in funzione. Infine, visto che ogni disco ha il proprio controllore, il server può continuare a funzionare anche quando uno dei dischi si guasta, allo stesso modo in cui un camion può continuare a viaggiare anche con un pneumatico bucato, dato che ne ha molteplici sullo stesso asse. Del resto la tecnologia RAID1 è molto costosa dato che solo la metà della capacità di stoccaggio è effettivamente utilizzata.
Il livello RAID-2 è ormai obsoleto, dato che propone un controllo degli errori mediante il codice di Hamming (codici ECC - Error Correction Code), ormai direttamente integrato nei controllori dei dischi rigidi. Questa tecnologia consiste nello stoccare i dati secondo lo stesso principio del RAID-0 ma scrivendo su un'unità distinta i bit di controllo ECC (generalmente sono usati 3 dischi ECC per 4 dischi di dati). La tecnologia RAID 2 offre delle performance mediocri ma un altro livello di sicurezza.
Il livello 3 propone di stoccare i dati sotto forma di byte su ogni disco e di dedicare uno dei dischi allo stoccaggio di un bit di parità:
|
|
|
|
In questo modo, se uno dei dischi ha un problema, sarà possibile ricostituire l'informazione partendo dagli altri dischi. Dopo la "ricostituzione" il contenuto del disco difettoso sarà di nuovo integro. Se invece due dischi si guastano contemporaneamente, sarà allora impossibile rimediare alla perdita dei dati.
Il livello 4 è molto simile al 3. La differenza sta a livello della parità, che è fatta su un settore (detto blocco) e non a livello del bit, e che è stoccata su un disco dedicato. Più precisamente, il valore del fattore di intreccio e differente rispetto al RAID 3:
|
|
|
|
Quindi, per leggere un numero di blocchi limitati, il sistema non deve accedere a più lettori hardware, ma unicamente a quelli su cui i dati sono effettivamente stoccati. Del resto il disco che ospita i dati di controllo deve avere un tempo di accesso uguale alla somma dei tempi di accesso degli altri dischi per non limitare le performance d'insieme.
Il livello 5 è simile al 4, cioè la parità è calcolata a livello di un settore, ma ripartita sull'insieme dei dischi del cluster:
|
|
|
|
In questo modo, RAID 5 migliora decisamente l'accesso ai dati (tanto in lettura quanto in scrittura) dato che l'accesso ai bits di parità è ripartito sui differenti dischi del cluster. La modalità RAID-5 permette di ottenere delle performance molto simili a quelle ottenute con RAID-0, il tutto assicurando un'elevata tolleranza ai guasti, ragione per cui è una delle modalità più interessanti in termini di performance e affidabilità:
Essendo lo spazio del disco utile su un cluster di n dischi uguale a n-1 dischi, è interessante avere un gran numero di dischi per "rentabilizzare" il RAID-5. |
Il livello 6 è stato aggiunto ai livelli definiti da Berkeley. Esso definisce l'utilizzo di 2 funzioni di parità, e quindi il loro stoccaggio su due dischi dedicati. Questo livello permette così di assicurare la ridondanza in caso di avaria simultanea di due dischi. Questo significa si devono avere almeno 4 dischi per realizzare un sistema RAID-6.
Le soluzioni RAID scelte più di frequente sono la RAID di livello 1 e la RAID di livello 5. La scelta di una soluzione RAID è legata a tre criteri:
La sicurezza, RAID 1 e 5 offrono entrambi un elevato livello di sicurezza, tuttavia il metodo di ricostruzione dei dischi differisce fra le due soluzioni. In caso di guasto del sistema, RAID 5 ricostruisce il disco mancante partendo dalle informazioni stoccate sugli altri dischi, mentre RAID 1 opera una copia da disco a disco;
Le performance, RAID 1 offre delle performance migliori rispetto a RAID 5 in lettura, ma soffre con delle grandi operazioni in scrittura;
Il costo, questo è correlato direttamente alla capacità di stoccaggio che deve essere realizzata per avere un'effettiva capacità data. La soluzione RAID 5 offre un volume utile pari all'80-90% del volume attribuito (il resto serve evidentemente per il controllo degli errori). La soluzione: RAID 1 offre invece solo un volume disponibile pari al 50% del volume totale (dato che le informazioni sono duplicate).
Esistono vari modi per realizzare una soluzione RAID su un server:
Via software, si tratta generalmente di un driver a livello del sistema operativo del computer capace di creare un solo volume software con più dischi (SCSI o IDE);
Via hardware:
Con del materiale DASD (Direct Access Stockage Device), si tratta di unità di stoccaggio esterne dotate di una propria alimentazione. Inoltre alcuni hardware sono dotati di connettori che permettono lo scambio di dischi a caldo (si dice che solitamente questo tipo dischi è hot swappable). Questo hardware gestisce autonomamente i propri dischi, tanto da essere riconosciuto come un disco SCSI standard.
Con dei controllori di dischi RAID, si tratta di schede che si inseriscono in slot PCI o ISA e che permettono di controllare più dischi rigidi.
Foto: © Martial Red – Shutterstock.com