Raid, acronimo di Redundant Array of Independent Disks, è un sistema hardware o software che permette di raggruppare più dischi in particolari configurazioni tali che il Sistema Operativo li veda come un disco unico.
Il SO quindi “vede” un solo disco ma il software o l’hardware ovviamente no.
Lo scopo del RAID è quindi: aumentare le performance, rendere il sistema resiliente alla perdita/rottura 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 migliore affidabilità.
Esistono vari tipi di configurazioni RAID, o livelli. Le più usate sono:
RAID 0: stripping
RAID 1: mirroring
RAID 5: stripping con parità distribuita
RAID 6: stripping con doppia parità distribuita
RAID 10: mirroring e stripping
Senza scendere troppo nei dettagli, possiamo riassumere le varie configurazioni in questo modo:
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à. Servono ALMENO 2 dischi.
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. Servono ALMENO 2 dischi.
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. Servono ALMENO 3 dischi.
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. Servono ALMENO 4 dischi.
Un sistema RAID 1+0, chiamato anche RAID 10, è una combinazione tra livello 0 e livello 1. Un piccolo esempio aiuta a chiarire questo concetto, anche perchè questa è la configurazione che andremo ad analizzare più avanti nel dettaglio, essendo piena di vantaggi e con pochissimi svantaggi rispetto a tutte le altre configurazioni RAID. Servono ALMENO 4 dischi.
Ipotizziamo di avere 4 dischi , A, B, C e D (Disk1, Disk2, Disk3 e Disk4 nell’immagine).
I dischi A e B vengono creati con livello 1, cioè A è una copia esatta di B e viceversa. Formano un disco “logico” che chiamiamo AB.
I dischi C e D vengono creati con livello 1. Formano un disco “logico” che chiamiamo CD.
I dischi “logici” AB e CD vengono configurati con livello 0, creando il disco “logico” ABCD, che il sistema operativo vedrà, per esempio, come Volume0.
Il vantaggio del RAID10 è che si può rompere o guastare il disco A e il disco C ma nonostante questo il Volume0 continuerà a funzionare. Oppure si possono guastare A e D oppure B e C ecc. Ovviamente se si dovessero guastare A e B, il sistema perderebbe tutti i dati.
Per aumentare ulteriormente la sicurezza, intesa come numero di dischi che si possono rompere, si potrebbero aumentare i dischi in RAID1, ovvero potremmo avere A, B e C in RAID1 e D, E ed F sempre in RADI1 a formare l’altra stripe, così da poter sopportare la rottura di A, B, D ed E contemporaneamente e senza problemi. Attenzione però…da ciò che mi risulta nessun controller HARDWARE attualmente in commercio supporta un RAID10 da 6 dischi formato da 2 rami RAID1 da 3 dischi ciascuno (cioè A, B e C in RAID 1, concatenato in RAID0 con D, E ed F sempre in RAID1). I controller Hardware in commercio supportano tranquillamente 6 dischi (o più) ma tutti i livelli RAID1 del RAID10 sono formati da DUE dischi, quindi avremo A e B in RAID1, C e D in RAID1, E ed F in RAID1, e tutti e tre i rami RAID1 concatenati in RAID0 per formare il RAID10 finale.
L’unico modo per fare un RAID10 con rami pari e dischi dispari è via software, sempre in base alle informazioni disponibili al momento.