Più che archiviare i dati, le soluzioni di storage devono fornirne l’accesso in modo efficiente, tempestivo e, a seconda delle circostanze, offrire un qualche tipo di protezione contro i guasti. Questo è ciò che possono fornire i sistemi di archiviazione RAID.
Nelle prossime righe capirai il concetto e scoprirai le tipologie di RAID più comuni.
RAID è l’acronimo di Redundant Array of Independent Disks o, in traduzione libera, “Redundant Array of Independent Disks”. Si tratta di una soluzione informatica che combina diversi dischi rigidi (HD) o SSD per formare un’unica unità logica di archiviazione dati.
Cos’è l’unità logica? Nel contesto del RAID, è un modo per far sì che il sistema operativo “veda” un set di HD o SSD come una singola unità di archiviazione dati, semplice come sembra.
Ciò significa che è possibile combinare due o più unità, ma per il sistema operativo esiste solo un volume di archiviazione.
Far funzionare insieme più unità di archiviazione offre numerosi vantaggi. Alcuni possibili esempi:
– se un HD o un SSD vengono danneggiati, i dati presenti su di esso non andranno persi, poiché potranno essere replicati su un altro disco ( ridondanza );
– è possibile aumentare la capacità di archiviazione in qualsiasi momento aggiungendo più unità;
– l’accesso alle informazioni può diventare più veloce, poiché i dati vengono distribuiti su tutti i dischi;
– a seconda delle circostanze, c’è una maggiore tolleranza ai guasti, in quanto il sistema non viene paralizzato se un’unità di accumulo smette di funzionare;
– Un sistema RAID può essere più economico di un dispositivo di archiviazione più sofisticato pur offrendo funzionalità simili.
Livelli RAID (tipi)
Per realizzare un sistema RAID è necessario combinare almeno due HD o SSD. Ma non è tutto: è necessario definire anche il livello RAID del sistema .
Ogni livello ha caratteristiche diverse per soddisfare le più svariate esigenze. Pertanto, ogni livello può essere considerato un tipo di RAID.
RAID 0 (zero)
Conosciuto anche come striping , il livello RAID 0 è il livello in cui i dati vengono divisi in piccoli segmenti e distribuiti tra le unità di archiviazione.
Questo è un livello che non offre protezione contro i guasti, poiché non presenta ridondanza. Ciò significa che un guasto in uno qualsiasi dei dischi o SSD può causare la perdita di informazioni per l’intero sistema, soprattutto perché “pezzi” dello stesso file possono essere archiviati su unità diverse.
Il focus di RAID 0 finisce per essere la prestazione, poiché il sistema praticamente somma la velocità di trasmissione dei dati di ciascuna unità. Pertanto, più dischi o SSD sono presenti nel sistema, maggiore sarà la velocità di trasferimento, almeno in teoria.
Non è difficile capire il motivo: poiché i dati sono divisi, ogni parte di un file viene scritta su unità diverse contemporaneamente. Se questo processo avvenisse solo su un singolo HD o SSD, la registrazione sarebbe un po’ più lenta, poiché dovrebbe essere eseguita in sequenza.
Grazie a queste caratteristiche, RAID 0 è ampiamente utilizzato in applicazioni che gestiscono grandi volumi di dati e non possono essere lente, come l’elaborazione di immagini e l’editing video.
RAID1
RAID 1 è probabilmente il livello più conosciuto. In esso, un’unità “duplica” l’altra, cioè fa una “copia” della prima, motivo per cui il livello è noto anche come mirroring .
Pertanto, se l’unità principale si guasta, i dati di sistema possono essere ripristinati immediatamente, perché ne sono presenti copie sull’altra.
Da notare che, a causa di questa caratteristica, i sistemi RAID 1 devono funzionare in coppia, in modo che un’unità abbia sempre un “clone”. In pratica ciò significa che un sistema RAID composto da due HDD da 500 GB ciascuno avrà proprio questa capacità invece di 1 TB.
Il livello RAID 1 è chiaramente focalizzato sulla protezione dei dati, ovvero non ne velocizza l’accesso. In effetti, questo livello può causare anche una leggera perdita di prestazioni poiché il processo di scrittura dei dati deve essere eseguito due volte, una su ciascuna unità.
È importante notare, tuttavia, che l’utilizzo di RAID 1 non elimina le soluzioni di backup. Poiché la duplicazione dei dati avviene praticamente in tempo reale, se sul primo disco vengono scritte informazioni inappropriate (ad esempio da un virus) o se un file importante viene cancellato per errore, lo stesso accadrà al secondo disco.
Sulla base di ciò risulta chiaro che RAID 1 è solitamente il più adatto per proteggere il sistema da guasti fisici nelle unità di memorizzazione.
RAID 0+1 e RAID 10
Come avrai immaginato, il livello RAID 0+1 è un sistema ibrido , ovvero combina RAID 0 con RAID 1. Per raggiungere questo obiettivo, il sistema deve avere almeno quattro unità di archiviazione, due per ogni livello. Abbiamo quindi una soluzione RAID che considera sia gli aspetti prestazionali che quelli di ridondanza.
Esiste una variante chiamata RAID 10 (o RAID 1+0 ) che funziona in modo simile. La differenza sostanziale è che, in RAID 0+1, il sistema si trasforma in RAID 0 in caso di guasto; in RAID 1+0, il sistema assume il livello RAID 1.
RAID5
RAID 5 è un altro livello ben noto. In esso viene considerato anche l’aspetto della ridondanza, ma attraverso una configurazione di parità .
In questo metodo, i dati vengono divisi in piccoli blocchi. Ognuno riceve un bit aggiuntivo – il bit di parità – secondo la seguente regola: se il numero di bit ‘1’ nel blocco è pari, il bit di parità è ‘0’; se il numero di bit ‘1’ è dispari, il bit di parità è ‘1’.
Le informazioni sulla parità vengono distribuite tra tutte le unità del sistema. Di norma, lo spazio assegnato per la parità equivale alla dimensione di una delle unità. Pertanto, un array (set) composto da tre HD da 500 GB avrà 1 TB per l’archiviazione e 500 GB per la parità.
Da lì, se il sistema rileva, ad esempio, che il bit di parità di un blocco è ‘1’, ma c’è un numero pari di bit ‘1’, si renderà conto che c’è un errore.
Se c’è solo un pezzo difettoso e il sistema riesce a identificarlo, può essere sostituito immediatamente. Il ripristino dei dati può essere effettuato anche dopo la sostituzione dell’unità.
Ad esempio, immagina un blocco di dati con bit “110X” e parità “1”. La “X” indica un bit perso, ma è “0” o “1”? Poiché la parità è ‘1’, ciò significa che il blocco è composto da un numero dispari di bit ‘1’. Pertanto, se X fosse ‘0’, anche la parità dovrebbe essere ‘0’, poiché ci sarebbe un numero pari di bit ‘1’. Ciò significa che il bit X può essere solo ‘1’.
Durante la sostituzione, è possibile mantenere il sistema in funzione, principalmente utilizzando apparecchiature che supportano l’hot-swap , ovvero scambiando componenti senza dover spegnere il computer. Ciò è possibile perché i dati vengono distribuiti tra tutte le unità RAID. Se uno fallisce, il meccanismo di parità permette di recuperare i dati dalle informazioni sulle altre unità.
RAID 50 (5+0)
Il nome chiarisce che RAID 50 è una combinazione dei livelli 5 e 0, da qui il fatto che è noto anche come RAID 5+0 . L’idea è quella di combinare gli aspetti di tolleranza agli errori e di ridondanza forniti da RAID 5 con le prestazioni di RAID 0 durante le operazioni di lettura e scrittura dei dati.
Per formarsi, un sistema RAID 50 necessita di almeno due set RAID 5 che funzionino in RAID 0. La configurazione di tale soluzione deve includere almeno sei unità di storage, oltre a richiedere un controller più avanzato. Per questo motivo, i sistemi RAID 50 tendono ad essere più costosi rispetto ai livelli più semplici.
RAID6
RAID 5 è un’opzione molto interessante per le applicazioni che necessitano di coniugare ridondanza con costi (relativamente) bassi. Ma qui c’è un’importante limitazione: la soluzione può proteggere il sistema se solo un’unità di storage si guasta.
Ecco, RAID 6 appare con un’opzione per superare questa restrizione. Si tratta di una specifica simile al RAID 5, ma con una differenza: funziona con due bit di parità.
Una configurazione a doppia parità può quindi fornire ridondanza fino a due unità nel sistema. Ma se da un lato c’è più protezione, dall’altro si può verificare una certa perdita di prestazioni, poiché ci sono più dati da registrare, oltre a rendere l’operazione più complessa.
RAID 60 (6+0)
RAID 60 (o RAID 6+0 ) è più una combinazione di livelli. In questo caso almeno due set in RAID 6 devono funzionare al livello RAID 0.
Proprio come RAID 50, un sistema RAID 60 mira ad aumentare la tolleranza agli errori e la ridondanza. Ma poiché qui c’è una doppia parità, il sistema continuerà a funzionare anche se si guastano fino a due unità di archiviazione.
Un sistema RAID 60 può avere lo svantaggio del costo, dopotutto devono far parte del sistema almeno otto unità di memorizzazione. Nel set è necessario utilizzare anche un controller avanzato.
Inoltre, le prestazioni potrebbero essere compromesse rispetto ad altri livelli. Questo perché, come già detto, l’approccio della doppia parità porta ad un aumento delle operazioni di scrittura dei dati.
RAID 2, 3 e 4: livelli quasi sconosciuti
I livelli RAID mostrati fino a questo punto sono i più utilizzati o popolari. Ma ce ne sono alcuni poco conosciuti o praticamente obsoleti: i livelli RAID 2, RAID 3 e RAID 4. Conosciamoli velocemente.
RAID2
Il RAID è un tipo di soluzione di archiviazione emersa alla fine degli anni 80. A quel tempo e nel decennio successivo, gli HD non avevano lo stesso standard di affidabilità di oggi. In un certo senso, RAID 2 è stato creato in risposta a questa limitazione.
Questo livello è simile a RAID 0, ma dispone di un meccanismo di rilevamento degli errori ECC ( Error Correcting Code ). Oggi il livello RAID 2 non viene quasi più utilizzato. Questo perché tutti gli HD moderni dispongono di ECC o altri meccanismi di prevenzione dei guasti.
RAID3
Il livello RAID 3 è simile al RAID 5, dopotutto si basa anch’esso sulla parità. La differenza principale è che RAID 3 riserva un’unità di archiviazione solo per archiviare le informazioni sulla parità. Per questo motivo è necessario avere tre unità in meno per assemblare il sistema.
Questo livello può anche essere complesso da implementare perché le operazioni di scrittura e lettura dei dati considerano tutte le unità invece di trattarle singolarmente.
RAID4
Anche RAID 4 si basa su una tecnica di parità e funziona in modo simile a RAID 3. La differenza sta nel dividere i dati in blocchi più grandi e nell’offrire un accesso individuale a ciascuna unità di memoria del sistema.
Questo livello può presentare qualche compromesso in termini di prestazioni, poiché ogni singola operazione di scrittura richiede l’aggiornamento dell’unità di parità. Per questo motivo il suo utilizzo è più adatto ai sistemi che danno priorità alla lettura dei dati, cioè che eseguono molte più query che operazioni di scrittura.
Non confondere RAID con JBOD o JOBF
Quando si parla di RAID, potresti anche sentire parlare di JBOD , acronimo di Just a Bunch Of Disks (qualcosa come “Just a Set of Disks”). Questo non è un altro livello di RAID, ma un metodo che consente di utilizzare insieme due o più unità di archiviazione dati.
In effetti, un sistema JBOD è simile al RAID, ma non si concentra sulle prestazioni o sulla ridondanza, considerando solo l’aumento della capacità di archiviazione.
Qui i dati vengono semplicemente scritti e quando un’unità è piena, l’operazione continua su un’altra. Pertanto, se ad esempio un HD è danneggiato, i dati sugli altri drive non sono interessati dal problema.
Esiste anche una variante chiamata JBOF ( Just a Bunch Of Flash ), che offre maggiori prestazioni rispetto a JBOD perché si basa sulla memoria Flash (come gli SSD).
Naturalmente anche un sistema JBOF non è un tipo RAID.
Implementazione di un sistema RAID
In passato, la configurazione dei sistemi RAID non era il compito più semplice. Oggi è possibile implementarle anche sui personal computer, con relativa facilità: soluzioni di questo tipo trovano ampio supporto su sistemi Windows, Linux e macOS.
Il modo più semplice per farlo è utilizzare una scheda madre dotata di controller RAID. Questo tipo di componente identifica le unità di archiviazione collegate e le fa funzionare sostanzialmente come un sistema RAID.
Di norma, la configurazione RAID viene eseguita dalla configurazione del BIOS, sebbene alcuni software di controllo possano essere forniti per funzionare nel sistema operativo.
Anche le schede controller RAID sono un’opzione. I vecchi modelli funzionavano con interfacce basate su tecnologie come PATA e SCSI. Quelli attuali si basano su standard come SATA, PCI Express e persino Thunderbolt.
A tale scopo, oltre alle schede controller, le soluzioni RAID possono basarsi su contenitori specifici. Questo tipo di attrezzatura è dotata di cassetti per contenitori e risorse complementari, come un sistema di alimentazione elettrica e interfacce di comunicazione.
Un sistema RAID può essere implementato anche tramite software, senza la necessità di dispositivi di controllo. In questo caso la gestione viene effettuata dal sistema operativo stesso. Nonostante ciò, è importante avere una buona configurazione hardware in modo che il computer non venga sovraccaricato.
I sistemi RAID non sono un’invenzione recente. Il concetto è emerso nel 1987 per mano di David Patterson , Garth Gibson e Randy Katz , all’epoca ricercatori dell’Università di Berkeley, negli Stati Uniti. Ciò può portare alla seguente domanda: una tecnologia che esiste da così tanto tempo è ancora utile oggi? La risposta è un sonoro “sì”. Oggi una soluzione RAID può essere molto più vantaggiosa rispetto ai decenni precedenti. Innanzitutto perché i costi sono diminuiti. In passato, ad esempio, era possibile realizzare il RAID solo con unità SCSI molto costose.
Teniamo anche presente che attualmente i controller RAID sono un po’ più economici e compatibili con diverse interfacce, oltre a consentire un’implementazione relativamente semplice.