RAID

Esistono molte teorie ed applicazioni pratiche tese ad evitare la perdiata di dati. Fra tutte ne spicca una: il RAID (Redundant Array of Inexpensive Disk), una serie ridondante di hard disk economici.

1. Prima che la tecnologia RAID venisse inventata, i costruttori di hard disk tendevano a spingere all’estremo la

sofisticazione tecnologica dei loro prodotti per renderli sempre più veloci e soprattutto affidabili.

2. A quel punto ci si è chiesti come fare si che la rottura di un disco non causasse alcuna perdita di dati.

3. La risposta è RAID: un’architettura nella quale i dati vengono scritti contemporaneamente su più dischi. Anche

qualora un disco si rompa, il dato è salvaguardato in quanto è presente anche sugli altri dischi del RAID.

Nel passato i RAID composti da piccoli dischi poco costosi erano visti come alternativa ai grandi e costosi dischi; attualmente i RAID sono usati per la loro maggiore affidabilità (tolleranza ai guasti) e per la superiore velocità di trasferimento dei dati, piuttosto che per motivi economici.

Un po' di terminologia in materia:


  • Striping: tecnologia atta ad aumentare le prestazionei di un RAID in quanto prevede la scrittura dei dati distribuita su più dischi contemporaneamente. Su un array di 3 o più dischi offre vantaggi prestazionali, su un array di 2 dischi non viene applicata in quanto non aumenterebbe minimamente le prestazioni del mirroring.


  • Mirroring: il mirroring è la capacità di replicare i dati scrivendoli contemporaneamente su più dischi dell’array. Alla rottura di un disco sarà sufficiente sostituirlo ed il controller RAID ricostruirà i dati prendendone le copie dagli altri dischi. Il mirroring mediamente dimezza la capacità dell’array di dischi in quanto ogni dato viene scritto due volte in due posti diversi.


  • Hot Swap: possibilità di sostituire un disco del RAID a caldo, ossia senza spegnere o fermare il computer all’interno del quale il RAID risiede. Di solito tali device sono dotati di cassettini estraibili all’interno dei quali sono contenuti i dischi veri e propri. Alla rottura di un disco il computer continuerà a funzionare come se nulla fosse usando i dischi rimanenti. Estraendo e sostituendo il disco rotto mentre la macchina funziona non causerà alcun danno ed i dati verranno immediatamente ricostruiti sul nuovo disco ripristinando la stabilità completa del RAID.


Il mirroring fornisce alta affidabilità ma è costoso. Lo striping, fornisce un’alta velocità di trasferimento dati, ma non migliora l’affidabilità. Sono stati proporsti numerosi schemi per fornire ridondanza a basso costo utilizzando l’idea dello spezzamento del disco combinato con l’uso di bit di parita o di ECC. Sono nati cosi i livelli di RAID. Nelle descrizioni seguenti si avrà:

      • P indica i bit di correzione dell’errore
      • C indica una seconda copia dei dati

In tutti i casi è memorizzata una quantità di dati equivalente a quattro dischi e si usano dischi supplementari per le informazioni ridondanti per il recupero dopo un guasto.


RAID 0 - Striping

Distribuzione (striping) non ridondante

Il RAID livello 0 si riferisce agli array di dischi con spezzamento a livello di blocchi, ma senza alcuna ridondanza.

RAID 1 - Mirroring

Mirroring dei dischi

Il RAID a livello 1 si riferisce al mirroring di dischi. La figura, mostra un’organizzazione di mirror che gestisce una quantità di dati pari a quattro dischi.

RAID 2 - ECC

Codice per la correzione degli errori

Ogni byte in memoria può avere associato un bit di parità. Gli schemi ECC, memorizzano due o più bit supplementari per poter ricostruire i dati eventualmente danneggiati. Ad esempio, si può memorizzare il primo bit di ogni byte nel primo disco, il secondo nel disco 2 e così via. I bit di correzione sono immagazzinati in dischi supplementari (dischi P). Se uno dei dischi viene a mancare, i rimanenti bit, e quelli correttivi associati, possono venire letti dagli altri dischi ed essere usati per ricostruire i dati danneggiati.

RAID 3 - Bit Interleaved parity

Parità a bit alternati

Migliora il livello 2. Se uno dei settori del disco viene danneggiato, sappiamo esattamente di che settore si tratta e, per ogni bit nel settore possiamo rilevare se è 1 o 0 calcolando la parità dei bit corrispondenti degli altri dischi. Questo livello di RAID è meno costoso del 2 in quanto si utilizza un numero di dischi supplementari inferiore. Per questo il livello 2, nella pratica non viene usato. Inoltre serve un solo disco supplementare contro gli N dischi mirror del livello 1.

RAID 4 - Block Interleaved parity

Parità a blocchi alternati

Usa una suddivisone a livello di blocco come nel RAID 0, e inoltre mantiene un blocco di parità su un disco separato per i blocchi corrispondenti provenienti da altri N dischi (figura (e)). Si ha una velocità di I/O più elevata rispetto al livello 3, inoltre la velocità di trasferimento per letture di grandi dimensioni è elevata, poiché tutti i dischi possono essere letti in parallelo.

RAID 5 - Distribuited Block Interleaved parity

Parità distribuita a blocchi alternati

Differisce dal livello 4 per la suddivisione dei dati e della parità tra tutti gli N+1 dischi, invece di memorizzare i dati in N dischi e la parità in un solo disco. Per ogni blocco, cioè, uno dei dischi memorizza la parità e gli altri memorizzano i dati.

RAID 6 - P+Q Redundancy

Ridondanza P + Q

E’ molto simile al RAID 5, ma memorizza ulteriori informazioni ridondanti su diversi supporti per fronteggiare l’evenienza di guasti di dischi multipli. Invece di usare la parità, si usano dei codici correttori dell’errore (ad es. codici di Reed-Solomon). In questo livello sono memorizzadi 2 bit di dati ridondanti ogni quattro bit di dati e il sistema può supportare 2 guasti del disco.

Sono infine presenti due tecniche di RAID che uniscono il RAID 0 ed il RAID 1 e vengono definiti RAID a più livelli:

RAID 0 + 1

Striping + Mirroring

Vengono combinati i livelli di RAID 0 e 1. Il RAID 0 fornisce le prestazioni, mentre il RAID 1 fornisce l’affidabilità. Nel RAID 0 + 1, si suddivide un gruppo di dischi, quindi la suddivisione viene messa in mirror con un’altra suddivisione ad essa equivalente. In questo tipo di RAID se si guasta un singolo disco, risulta inaccessibile l’intera suddivisione.

RAID 1 + 0

Mirroring + Striping

Come nel precedente caso si combinano i RAID 0 e 1. In questo caso però, i dischi sono in mirror a coppie (RAID 1) e poi le coppie del mirror risultano suddivise (RAID 0). In questo caso, il principale vantaggio è dato dal fatto che se si guasta un singolo disco, sarà l’unico indisponibile, ma il resto dei dischi e la sua coppia mirror resteranno accessibili.

Fonte: Appunti del corso universitario: "Sistemi Operativii", Paolo Bettini