Raid 0, Raid 1, Raid 5, Raid 0+1 e Raid 1+0 - Spiegazione
RAID 0 (o anche chiamato 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 corrotti.
RAID-0 è molto utile per creare grandi server NFS in 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 24, così il RAID-0 è un modo molto diffuso per usare un numero maggiori 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.
RAID 1 (o anche chiamato Mirroring)
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.
RAID 5
Un sistema RAID 5 usa una divisione dei dati a livello di blocco con i dati di parità distribuiti tra tutti i dischi appartenenti al RAID. Questa è una delle implementazioni più popolari, sia in hardware che in software. Virtualmente ogni sistema di storage permette il 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.
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. (Un blocco è spesso composto da molti settori di disco, delle volte anche 256. Una serie di blocchi consecutivi è chiamato stripe). 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 performance. 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 (N - 1) 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 più dischi insieme aumentano il calore, che abbassa il vero MTBF di ogni disco. 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.
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.
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 stripe. Cioè, se un disco si rompe, ogni altro disco dell'altra stripe è un elemento critico per il sistema. Inoltre, se un disco viene sostituito, per ricostruire il sistema devono partecipare tutti i dischi.
RAID 1+0
Un sistema RAID 1+0, è 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.
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.







