RAID (Redundant Array of Independent Disks), originariamente noto come Redundant Array of Inexpensive Disks, fu proposto per la prima volta dal Professor D. A. Patterson dell'Università della California, Berkeley, nel documento "A Case of Redundant Array of Inexpensive Disks" nel 1988. All'epoca, i dischi di grande capacità erano costosi, quindi l'idea di base del RAID era di combinare organicamente più dischi di piccola capacità e relativamente economici per ottenere capacità, prestazioni e affidabilità equivalenti a dischi costosi di grande capacità a un costo inferiore. Poiché il costo e il prezzo dei dischi continuavano a diminuire, il termine "economico" divenne privo di significato e il RAID Advisory Board (RAB) decise di sostituire "economico" con "indipendente".
Questa idea progettuale del RAID fu rapidamente adottata dall'industria. La tecnologia RAID, come tecnologia di archiviazione ad alte prestazioni e altamente affidabile, è stata ampiamente applicata. Il RAID utilizza principalmente tecniche di striping dei dati, mirroring e parità dei dati per ottenere alte prestazioni, affidabilità, tolleranza ai guasti e scalabilità. In base alle strategie e alle architetture di utilizzo o combinazione di queste tre tecnologie, il RAID può essere suddiviso in diversi livelli per soddisfare le esigenze di diverse applicazioni dati. I livelli RAID originali RAID1-RAID5 sono stati definiti nel documento di D. A. Patterson et al., e RAID0 e RAID6 sono stati ampliati dal 1988. Negli ultimi anni, i fornitori di storage hanno continuamente introdotto livelli RAID come RAID7, RAID10/01, RAID50, RAID53 e RAID100, ma non esiste uno standard unificato. Attualmente, gli standard riconosciuti dal settore sono RAID0-RAID5, e i quattro livelli ad eccezione di RAID2 sono stati definiti come standard industriali. I livelli RAID più comunemente utilizzati nel campo delle applicazioni pratiche sono RAID0, RAID1, RAID3, RAID5, RAID6 e RAID10.
Dal punto di vista dell'implementazione, il RAID è principalmente suddiviso in tre tipi: RAID software, RAID hardware e RAID ibrido. Per il RAID software, tutte le funzioni sono completate dal sistema operativo e dalla CPU, e non vi è alcun chip di controllo/elaborazione RAID indipendente e chip di elaborazione I/O, quindi l'efficienza è la più bassa. Il RAID hardware è dotato di un chip di controllo/elaborazione RAID speciale e di un chip di elaborazione I/O, nonché di un buffer di array, e non occupa risorse della CPU, ma il costo è molto elevato. Il RAID ibrido dispone di un chip di controllo/elaborazione RAID ma manca di un chip di elaborazione I/O, e necessita della CPU e dei programmi driver per il completamento, e le sue prestazioni e il suo costo si collocano tra il RAID software e il RAID hardware.
Ogni livello RAID rappresenta un metodo e una tecnologia di implementazione, e non vi è alcuna distinzione tra livelli alti e bassi. Nelle applicazioni pratiche, il livello RAID appropriato e il metodo di implementazione specifico dovrebbero essere selezionati in base alle caratteristiche delle applicazioni dati dell'utente, e la disponibilità, le prestazioni e il costo dovrebbero essere considerati in modo completo.
RAID, ovvero Redundant Array of Independent Disks, è solitamente abbreviato come array di dischi. In breve, il RAID è un sottosistema di dischi composto da più unità disco indipendenti ad alte prestazioni, che fornisce prestazioni di archiviazione e tecnologia di ridondanza dati superiori a quelle di un singolo disco. Il RAID è una tecnologia di gestione multi-disco che fornisce archiviazione conveniente, alta affidabilità dei dati e alte prestazioni all'ambiente host. La definizione di RAID da parte di SNIA è: un array di dischi in cui parte dello spazio di archiviazione fisico viene utilizzato per registrare le informazioni ridondanti dei dati utente memorizzati nello spazio rimanente. Quando un disco o un percorso di accesso fallisce, le informazioni ridondanti possono essere utilizzate per ricostruire i dati utente. Sebbene lo striping dei dischi non sia conforme alla definizione di RAID, viene solitamente chiamato anche RAID (cioè, RAID0).
L'intenzione originale del RAID era quella di fornire funzioni di archiviazione di fascia alta e sicurezza dei dati ridondanti per i grandi server. Nell'intero sistema, il RAID è considerato uno spazio di archiviazione composto da due o più dischi, e le prestazioni I/O del sistema di archiviazione vengono migliorate leggendo e scrivendo dati su più dischi contemporaneamente. La maggior parte dei livelli RAID dispone di misure complete di verifica e correzione dei dati, e persino di metodi di mirroring, che migliorano notevolmente l'affidabilità del sistema, ed è da qui che deriva "Ridondante".
Qui dobbiamo menzionare JBOD (Just a Bunch of Disks). Inizialmente, JBOD veniva utilizzato per rappresentare una raccolta di dischi senza software di controllo per fornire un controllo coordinato, che è il fattore principale che distingue il RAID da JBOD. Attualmente, JBOD si riferisce spesso a un enclosure per dischi, indipendentemente dal fatto che fornisca o meno funzionalità RAID.
I due obiettivi chiave del RAID sono migliorare l'affidabilità dei dati e le prestazioni I/O. Nell'array di dischi, i dati sono distribuiti su più dischi, ma per il sistema informatico, appare come un singolo disco. La ridondanza viene ottenuta scrivendo gli stessi dati su più dischi (tipicamente mirroring) o scrivendo i dati di parità calcolati nell'array, in modo che la perdita di dati non si verifichi quando un singolo disco fallisce. Alcuni livelli RAID consentono a più dischi di fallire contemporaneamente, come RAID6, dove due dischi possono essere danneggiati contemporaneamente. Sotto tale meccanismo di ridondanza, il disco guasto può essere sostituito con un nuovo disco, e il RAID ricostruirà automaticamente i dati persi in base ai dati e ai dati di parità nei dischi rimanenti per garantire la coerenza e l'integrità dei dati. I dati sono distribuiti e memorizzati su più dischi diversi nel RAID, e la lettura e scrittura simultanea dei dati è molto migliore di quella di un singolo disco, quindi si ottiene una maggiore larghezza di banda I/O aggregata. Naturalmente, l'array di dischi ridurrà lo spazio di archiviazione totale disponibile di tutti i dischi, sacrificando spazio in cambio di maggiore affidabilità e prestazioni. Ad esempio, l'utilizzo dello spazio di archiviazione di RAID1 è solo del 50%, e RAID5 perderà la capacità di archiviazione di un disco, e l'utilizzo dello spazio è (n-1)/n.
L'array di dischi può garantire il funzionamento continuo del sistema senza interruzioni quando alcuni dischi (singoli o multipli, a seconda dell'implementazione) sono danneggiati. Durante il processo di ricostruzione dei dati del disco guasto sul nuovo disco, il sistema può continuare a funzionare normalmente, ma le prestazioni saranno ridotte in una certa misura. Alcuni array di dischi devono essere spenti quando si aggiungono o si eliminano dischi, mentre altri supportano lo scambio a caldo, consentendo la sostituzione delle unità disco senza spegnere. Questo array di dischi di fascia alta è utilizzato principalmente in sistemi applicativi con elevati requisiti di affidabilità, e il sistema non può essere spento o il tempo di spegnimento deve essere il più breve possibile. In generale, il RAID non può sostituire il backup dei dati. È impotente per la perdita di dati causata da guasti non di disco, come virus, distruzione umana, cancellazione accidentale, ecc. In questo caso, la perdita di dati è relativa al sistema operativo, al file system, al gestore di volumi o al sistema applicativo. Per il sistema RAID stesso, i dati sono intatti e non si è verificata alcuna perdita. Pertanto, il backup dei dati, il disaster recovery e altre misure di protezione dei dati sono molto necessarie, che completano il RAID e proteggono la sicurezza dei dati a diversi livelli per prevenire la perdita di dati.
Ci sono tre concetti e tecnologie chiave nel RAID: mirroring, striping dei dati e parità dei dati. Il mirroring copia i dati su più dischi. Da un lato, può migliorare l'affidabilità e, dall'altro, può leggere dati da più copie contemporaneamente per migliorare le prestazioni di lettura. Ovviamente, le prestazioni di scrittura del mirroring sono leggermente inferiori e richiedono più tempo per garantire che i dati vengano scritti correttamente su più dischi. Lo striping dei dati memorizza le fette di dati su diversi dischi, e più fette di dati insieme formano una copia completa dei dati, che è diversa dalle copie multiple del mirroring ed è solitamente utilizzata per considerazioni sulle prestazioni. Lo striping dei dati ha una granularità di concorrenza più elevata. Durante l'accesso ai dati, è possibile leggere e scrivere dati su dischi diversi contemporaneamente, ottenendo così un miglioramento molto significativo delle prestazioni I/O. La parità dei dati utilizza dati ridondanti per il rilevamento e la riparazione degli errori dei dati. I dati ridondanti sono solitamente calcolati da algoritmi come il codice di Hamming e l'operazione XOR. L'utilizzo della funzione di parità può migliorare notevolmente l'affidabilità, la robustezza e la tolleranza ai guasti dell'array di dischi. Tuttavia, la parità dei dati richiede la lettura dei dati da più posizioni ed esecuzione di calcoli e confronti, il che influenzerà le prestazioni del sistema. Diversi livelli di RAID adottano una o più delle tre tecnologie sopra menzionate per ottenere diversa affidabilità dei dati, disponibilità e prestazioni I/O. Per quanto riguarda quale tipo di RAID (anche nuovi livelli o tipi) progettare o quale modalità di RAID adottare, è necessario fare una scelta ragionevole sulla premessa di una profonda comprensione dei requisiti di sistema e valutare in modo completo l'affidabilità, le prestazioni e il costo per fare una scelta di compromesso.
-
Grande Capacità: Questo è un vantaggio evidente del RAID. Espande la capacità del disco e il sistema RAID composto da più dischi ha uno spazio di archiviazione enorme. Ora la capacità di un singolo disco può raggiungere più di 1 TB, quindi la capacità di archiviazione del RAID può raggiungere il livello PB e la maggior parte dei requisiti di archiviazione può essere soddisfatta. In generale, la capacità disponibile del RAID è inferiore alla capacità totale di tutti i dischi membri. Diversi livelli di algoritmi RAID richiedono un certo overhead di ridondanza, e l'overhead di capacità specifico è correlato all'algoritmo adottato. Se l'algoritmo RAID e la capacità sono noti, la capacità disponibile del RAID può essere calcolata. Solitamente, l'utilizzo della capacità del RAID è compreso tra il 50% e il 90%.
-
Alte Prestazioni: Le alte prestazioni del RAID beneficiano della tecnologia di striping dei dati. Le prestazioni I/O di un singolo disco sono limitate da tecnologie informatiche come l'interfaccia e la larghezza di banda, e sono spesso il collo di bottiglia delle prestazioni del sistema. Attraverso lo striping dei dati, il RAID distribuisce l'I/O dei dati a ciascun disco membro, ottenendo così prestazioni I/O aggregate diverse volte superiori a quelle di un singolo disco.
-
Affidabilità: Disponibilità e affidabilità sono altre caratteristiche importanti del RAID. Teoricamente, l'affidabilità di un sistema RAID composto da più dischi dovrebbe essere peggiore di quella di un singolo disco. C'è un'assunzione implicita qui: il guasto di un singolo disco renderà l'intero RAID non disponibile. Il RAID utilizza tecnologie di ridondanza dei dati come il mirroring e la parità dei dati per rompere questa assunzione. Il mirroring è la tecnologia di ridondanza più primitiva, che copia completamente i dati su un certo gruppo di unità disco su un altro gruppo di unità disco per garantire che ci sia sempre una copia dei dati disponibile. Rispetto all'overhead di ridondanza del 50% del mirroring, la parità dei dati è molto più piccola e utilizza le informazioni ridondanti di parità per verificare e correggere i dati. La tecnologia di ridondanza del RAID migliora notevolmente la disponibilità e l'affidabilità dei dati, e garantisce che quando diversi dischi falliscono, i dati non andranno persi e il funzionamento continuo del sistema non sarà influenzato.
-
Gestibilità: In realtà, il RAID è una tecnologia di virtualizzazione che virtualizza più unità disco fisiche in un'unità logica di grande capacità. Per il sistema host esterno, il RAID è un'unità disco singola, veloce e affidabile di grande capacità. In questo modo, gli utenti possono organizzare e archiviare i dati del sistema applicativo su questa unità virtuale. Dal punto di vista dell'applicazione utente, può rendere il sistema di archiviazione semplice e facile da usare e gestire. Poiché il RAID ha completato internamente una grande quantità di lavoro di gestione dell'archiviazione, l'amministratore deve solo gestire una singola unità virtuale, il che può risparmiare molto lavoro di gestione. Il RAID può aggiungere o eliminare dinamicamente unità disco ed eseguire automaticamente la verifica dei dati e la ricostruzione dei dati, il che può semplificare notevolmente il lavoro di gestione.