Raid: storia e informazioni

Introduzione ai sistemi RAID

I sistemi di storage per la conservazione dei dati rappresentano probabilmente la parte più critica dell’infrastruttura informatica. Essi, come del resto molti altri componenti hardware, nel corso degli anni hanno subito diversi sviluppi tecnologici a vantaggio soprattutto delle performance e dell’affidabilità. I sistemi di memorizzazione RAID sono stati introdotti oltre 15 anni fa e da allora hanno fornito un’eccellente soluzione di storage di massa per le infrastrutture IT di tipo aziendale. Vediamo insieme la storia dei sistemi RAID e come essi funzionano.

La storia dei RAID

Iniziando dal nome, RAID era originariamente l’acronimo di Redundant Array of Inexpensive Disks poichè una delle finalità del progetto era utilizzare più dischi di piccolo taglio (meno costosi) per “ottenere” un’unità di capacità maggiore, oggi è comune riferirsi a RAID come Redundant Array of Independent Disks.

Poichè in generale un sistema RAID combina più dischi in un’unica unità logica (ossia il sistema operativo “vede” un solo dispositivo), si è scelto di indicare le diverse combinazioni alle quali corrispondono diverse caratteristiche del RAID identificandole con dei “livelli”.

Il concetto di RAID fu concepito all’Università di Berkley in California per merito dei ricercatori David A. Patterson, Garth Gibson e Randy H. Katz.

Alcuni degli obiettivi alla base della progettazione del sistema RAID erano: fornire un miglioramento delle performance, incrementare l’affidabilità della memorizzazione e le possibilità di recupero dei dati, la scalabilità. In particolare, con riferimento alla possibilità di recuperare i dati, il concetto di ridondanza impiegato nel sistema RAID fornisce un metodo per il ripristino delle informazioni se uno dei drive del sistema dovesse guastarsi. I controller RAID attuali hanno infatti la capacità di continuare a leggere e scrivere i dati anche se un drive è “off-line”.

I livelli RAID

Abbiamo detto che le diverse “combinazioni” di dischi hanno dato origine a più livelli RAID. Segue una breve descrizione di quelli più diffusi:

RAID 0 – Anche detto striping, esso suddivide le informazioni in modo uguale sui dischi che compongono il sistema RAID. Questo livello non prevede protezione dei dati in quanto mira unicamente a migliorare le performance del sistema di storage.

RAID 1 – Anche detto mirroring, i dati vengono scritti sui dischi del sistema RAID non suddividendoli come avviene nel livello 0 ma come esatta copia su ciascun disco. É evidente che questo livello, a differenza del precedente, introduce una protezione per i dati poichè ciascun disco è esatta copia degli altri.

RAID 0 + 1 – É l’unione dei livelli 0 e 1, si hanno i benefici dello striping e del mirroring insieme. I dati vengono quindi suddivisi tra più dischi e replicati. I vantaggi sono di prestazione e di sicurezza.

RAID 5 – É una soluzione molto diffusa. Questa configurazione suddivide i dati in blocchi che vengono poi salvati sui diversi dischi. Ogni volta che viene scritto un blocco di dati, viene generato un blocco di parità. I blocchi di parità sono salvati in modo distribuito sui diversi dischi che compongono il RAID. Un blocco è l’insieme di diversi settori di disco, mentre il concetto di parità verrà affrontato più avanti.

Ai livelli descritti si aggiungono le modalità RAID 2, RAID 3, RAID 4 e RAID 6 oltre ad altri livelli proprietari sviluppati da alcuni produttori.

Uno sguardo al sistema

Il cuore di un sistema RAID è il controller ossia un’apposità scheda con hardware dedicato. Questa scheda è generalmente un controller per hard disk SCSI (anche se i controller di tipo IDE RAID stanno divenendo abbastanza comuni). I principali compiti del controller si possono così sintetizzare:

  • gestisce i singoli dischi della configurazione RAID
  • fornisce la configurazione logica
  • svolge le operazioni di tolleranza o di ridondanza

La gestione dei singoli dischi della configurazione RAID

Il controller comunica direttamente con gli hard disk drive che compongono il sistema RAID. Alcuni controller implementano utility addizionali per lavorare specificatamente sui dischi con funzioni quali la scansione della superficie o la formattazione. I controller SCSI spesso forniscono opzioni addizionali la gestione dei drive.

La configurazione logica

Il sistema operativo vede il sistema RAID come un’unica unità logica di grandi dimensioni anche se le unità fisiche, ossia il numero di dischi, sono più di una. Il controller si occupa di realizzare questa configurazione logica e di suddividere i dati su tutti i drive fisici che compongono il RAID. In questo modo si fornisce un bilanciamento delle operazioni di input/output su tutti i dispositivi invece di caricare un solo disco di tutto il lavoro di lettura e scrittura dei dati.

 

Le operazioni di tolleranza o ridondanza

Utilizzeremo il livello RAID 5 per parlare di tolleranza ai guasti dei sistemi RAID in quanto è una delle configurazioni più di frequente impiegata in ambiente business. La ridondanza è il risultato dell’utilizzo di un operatore matematico (booleano) chiamato OR Esclusivo o XOR e comunemente ci si riferisce a questo con il concetto di parità. Ai fini di questo articolo introduttivo alla tecnologia RAID è sufficiente sapere che la parità è un valore e che quando un blocco di dati viene scritto un blocco di parità viene generato.

É evidente che essendo la parità un insieme di dati, a sua volta deve essere salvata nel sistema, RAID 5 distribuisce i blocchi di parità su tutti i dischi che compongono il RAID.

Quando si verifica un guasto è possibile ricostruire i dati mancanti utilizzando i valori di parità insieme ai dati ancora disponibili. L’operazione matematica di XOR può essere eseguita fintanto che nella stripe (si definisce stripe una serie di blocchi consecutivi) manca un solo blocco dati, se a mancare sono due o più blocchi la ricostruzione non è possibile.

Tradotto operativamente, significa che il livello RAID 5 è in grado di tollerare la rottura di un solo drive mentre non fornisce appropriata ridondanza se due o più drive si guastano. La gestione della parità è compito del controller.

Ne consegue che il quantitativo di operazioni logiche che questo dispositivo svolge ogni secondo è impressionante. Oggi i controller RAID sono componenti hardware particolarmente complessi che includono processori specificatamente progettatti e banchi di memoria SDRAM per fornire supporto alle performance e alla ridondanza.

Comuni configurazioni RAID

L’immagine sotto mostra delle strutture RAID, la gestione del dispositivo dipende ovviamente dalla configurazione del RAID. Le lettere mettono in evidenza come i blocchi di dati sono suddivisi tra i drive. Si noti nel RAID 5 la distribuzione dei blocchi di parità (Distributed Parity Blocks) sui vari dischi.

 

Recupero dati da sistemi RAID

I sistemi RAID vengono tipicamente implementati per salvaguardare la disponibilità dei dati da guasti al sistema di storage. Tuttavia considerare il guasto hardware di uno o più dischi come unica problematica di malfunzionamento non è corretto poichè si rischia di non considerare le problematiche di tipo logico che possono affliggere il controller.

L’intervento su di un sistema RAID è uno degli aspetti tecnicamente più sfidanti nelle attività di recupero dati e Kroll Ontrack è leader a livello internazionale nelle tecniche e nelle procedure di recupero su ogni livello di questa tecnologia.

In Kroll Ontrack i drive non vengono connessi ad una scheda controller RAID nella speranza che il sistema torni a funzionare, quando gli ingegneri ricostruiscono l’array di dischi significa che in precedenza essi hanno svolto un pesante lavoro per capire come i dati sono disposti su tutti i drive, qual è l’ordine dei drive e la disposizione dei blocchi di dati e dei blocchi di parità. Il RAID stesso viene ricostruito con tool software proprietari e in caso di drive danneggiati (fisicamente o logicamente) questi possono essere sostituiti da drive virtuali e ottenere recuperi completi.

Il recupero dei dati da un sistema RAID è la combinazione di due importanti momenti. Per prima cosa si ricostruisce l’array, questo investimento in tempo è necessario per determinare la configurazione originale e ottenere un recupero dati di qualità. Il secondo passo è lavorare sul file system logico. Oggi, i file system di tipo enterprise sono molto complessi. Se l’array RAID è guasto all’interno del file system si troveranno migliaia di errori e i file risulteranno essere corrotti. Gli ingegneri Kroll Ontrack si accertano che l’array sia ricostruito correttamente prima di copiare qualsiasi dato. Questo passaggio assicura un eccellente qualità di recupero.

Se il problema che affligge il sistema RAID non riguarda il guasto fisico dei dischi dell’array ma problemi logici al controller, potrebbe essere possibile (ogni caso necessità di valutazione) il recupero dai dati senza intervento in camera bianca ma con la tecnologia brevettata Ontrack Remote Data Recovery.

Quanto illustrato in questo articolo è solo una breve introduzione alla tecnologia RAID, esso è stato pensato non per fornire dettagli tecnici quanto per offrire al lettore una spiegazione il più possbile semplice sul funzionamento di un sistema complesso.

Tecnici e responsabili IT che utilizzano sistemi RAID nelle proprie infrastrutture, sebbene meno esposti alla perdita di dati, non dovrebberò però sottovalutare questa evenienza.

I sistemi RAID infatti, come spiegato, non sono immuni a scenari di disastro. Qualora dovesse verificarsi un problema di disponibilità dei dati su un sistema RAID, Kroll Ontrack offre le migliori strategie di intervento e le più alte possibilità per un recupero dati RAID di successo.