RAID

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Disambiguazione – Se stai cercando altri significati, vedi Raid (disambigua).

In informatica il RAID, acronimo di "Redundant Array of Independent Disks" ovvero insieme ridondante di dischi indipendenti, (originariamente "Redundant Array of Inexpensive Disks", insieme ridondante di dischi economici), è una tecnica di installazione raggruppata di diversi dischi rigidi in un computer (o collegati ad esso) che fa sì che gli stessi nel sistema appaiano e siano utilizzabili come se fossero un unico volume di memorizzazione.

Scopi del RAID sono: aumentare le performance, rendere il sistema resiliente alla perdita di uno o più dischi e poterli rimpiazzare senza interrompere il servizio. Il RAID sfrutta, con modalità differenti a seconda del tipo di realizzazione, i principi di ridondanza dei dati e di parallelismo nel loro accesso per garantire, rispetto ad un disco singolo, incrementi di prestazioni, aumenti nella capacità di memorizzazione disponibile, miglioramenti nella tolleranza ai guasti e quindi maggiore affidabilità.[1] Le modalità più diffuse sono RAID 0, 1, 5 e 10. La 3 e la 4 sono state praticamente soppiantate dalla 5. Alcuni sistemi usano modalità nidificate come la 10 o altre modalità proprietarie.

Il RAID può essere implementato anche nei PC normali: sono disponibili, infatti, schede RAID a basso costo quando questo non sia già presente sulle schede madri più sofisticate: Tuttavia è una tecnica storicamente impiegata nei server o nelle workstation dove sono richiesti grandi volumi o elevate prestazioni di immagazzinamento di dati: ad esempio per ospitare una base di dati o una postazione di montaggio di audio o video digitali. Il RAID si trova comunemente anche nei NAS e, sempre, nei sistemi di storage per architetture blade.

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. 109–116). 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, 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

[modifica | modifica wikitesto]

Sezionamento dei dati

[modifica | modifica wikitesto]

I dati vengono suddivisi in sezioni (stripes, in inglese) di uguale lunghezza, detta l'unità del sezionamento, e scritti su dischi differenti, solitamente secondo un algoritmo di distribuzione di tipo round robin.

Quando si richiede una lettura di dimensione superiore all'unità di sezionamento, diverse implementazioni di diversi sistemi RAID distribuiscono l'operazione su più dischi in parallelo, aumentando le prestazioni. Ad esempio, se abbiamo sezioni da 1 bit e un array di D dischi, le sequenze di dati lunghe almeno D bit sfruttano tutti i dischi.

Economico o indipendente

[modifica | modifica wikitesto]

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

[modifica | modifica wikitesto]

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 componenti extra (anche questi, in ogni caso, soggetti a possibili guasti).

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.

Livelli RAID standard

[modifica | modifica wikitesto]

Tabella riassuntiva dei più comuni livelli RAID[3]

Livello Numero minimo
di dischi
Capacità Numero massimo consentito
di dischi difettosi
Schema Vantaggi Svantaggi
RAID 0 2 C × N
0 RAID Level 0 Costo di implementazione basso;

alte prestazioni in scrittura e lettura grazie al parallelismo delle operazioni I/O dei dischi concatenati.

Impossibilità d'utilizzo di dischi hot-spare;

affidabilità drasticamente ridotta, anche rispetto a quella di un disco singolo.

RAID 1 2 C N - 1 RAID Level 1 Affidabilità, cioè resistenza ai guasti, che aumenta linearmente con il numero di copie;

velocità di lettura (in certe implementazioni e sotto certe condizioni).

Bassa scalabilità;

costi aumentati linearmente con il numero di copie;

velocità di scrittura ridotta a quella del disco più lento dell'insieme.

RAID 2 7 C × (2P - P - 1) / N 1 Protezione contro letture non corrette da tutti i dischi. Serve un controller dedicato che sia capace di tenere in sincrono la lettura di tutti i dischi;

serve un numero elevato di dischi per avere una capacità di dati accettabile.

RAID 3 3 C × (N - 1) 1 RAID Level 3 Velocità di scrittura uguale a quella di lettura. La lettura di un blocco coinvolge tutti i dischi, e quindi le letture non sono parallelizzabili.
RAID 4 3 C × (N - 1) 1 RAID Level 4 Resistenza ai guasti;

letture veloci grazie al parallelismo della struttura;

possibilità di inserire dischi hot-spare.

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).

RAID 5 3 C × (N − 1) 1 RAID Level 5 La parità è distribuita e quindi non esiste il problema del disco collo di bottiglia come nel RAID 4;

Le letture e 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).

Scritture lente a causa della modifica e del calcolo della parità

(4 accessi a disco per ogni operazione I/O), ma è comunque più veloce del singolo disco ed aumenta all'aumentare del numero di dischi.

Su un controller P410, un raid 5 composto da 5 dischi da 10.000 RPM, la lettura/scrittura sequenziale è paragonabile a quella di un SSD; con 10 dischi è più del doppio.

RAID 6 4 C × (N − 2) 2 RAID Level 6 Altissima fault tolerance grazie alla doppia ridondanza. Scritture 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.

Livelli RAID annidati
C = capacità del disco più piccolo; N = numero di dischi; P = dischi di parità

RAID 0: sezionamento senza ridondanza

[modifica | modifica wikitesto]

Il sistema RAID 0 divide i dati equamente tra due o più dischi, tipicamente tramite sezionamento (o striping), ma senza mantenere alcuna informazione di parità o ridondanza che aumenti l'affidabilità (la dicitura RAID, ancorché diffusa, è pertanto impropria). RAID 0 è usato generalmente per aumentare le prestazioni di un sistema, o per la comodità di usare un grande numero di piccoli dischi fisici come se fossero un piccolo numero di grandi dischi virtuali.

L'affidabilità del sistema, misurata come tempo medio tra due guasti (MTBF), è inversamente proporzionale al numero degli elementi, perché uguale al rapporto tra l'affidabilità media dei dischi e il numero di dischi presenti. Un sistema di due dischi, per esempio, è affidabile la metà di un disco solo. Visto che il file system utilizza tutti i dischi, infatti, il guasto di un disco rende inaccessibile una porzione così grande del file system da impedirne spesso ogni funzionamento, sebbene i dati possano essere recuperati, seppur incompleti e danneggiati. RAID 0 è molto utile per creare server che necessitino di grandi spazi di stoccaggio, per i quali ridondanza è irrilevante o gestita altrimenti (cfr. RAID 1+0 e RAID 0+1), ma dove avere un grande numero di volumi sarebbe dispendioso, come un server NFS costretto ad esporre decine di punti di montaggio, o impossibile, come un sistema Microsoft Windows che ha il limite massimo di 128 volumi logici.

Vantaggi
costo di implementazione basso;
alte prestazioni in scrittura e lettura, grazie al parallelismo delle operazioni I/O dei dischi concatenati.
Svantaggi
impossibilità d'utilizzo di dischi hot-spare;
affidabilità drasticamente ridotta, anche rispetto a quella di un disco singolo: l'affidabilità di un sistema di n dischi con affidabilità media A è pari a A/n.

Concatenazione

[modifica | modifica wikitesto]

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 indipendente (o JBOD)

[modifica | modifica wikitesto]

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: replicazione

[modifica | modifica wikitesto]
Sistema RAID-1. A1, A2, ecc. sono replicati tra i due dischi, aumentando l'affidabilita e la velocità in lettura

Il sistema RAID 1, detta anche mirror, mantiene una copia esatta di tutti i dati su almeno due dischi. È utile quando la ridondanza sia ritenuta un'esigenza più importante rispetto allo sfruttamento ottimale della capacità di stoccaggio dei dischi. L'insieme, infatti, limita il suo volume a quello del disco di taglia inferiore. D'altro canto, visto che un sistema con n dischi è in grado di resistere alla rottura di n - 1 componenti, l'affidabilità aumenta linearmente al numero di dischi presenti.

A livello prestazionale, il sistema RAID 1 aumenta tipicamente i risultati per le operazioni di lettura, perché molte implementazioni sono in grado di effettuare diverse operazioni in parallelo: mentre la lettura di un blocco è ancora in corso su un disco, cioè, possono effettuarne un'altra su un disco diverso. In ogni caso, la velocità di lettura raggiunge quella del disco più veloce in presenza di dispositivi di memorizzazione con prestazioni diverse: una singola operazione di lettura è richiesta inizialmente e contemporaneamente su tutti i dischi, ma si conclude nel momento della prima risposta ricevuta. Viceversa, la velocità di scrittura scende a quella del disco più lento, perché questo tipo di azione richiede il compimento della replica della stessa operazione su ogni disco dell'insieme.

Una pratica comune consiste nel creare una copia aggiuntiva 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, questo genere di copie possono essere divise e aggiunte in maniera incrementale, invece di richiedere una ricostruzione completa del RAID.

Vantaggi
affidabilità, cioè resistenza ai guasti, che aumenta linearmente con il numero di copie;
velocità di lettura (in certe implementazioni e sotto certe condizioni).
Svantaggi
bassa scalabilità;
costi aumentati linearmente con il numero di copie;
velocità di scrittura ridotta a quella del disco più lento dell'insieme.

RAID 2: sezionamento a livello di bit

[modifica | modifica wikitesto]

Un sistema RAID 2 divide i dati al livello di bit (invece che di blocco) e usa un codice di Hamming per la correzione d'errore che permette di correggere errori su singoli bit e di rilevare errori doppi. Questi dischi sono sincronizzati dal controllore, in modo tale che la testina di ciascun disco sia nella stessa posizione in ogni disco. Questo sistema si rivela molto efficiente in ambienti in cui si verificano numerosi errori di lettura o scrittura, ma al giorno d'oggi, data l'inclusione della correzione tramite codice di Hamming (ECC) direttamente nel controller del disco, il RAID 2 non viene utilizzato ed è considerato obsoleto[1].

RAID 3: sezionamento a livello di byte con disco di parità

[modifica | modifica wikitesto]
A1, B1, ecc. rappresentano ognuno un byte.

Un sistema RAID 3 usa una divisione al livello di byte con un disco dedicato alla parità. Il RAID-3 è estremamente raro nella pratica. Uno degli effetti collaterali del RAID-3 è che non può eseguire richieste multiple simultaneamente. Questo perché ogni singolo blocco di dati ha la propria definizione diffusa tra tutti i dischi del RAID e risiederà nella stessa posizione, 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.

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.

RAID 4: sezionamento a livello di blocco con disco di parità

[modifica | modifica wikitesto]
A1, B1, ecc. rappresentano ognuno un blocco di dati

Il sistema RAID 4 usa una divisione dei dati a livello di blocchi e mantiene su uno dei dischi i valori di parità, in maniera molto simile al RAID 3, dove la suddivisione è a livello di byte. Questo permette ad ogni disco appartenente al sistema di operare in maniera indipendente quando è richiesto un singolo blocco.

Se il controllore del disco lo permette, un sistema RAID 4 può servire diverse richieste di lettura contemporaneamente. In lettura la capacità di trasferimento è paragonabile al RAID 0, ma la scrittura è penalizzata, perché la scrittura di ogni blocco comporta anche la lettura del valore di parità corrispondente e il suo aggiornamento.

Nell'esempio accanto, una richiesta al blocco A1 potrebbe essere evasa dal disco 1. Una richiesta simultanea al blocco B1 dovrebbe aspettare, ma una richiesta al blocco B2 potrebbe essere servita allo stesso momento.

Vantaggi
resistenza ai guasti;
letture 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).

RAID 5: sezionamento a livello di blocco con parità distribuita

[modifica | modifica wikitesto]

Un sistema RAID 5 usa una suddivisione dei dati a livello di blocco, distribuendo i dati di parità uniformemente tra tutti i dischi che lo compongono. È una delle implementazioni più popolari, sia in software, sia in hardware, dove praticamente ogni dispositivo integrato di storage dispone del RAID-5 tra le sue opzioni.

Nell'esempio sottostante, una richiesta al blocco A1 potrebbe essere evasa dal disco 1. Una simultanea richiesta per il blocco B1 dovrebbe aspettare, ma una richiesta simultanea per il blocco B2 potrebbe essere evasa in contemporanea.

A1, B2, ecc. rappresentano ognuno un blocco di dati.

Ogni volta che un blocco di dati (chiamato delle volte chunk) deve essere scritto nel sistema di dischi, un blocco di parità viene generato all'interno della stripe (così è chiamata una serie di blocchi consecutivi. Un blocco è spesso composto da molti settori di disco, delle volte anche 256). Se un altro blocco, o qualche porzione dello stesso blocco, è scritta nella stessa stripe, il blocco di parità viene ricalcolato e riscritto. Il disco usato per memorizzare le parità viene modificato tra una stripe e la successiva; in questo modo si riescono a distribuire i blocchi di parità.

Bisogna notare che il blocco di parità non viene letto quando si leggono i dati da disco, visto che sarebbero un sovraccarico non necessario e diminuirebbe le prestazioni. Il blocco di parità è letto, invece, quando la lettura di un settore dà un errore CRC. In questo caso, il settore nella stessa posizione relativa nei blocchi di dati rimanenti della stripe, insieme al blocco di parità, vengono usati per ricostruire il blocco mancante. In questo modo l'errore di CRC viene nascosto al computer chiamante. Nella stessa maniera, se un disco dovesse danneggiarsi all'interno del sistema, i blocchi di parità dei dischi rimanenti sono combinati matematicamente al volo con i blocchi dati rimasti per ricostruire i dati del disco guasto.

Questa procedura viene chiamata di solito Interim Data Recovery Mode. Il computer principale non è messo al corrente che un disco si è danneggiato. Le letture e scritture verso il sistema di dischi avvengono tranquillamente come prima, sebbene con qualche calo di prestazioni.

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 questi 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).

RAID 6: sezionamento a livello di blocco con doppia parità distribuita

[modifica | modifica wikitesto]
A1, B1, ecc. rappresentano ognuno un blocco di dati.

Un sistema RAID 6 usa una divisione a livello di blocchi con i dati di parità distribuiti due volte tra tutti i dischi. Non era presente tra i livelli RAID originari.

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
  • Altissima fault tolerance grazie alla doppia ridondanza.
Svantaggi
  • Scritture 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.

Livelli RAID annidati

[modifica | modifica wikitesto]
Livelli numero minimo di dischi Capacità Numero massimo consentito
di dischi difettosi
Schema Vantaggi Svantaggi
RAID 01 4 C × N / 2
RAID 10 4 C × N / 2
RAID 50
C = capacità del disco più piccolo; N = numero di dischi

Molti controllori di disco possono annidare alcuni livelli di RAID. Cioè, un sistema RAID può usarne un altro come elemento di base.

RAID 0+1 (o RAID 01)

[modifica | modifica wikitesto]

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.

 120GB 120GB 120GB  120GB 120GB 120GB
  │     │     │      │     │     │
  ┴—————┼—————┴      ┴—————┼—————┴
       RAID 0            RAID 0
         │                 │
         ┴————————┼————————┴
                  │
                RAID 1

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 (o RAID 10)

[modifica | modifica wikitesto]

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
   ┌—-—┴———┐      ┌—-—┴———┐       ┌—-—┴———┐
   │       │      │       │       │       │
 120GB   120GB  120GB   120GB   120GB   120GB

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.

Livelli RAID proprietari

[modifica | modifica wikitesto]

Sebbene tutte le implementazioni RAID siano diverse dalle specifiche idealizzate, alcune ditte hanno sviluppato sistemi completamente proprietari che sono molto diversi da tutti gli altri.

Doppia parità

[modifica | modifica wikitesto]

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  --
 
 Nota: A1, B1, ecc. rappresentano rispettivamente un blocco di dati.

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.

  1. ^ a b Derek Vadala, Managing RAID on Linux, O' Reilly, 2002.
  2. ^ (EN) US4092732, United States Patent and Trademark Office, Stati Uniti d'America.
  3. ^ Single RAID Levels

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica