

L’affidabilità dei dispositivi di archiviazione, oggi come in passato, è un requisito fondamentale in quei settori dove l’irreperibilità delle informazioni o, ancora peggio, la loro completa perdita significano interruzione dei servizi e consistenti perdite di denaro. Grazie al rapido sviluppo tecnologico i dischi rigidi sono divenuti sempre più affidabili e veloci, ma rimane comunque l’insidia di guasti meccanici, elettronici e di quelli derivanti dall’usura o dal danneggiamento del supporto magnetico.
Se da un lato l’affidabilità può essere migliorata con particolare cura nella progettazione e nelle fasi di realizzazione del prodotto, l’utilizzo oculato di più unità permette di ottenere un’affidabilità sui dati e una tolleranza ai guasti di gran lunga superiore a quella offerta dal miglior disco sul mercato; la tecnologia Raid fonda le sue radici proprio su questa idea. Il termine Raid, acronimo di Redundant Arrays of Inexpensive Disks (array ridondanti di dischi poco costosi), è stato utilizzato per la prima volta dai ricercatori dell’università californiana di Berkeley nel 1987.
Nel corso degli anni sono state sviluppate molteplici configurazioni, ognuna identificata da un numero che segue la parola Raid, delle quali solo alcune sono risultate vincenti per il mercato. Prima di presentare le tre configurazioni più diffuse in ambito workstation e server riteniamo necessario familiarizzare con alcuni concetti che definiscono l’organizzazione gerarchica di un sistema Raid: Disco Fisico, Array Fisico, Array Logico e Disco Logico. Il disco fisico è l’unità singola vera e propria che funge da mattone elementare nella realizzazione della configurazione Raid.
L’insieme organizzato di uno o più dischi fisici costituisce l’array fisico; le configurazioni Raid più semplici utilizzano un solo array fisico di dischi, mentre quelle più complesse possono appoggiarsi a due o più array fisici distinti. L’array logico è il primo livello di astrazione dall’hardware ed è il frazionamento o la combinazione di uno o più array fisici; tipicamente un array logico corrisponde a un array fisico, tuttavia è possibile, a esempio, che un array logico sia costituito da più array fisici.
I dischi logici, infine, sono ottenuti a partire dagli array logici e corrispondono ai volumi disco rilevati dal sistema operativo. A questo punto è facile comprendere che un disco logico può nascondere complesse meccaniche di gestione che rimangono invisibili sia al sistema operativo sia all’utente in quanto demandate ad appositi controller.
Raid 0 (Striping)
Il Raid 0, che sta conoscendo particolare successo in ambito desktop, consiste nel configurare più dischi in parallelo allo scopo di incrementare le prestazioni attraverso la scrittura e la lettura contemporanea su tutte le unità. Se utilizzata singolarmente questa configurazione costituisce un utilizzo improprio della tecnologia Raid in quanto intacca il principio dell’affidabilità: non fornendo alcun tipo di controllo di parità sui dati, il guasto di un’unità che compone l’array comporta la perdita di tutte le informazioni. Poiché al crescere del numero di dischi aumenta statisticamente la probabilità di un eventuale guasto, ne deriva che, a causa dell’assenza del controllo di parità, una configurazione Raid 0, pur incrementando le prestazioni, comporta una diminuzione dell’affidabilità proporzionale al numero di dischi che la costituiscono.
Una caratteristica delle configurazioni striping è la configurazione delle strisce (stripes), ovvero la scelta della dimensione dei blocchi nei quali vengono spezzate le informazioni. La scelta di questo parametro è figlia del numero di dischi impiegati nell’array e del tipo di software impiegato, ovvero se si lavora su file di piccole, grosse o medie dimensioni. Raid 1 (Mirroring e Disk Duplexing)
Il Raid 1 costituisce l’implementazione più semplice della protezione dei dati e consiste di due dischi o array configurati in modo che uno sia la copia speculare e in tempo reale dell’altro. Di base non si riscontra alcun incremento di prestazioni in quanto un ramo della configurazione opera in modalità di backup; tuttavia esistono controller evoluti in grado di ottimizzare le fasi di lettura attraverso l’utilizzo di entrambi i rami.
A seconda dell’architettura impiegata per realizzare l’array si parla di modalità Mirroring o Disk Duplexing: la prima indica la configurazione di due array in modalità Raid 1 gestiti da un singolo controller, mentre la seconda si riferisce a una configurazione costituita da due controller, a ciascuno dei quali è affidata la gestione di un ramo della configurazione.
Raid 5
La modalità Raid 5 appartiene alla famiglia delle configurazioni di tipo striping con controllo di parità: le informazioni sono suddivise sulle diverse unità dell’array in modo simile ad una soluzione Raid 0, ma su tutti i dischi dell’array vengono salvati dei blocchi per il controllo della parità. Questo espediente permette, in caso di guasto di una delle unità, la ricostruzione al volo dei dati mediante le informazioni dei dischi rimanenti e del codice di parità. Si intuisce che in caso di guasto la qualità del controller, in particolare il processore e la quantità di cache, influisce sulle prestazioni.
Il controller Raid provvede inoltre alla ricostruzione delle informazioni sul disco sostituito da quello danneggiato o sul disco hot spare, ovvero un’unità vuota sulla quale vengono rigenerate le informazioni del disco guasto in attesa che questo venga sostituito. A differenza delle modalità 0 e 1 diffuse anche in ambito desktop grazie all’integrazione di controller specifici su molte schede madri di fascia medio-alta, le configurazioni Raid 5 sono ancora appannaggio dei sistemi workstation e server. Per implementare una configurazione Raid 5 efficiente è infatti necessario un controller di tipo evoluto, ovvero dotato di un chip dedicato all’elaborazione del codice di parità e una memoria buffer che ha lo scopo di migliorare le prestazioni.
Se da un lato l’affidabilità può essere migliorata con particolare cura nella progettazione e nelle fasi di realizzazione del prodotto, l’utilizzo oculato di più unità permette di ottenere un’affidabilità sui dati e una tolleranza ai guasti di gran lunga superiore a quella offerta dal miglior disco sul mercato; la tecnologia Raid fonda le sue radici proprio su questa idea. Il termine Raid, acronimo di Redundant Arrays of Inexpensive Disks (array ridondanti di dischi poco costosi), è stato utilizzato per la prima volta dai ricercatori dell’università californiana di Berkeley nel 1987.
Nel corso degli anni sono state sviluppate molteplici configurazioni, ognuna identificata da un numero che segue la parola Raid, delle quali solo alcune sono risultate vincenti per il mercato. Prima di presentare le tre configurazioni più diffuse in ambito workstation e server riteniamo necessario familiarizzare con alcuni concetti che definiscono l’organizzazione gerarchica di un sistema Raid: Disco Fisico, Array Fisico, Array Logico e Disco Logico. Il disco fisico è l’unità singola vera e propria che funge da mattone elementare nella realizzazione della configurazione Raid.
L’insieme organizzato di uno o più dischi fisici costituisce l’array fisico; le configurazioni Raid più semplici utilizzano un solo array fisico di dischi, mentre quelle più complesse possono appoggiarsi a due o più array fisici distinti. L’array logico è il primo livello di astrazione dall’hardware ed è il frazionamento o la combinazione di uno o più array fisici; tipicamente un array logico corrisponde a un array fisico, tuttavia è possibile, a esempio, che un array logico sia costituito da più array fisici.
I dischi logici, infine, sono ottenuti a partire dagli array logici e corrispondono ai volumi disco rilevati dal sistema operativo. A questo punto è facile comprendere che un disco logico può nascondere complesse meccaniche di gestione che rimangono invisibili sia al sistema operativo sia all’utente in quanto demandate ad appositi controller.
Raid 0 (Striping)
Il Raid 0, che sta conoscendo particolare successo in ambito desktop, consiste nel configurare più dischi in parallelo allo scopo di incrementare le prestazioni attraverso la scrittura e la lettura contemporanea su tutte le unità. Se utilizzata singolarmente questa configurazione costituisce un utilizzo improprio della tecnologia Raid in quanto intacca il principio dell’affidabilità: non fornendo alcun tipo di controllo di parità sui dati, il guasto di un’unità che compone l’array comporta la perdita di tutte le informazioni. Poiché al crescere del numero di dischi aumenta statisticamente la probabilità di un eventuale guasto, ne deriva che, a causa dell’assenza del controllo di parità, una configurazione Raid 0, pur incrementando le prestazioni, comporta una diminuzione dell’affidabilità proporzionale al numero di dischi che la costituiscono.
Una caratteristica delle configurazioni striping è la configurazione delle strisce (stripes), ovvero la scelta della dimensione dei blocchi nei quali vengono spezzate le informazioni. La scelta di questo parametro è figlia del numero di dischi impiegati nell’array e del tipo di software impiegato, ovvero se si lavora su file di piccole, grosse o medie dimensioni. Raid 1 (Mirroring e Disk Duplexing)
Il Raid 1 costituisce l’implementazione più semplice della protezione dei dati e consiste di due dischi o array configurati in modo che uno sia la copia speculare e in tempo reale dell’altro. Di base non si riscontra alcun incremento di prestazioni in quanto un ramo della configurazione opera in modalità di backup; tuttavia esistono controller evoluti in grado di ottimizzare le fasi di lettura attraverso l’utilizzo di entrambi i rami.
A seconda dell’architettura impiegata per realizzare l’array si parla di modalità Mirroring o Disk Duplexing: la prima indica la configurazione di due array in modalità Raid 1 gestiti da un singolo controller, mentre la seconda si riferisce a una configurazione costituita da due controller, a ciascuno dei quali è affidata la gestione di un ramo della configurazione.
Raid 5
La modalità Raid 5 appartiene alla famiglia delle configurazioni di tipo striping con controllo di parità: le informazioni sono suddivise sulle diverse unità dell’array in modo simile ad una soluzione Raid 0, ma su tutti i dischi dell’array vengono salvati dei blocchi per il controllo della parità. Questo espediente permette, in caso di guasto di una delle unità, la ricostruzione al volo dei dati mediante le informazioni dei dischi rimanenti e del codice di parità. Si intuisce che in caso di guasto la qualità del controller, in particolare il processore e la quantità di cache, influisce sulle prestazioni.
Il controller Raid provvede inoltre alla ricostruzione delle informazioni sul disco sostituito da quello danneggiato o sul disco hot spare, ovvero un’unità vuota sulla quale vengono rigenerate le informazioni del disco guasto in attesa che questo venga sostituito. A differenza delle modalità 0 e 1 diffuse anche in ambito desktop grazie all’integrazione di controller specifici su molte schede madri di fascia medio-alta, le configurazioni Raid 5 sono ancora appannaggio dei sistemi workstation e server. Per implementare una configurazione Raid 5 efficiente è infatti necessario un controller di tipo evoluto, ovvero dotato di un chip dedicato all’elaborazione del codice di parità e una memoria buffer che ha lo scopo di migliorare le prestazioni.