Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Indice
1 Storia
2 Implementazioni RAID
o 2.1 Data Striping
o 2.2 Economico o indipendente
o 2.3 Hardware o software
3 Livelli RAID standard
o 3.1 RAID 0 (Striping)
3.1.1 Concatenazione
3.1.2 Concatenazione o JBOD
o 3.2 RAID 1 (Mirroring)
o 3.3 RAID 2 (Bit Level Striping)
o 3.4 RAID 3 (Byte Level Striping with Dedicated Parity Disk)
4 Ridondanza
o 4.1 RAID 4 (Block Level Striping with Dedicated Parity Disk)
o 4.2 RAID 5 (Distributed Parity)
o 4.3 RAID 6 (Distributed Double Parity)
5 Livelli RAID annidati
o 5.1 RAID 0+1
o 5.2 RAID 1+0
6 Livelli RAID proprietari
o 6.1 Doppia parit
o 6.2 RAID 7
7 Note
8 Voci correlate
9 Altri progetti
10 Collegamenti esterni
Storia
Il termine RAID stato introdotto nel 1988 da David A. Patterson, Garth A. Gibson e
Randy H. Katz nell'articolo A Case for Redundant Arrays of Inexpensive Disks (RAID)
pubblicato negli atti della SIGMOD Conference (pagg. 109116). Gli autori presentano in
maniera sistematica alcune delle tecnologie introdotte nel decennio precedente,
aggregandole sotto l'acronimo di Redundant Array of Inexpensive Disks, in italiano
insieme ridondante di dischi economici, e identificandole con i numeri da 1 a 5 che oggi
sono noti come "livelli" RAID. Il primo brevetto fu depositato nel 1977 da Norman Ken
Ouchi di IBM presentando quello che ora noto come livello 4.[2] Il significato della lettera
"I" nel titolo dovuto al fatto che negli anni '80 del millenovecento, a differenza di oggi, il
fattore chiave di tale tecnologia era l'abilit di combinare parecchi dischi a basso costo ed
obsoleti per rendere il sistema complessivamente migliore di un disco di ultima
generazione per capacit, affidabilit e velocit.
Implementazioni RAID
Data Striping
I dati vengono partizionati in segmenti di uguale lunghezza e scritti su dischi differenti. La
grandezza della partizione si chiama unit di striping. Le partizioni vengono solitamente
distribuite fra i dischi usando un algoritmo round robin.
Quando la dimensione dei dati richiesti superiore ad un'unit di striping, tali dati vengono
distribuiti su pi dischi e possono essere letti in parallelo aumentando le prestazioni (alcuni
sistemi di RAID implementano questa funzionalit). Ad esempio se abbiamo un'unit di
striping di 1 bit e abbiamo un array di D dischi, le sequenze di dati lunghe D bit o pi,
necessitano di tutti i dischi.
Economico o indipendente
Sebbene la "I" di RAID oggi generalmente significhi independent (indipendente) invece di
inexpensive (economico), uno dei vantaggi originali del RAID era l'uso di apparecchiature
poco costose e rimane vero in molte situazioni, soprattutto dove vengono usati dischi
IDE/ATA o SATA.
Pi comunemente, invece, vengono usati dischi SCSI indipendenti (e pi costosi), anche
se il costo di tali dischi molto minore del sistema che il RAID in genere sostituisce.
Hardware o software
Il RAID pu essere implementato sia con hardware dedicato sia con software specifico su
hardware di uso comune.
Con una implementazione software, il sistema operativo gestisce l'insieme di dischi
attraverso un normale controller (ATA, SCSI, Fibre Channel o altro). Questa opzione pu
essere pi lenta di un RAID hardware, ma non richiede l'acquisto di componenti extra
(anche questi, in ogni caso, soggetti a difetti).
Una implementazione hardware del RAID richiede (almeno) un controllore RAID ad hoc.
Nei computer desktop, questo pu essere una scheda di espansione PCI o pu essere
usato il controller presente nella scheda madre. Nei RAID pi grandi, il controller e i dischi
sono sistemati in un alloggiamento esterno. Questi dischi possono essere ATA, SATA,
SCSI, o Fibre Channel mentre il controllore collega il computer ospite con uno o pi
collegamenti ad alta velocit SCSI, Fibre Channel o connessioni iSCSI, sia direttamente
sia come NAS. Questo controllore gestisce i dischi, e compie i controlli di parit (di cui
molti livelli RAID hanno necessit).
Questa opzione tende a dare le migliori prestazioni e a rendere la gestione nel sistema
operativo molto pi semplice. Le implementazioni hardware in genere supportano lo
scambio a caldo (hot swapping), permettendo di sostituire un disco mentre il sistema
rimane in esecuzione.
Sia i sistemi hardware che software supportano l'uso degli Hot-spare, dischi preinstallati
che vengono usati immediatamente (e quasi automaticamente) quando un altro disco si
rompe.
RAID 0
CN
RAID 1
N-1
RAID 3
C (N - 1)
RAID 4
C (N - 1)
Schema
RAID 5
C (N 1)
RAID 6
C (N 2)
RAID 0 (Striping)
Il sistema RAID 0 divide i dati equamente tra due o pi dischi con nessuna informazione di
parit o ridondanza (operazione detta di striping). Bisogna notare che il RAID-0 non era
presente tra i livelli RAID originari, e che non ridondante. RAID-0 usato generalmente
per aumentare le prestazioni di un sistema, anche se molto utile per creare un piccolo
numero di grandi dischi virtuali da un grande numero di piccoli dischi fisici. Sebbene il
RAID-0 non sia indicato tra i livelli RAID originari, in un sistema ideale di tipo RAID-0 le
operazioni di I/O si dividerebbero in blocchi di dimensioni uguali e si applicherebbero
equamente su tutti i dischi.
Le implementazioni di sistemi RAID-0 su pi di due dischi sono possibili, ma l'affidabilit di
un dato sistema RAID-0 uguale all'affidabilit media dei dischi diviso per il numero di
dischi presenti. Quindi l'affidabilit, misurata come tempo medio tra due guasti (MTBF),
inversamente proporzionale al numero degli elementi; cio un sistema di due dischi
affidabile la met di un disco solo. La ragione per la quale questo succede che il file
system diviso tra tutti i dischi. Quando un drive si guasta, il file system non pu gestire
una perdita di dati cos grande visto che i dati sono divisi tra tutti i dischi. I dati possono
essere spesso recuperati con qualche strumento, anche se saranno sicuramente
incompleti e danneggiati.
RAID-0 molto utile per creare grandi server NFS in una sola posizione, nei casi nei quali
montare molti dischi dispendioso o impossibile e la ridondanza irrilevante. Si usa
anche quando il numero di dischi sia limitato dal sistema operativo. In Microsoft Windows,
il numero delle lettere dei dischi limitato a 128, cos il RAID-0 un modo molto diffuso
per usare un numero maggiore di dischi. Comunque, siccome non c' ridondanza, i dati
sono condivisi tra i dischi e i dischi non possono essere sostituiti visto che sono tutti
dipendenti tra di loro. Questo tipo di progettazione non in realt un vero e proprio RAID,
in quanto non c' alcuna ridondanza (Architettura Dei Calcolatori - Tanenbaum).
Concatenazione
Sebbene una concatenazione di dischi non sia uno dei livelli RAID, un metodo popolare
per combinare un insieme di dischi fisici in un grande disco virtuale. Come il nome indica,
semplicemente un concatenamento di dischi al fine di far sembrare l'insieme come un
singolo disco.
In questo senso, la concatenazione un modo per invertire il partizionamento. Mentre il
partizionamento prende un singolo disco fisico e crea uno o pi dischi logici, la
concatenazione usa due o pi dischi fisici per creare un singolo disco logico. Anche la
concatenazione, come il RAID 0, nel caso di rottura di un disco rende inutilizzabile l'intero
array di dischi. In questo caso per il recupero dei dati sar un po' pi probabile rispetto al
RAID 0 in quanto i dati sono scritti linearmente come se fosse un solo Hard Disk con un
numero di blocchi danneggiati pari alla dimensione dell'Hard Disk danneggiato.
Per questo motivo pu essere definito un Insieme di dischi Economici (senza ridondanza),
e pu essere visto come un parente lontano del RAID. La concatenazione utile a volte
per trasformare un insieme di dischi di diverse dimensioni in un disco logico di dimensioni
utili. Quindi, la concatenazione pu usare dischi da 3 GB, 15 GB, 5,5 GB e 12 GB per
creare un singolo disco logico da 35,5 GB, di certo pi utile dei singoli dischi presi
separatamente.
In Linux 2.6 definito come RAID.
Concatenazione o JBOD
JBOD un acronimo inglese che significa Just a Bunch of Disks ovvero solo un mucchio
di dischi. Il termine JBOD viene spesso utilizzato in modo impreciso come sinonimo di
"concatenazione", quando in realt dovrebbe significare i dischi messi l cos come sono.
Visto che l'uso non certo si pu intendere (e va verificato di volta in volta) come: o
gruppo di dischi accessibili singolarmente, o gruppo di dischi visibili in modo concatenato.
La definizione corretta di JBOD comunque gruppo di dischi accessibili singolarmente. Il
termine pi corretto per definire la concatenazione SPAN.
RAID 1 (Mirroring)
Sistema RAID-1. A1, A2, ecc. sono replicati tra i due dischi, aumentando l'affidabilita e la
velocit in lettura
Il sistema RAID 1 crea una copia esatta (mirror) di tutti i dati su due o pi dischi. utile nei
casi in cui la ridondanza pi importante che usare tutti i dischi alla loro massima
capacit: infatti il sistema pu avere una capacit massima pari a quella del disco pi
piccolo. In un sistema ideale, formato da due dischi, l'affidabilit aumenta di un fattore due
rispetto al sistema a disco singolo, ma possibile avere pi di una copia dei dischi. Poich
ogni disco pu essere gestito autonomamente nel caso l'altro si guasti, l'affidabilit
aumenta linearmente al numero di dischi presenti. RAID-1 aumenta anche le prestazioni in
lettura, visto che molte implementazioni possono leggere da un disco mentre l'altro
occupato.
Una pratica comune di creare un mirror extra di un disco (detto anche Business
Continuance Volume o BCV) che pu essere diviso dal sistema RAID originario ed essere
usato in maniera indipendente. In alcune implementazioni, questi mirror aggiuntivi
possono essere divisi e aggiunti in maniera incrementale, invece di richiedere una
ricostruzione completa del RAID.
di dati ha la propria definizione diffusa tra tutti i dischi del RAID e risieder nella stessa
locazione, cos ogni operazione di I/O richiede di usare tutti i dischi.
Nell'esempio accanto, una richiesta per il blocco A richieder di cercare attraverso tutti i
dischi. Una richiesta simultanea per il blocco B rimarr invece in attesa.
Ridondanza
In caso di guasto, si accede al disco di parit e i dati vengono ricostruiti. Una volta che il
disco guasto viene rimpiazzato, i dati mancanti possono essere ripristinati e l'operazione
pu riprendere. La ricostruzione dei dati piuttosto semplice. Si consideri un array di 5
dischi nel quale i dati sono contenuti nei dischi X0, X1, X2 e X3 mentre X4 rappresenta il
disco di parit. La parit per l'i-esimo bit viene calcolata come segue:
X4(i) = X3(i) X2(i) X1(i) X0(i)
Si supponga che il guasto interessi X1. Se eseguiamo l'OR esclusivo di X4(i) X1(i) con
entrambi i membri della precedente equazione otteniamo:
X1(i) = X4(i) X3(i) X2(i) X0(i)
Cos, i contenuti della striscia di dati su X1 possono essere ripristinati dai contenuti delle
strisce corrispondenti sugli altri dischi dell'array. Questo principio persiste nei livelli RAID
superiori.
Vantaggi: Fault tolerant, read veloci grazie al parallelismo della struttura, possibilit
di inserire dischi hot-spare.
Svantaggi: Il disco utilizzato per la parit pu costituire il collo di bottiglia del
sistema, scrittura lenta a causa della modifica e del calcolo della parit (4 accessi a
disco per ogni operazione I/O).
In un sistema RAID 5 che ha un solo blocco di parit per stripe, la rottura di un secondo
disco comporta la perdita di tutti i dati presenti nel sistema.
Il numero massimo di dischi teoricamente illimitato, ma una pratica comune di
mantenere il numero massimo di dischi a 14 o meno per le implementazioni che hanno
solo un blocco di parit per stripe. Le ragioni per questo limite sono che la probabilit che
due dischi del sistema si rompano in successione cresce con il crescere del numero di
dischi. Quando il numero di dischi in un sistema RAID-5 cresce, il MTBF del sistema nel
suo complesso pu persino diventare minore di quello di un singolo disco. Questo
succede quando la probabilit che si rompa un secondo disco degli
rimanenti, tra
il tempo di accorgersi, sostituire e ricreare il primo disco guasto, diventi maggiore della
probabilit che un singolo disco si guasti.
Bisogna ricordare che l'aggregazione di pi dischi in spazi ridotti causa un aumentare
della temperatura ed espone quest'ultimi a maggiori vibrazioni, influendo quindi sulla
tolleranza agli errori, aumentando il rischio di failures e rischiando di ridurne il ciclo di vita.
Inoltre, i dischi di uno stesso gruppo comprati nello stesso periodo potrebbero raggiungere
la fine della loro vita insieme, abbassando in maniera significativa il MTBF del sistema.
buona norma, normalmente seguita dai produttori di server, inserire in RAID dischi identici
ma provenienti da partite differenti, ovvero con numeri di serie e/o date e luogo di
produzione distinti e lontani. semplicemente falsa e - come abbiamo visto - anche
controproducente l'affermazione, che spesso si trova in alcune aste online o su alcuni
mercatini, che vorrebbe una coppia di dischi con numeri di serie contigui come
perfettamente adatta all'utilizzo in RAID.
Nelle implementazioni con pi di 14 dischi, o in situazioni dove necessaria grande
ridondanza dei dati, viene usata spesso una implementazione RAID 5 con doppia parit
(detta anche RAID 6), che riesce a gestire il guasto contemporaneo di due dischi.
Vantaggi: la parit distribuita e quindi non esiste il problema del disco collo di
bottiglia come nel RAID 4, le scritture sono pi veloci rispetto allo stesso RAID 4,
perch il disco che nel RAID 4 dedicato alla parit ora pu essere utilizzato per le
letture parallele.
Svantaggi: scritture lente a causa della modifica e del calcolo della parit (4
accessi a disco per ogni operazione I/O).
Nel RAID-6, il blocco di parit viene generato e distribuito tra due stripe di parit, su due
dischi separati, usando differenti stripe di parit nelle due direzioni.
Il RAID-6 pi ridondante del RAID-5, ma molto inefficiente quando viene usato in un
numero limitato di dischi. Vedi la doppia parit, spiegata di seguito, per una
implementazione ancora pi ridondante.
Vantaggi:
Svantaggi:
Write molto lente a causa della modifica e del calcolo della parit (6 accessi a disco
per ogni operazione I/O), necessari N+2 dischi, molto costoso economicamente a
causa della ridondanza e della complessit del controller della struttura.
Problema del Write Hole. Le write sui diversi dispositivi non sono atomiche
nell'insieme: questo vuol dire che la mancanza di alimentazione durante una
scrittura pu portare alla perdita di dati. Ad esempio, con un sistema con 3 dischi in
raid 5, se si volesse modificare il blocco n si dovrebbero fare queste operazioni:
lettura del blocco n-1, lettura della parit, calcolo della nuova parit, scrittura del
blocco n, e scrittura della parit. Il problema si ha nel caso in cui venga a mancare
l'alimentazione durante queste due ultime operazioni.
RAID 0+1
Un sistema RAID 0+1 un RAID che viene usato sia per replicare che per condividere dati
tra diversi dischi. La differenza tra il RAID 0+1 e il RAID 1+0 la diversa disposizione di
ogni sistema RAID. Si consideri l'esempio sottostante del RAID 0+1: sei dischi da 120 GB
sono usati per creare un sistema RAID 0+1.
RAID 1
RAID 0
RAID 0
120GB 120GB 120GB 120GB 120GB 120GB
Lo spazio totale di 360GB, divisi tra due sistemi. Il vantaggio principale che quando un
disco si rompe tra quelli del RAID-0, i dati mancanti possono essere trasferiti dall'altro
RAID-0. Comunque, aggiungere un disco richiede di aggiungere due dischi per bilanciare
lo spazio tra i due sistemi.
Il sistema non cos robusto come il RAID 1+0 e non pu sopportare la rottura simultanea
di due dischi, se non appartengono alla stessa famiglia di RAID 0. Cio, se un disco si
rompe, ogni altro disco dell'altra stripe (riferita al RAID 1) un elemento critico per il
sistema. Inoltre, se un disco viene sostituito, per ricostruire il sistema devono partecipare
tutti i dischi dell'insieme RAID 0 ancora funzionante.
RAID 1+0
Un sistema RAID 1+0, chiamato anche RAID 10, simile al RAID 0+1 ma i livelli RAID
sono usati in senso invertito. Nell'esempio sottostante si possono vedere 3 insiemi di
dischi da 120 GB in RAID 1 che sono uniti per raggiungere lo spazio complessivo di 360
GB.
RAID 0
RAID 1
RAID 1
RAID 1
Ogni disco di ogni sistema RAID 1 pu danneggiarsi senza far perdere dati al sistema.
Comunque, se il disco danneggiato non viene sostituito, il disco rimasto nel RAID 1 rimane
il punto critico del sistema. Se il disco rimasto si dovesse rompere, tutte le informazioni
contenute nell'intero sistema andrebbero perse.
Un disco da 120 GB potrebbe essere aggiunto in ogni momento nel sistema RAID 1 per
aumentare la ridondanza. Diversamente dal RAID 0+1, i sotto-sistemi RAID 1 non devono
essere aggiornati contemporaneamente.
Doppia parit
Una delle modifiche pi comuni ai livelli RAID esistenti la "doppia parit", detta anche
"parit diagonale". Come nel RAID 6, sono creati due tipi di parit diverse, ma
diversamente il secondo tipo non soltanto una copia aggiuntiva del primo. Al contrario
molte implementazioni a doppia parit calcolano la parit aggiuntiva su un gruppo diverso
di blocchi. Mentre i sistemi RAID 5 e RAID 6 calcolano tradizionalmente la parit su un
gruppo di blocchi standard (A1, A2, A3, AP), la doppia parit usa anche gruppi diversi; per
esempio, nel disegno sottostante, il RAID 5 e RAID 6 calcolano la parit rispetto tutti i
blocchi inizianti per A. Il sistema a doppia parit usa invece anche i blocchi numerati con 1
per ricavare una parit diversa.
RAID 5
RAID 6
RAID 5
Tradizionale
Tipico
Doppia parit
A1 A2 A3 Ap A1 A2 Ap Ap A1 A2 A3 Ap
B1 B2 Bp B3 B1 Bp B2 Bp B1 B2 Bp B3
C1 Cp C2 C3 Cp C1 Cp C2 C1 Cp C2 C3
Dp D1 D2 D3 Dp Dp D1 D2 1p 2p 3p --
RAID 7
Il sistema RAID 7 un marchio registrato della Storage Computer Corporation. Aggiunge
un sistema di caching al RAID-3 o RAID-4 per aumentare le prestazioni.