Articles

RAID (array ridondante di dischi indipendenti)

RAID (array ridondante di dischi indipendenti) è un modo di memorizzare gli stessi dati in posti diversi su più dischi rigidi o unità a stato solido per proteggere i dati nel caso di un guasto del disco. Ci sono diversi livelli RAID, tuttavia, e non tutti hanno l’obiettivo di fornire ridondanza.

Come funziona RAID

RAID funziona mettendo i dati su più dischi e permettendo alle operazioni di input/output (I/O) di sovrapporsi in modo equilibrato, migliorando le prestazioni. Poiché l’uso di più dischi aumenta il tempo medio tra i guasti (MTBF), immagazzinare i dati in modo ridondante aumenta anche la tolleranza agli errori.

Gli array RAID appaiono al sistema operativo (OS) come una singola unità logica. RAID impiega le tecniche di mirroring o striping del disco. Il mirroring copierà dati identici su più di un disco. Lo striping delle partizioni aiuta a distribuire i dati su più unità disco. Lo spazio di archiviazione di ogni unità è diviso in unità che vanno da un settore (512 byte) fino a diversi megabyte. Le strisce di tutti i dischi sono interfogliate e indirizzate in ordine.

Disco rigido RAID
Immagine di un disco rigido RAID a cinque piatti

Il mirroring e lo striping dei dischi possono anche essere combinati in un array RAID.

In un sistema a singolo utente dove vengono memorizzati grandi record, le strisce sono tipicamente impostate per essere piccole (forse 512 byte) in modo che un singolo record si estenda su tutti i dischi e si possa accedere rapidamente leggendo tutti i dischi allo stesso tempo.

In un sistema multiutente, una migliore performance richiede una striscia abbastanza larga da contenere il record di dimensione tipica o massima, permettendo la sovrapposizione dell’I/O del disco tra le unità.

Controller RAID

Un controller RAID è un dispositivo usato per gestire le unità disco rigido in un array di memorizzazione. Può essere usato come un livello di astrazione tra il sistema operativo e i dischi fisici, presentando gruppi di dischi come unità logiche. L’uso di un controller RAID può migliorare le prestazioni e aiutare a proteggere i dati in caso di crash.

Un controller RAID può essere basato su hardware o software. In un prodotto RAID basato sull’hardware, un controller fisico gestisce l’array. Il controller può anche essere progettato per supportare formati di unità come SATA e SCSI. Un controller RAID fisico può anche essere integrato nella scheda madre di un server.

Con il RAID basato sul software, il controller usa le risorse del sistema hardware, come il processore centrale e la memoria. Anche se esegue le stesse funzioni di un controller RAID basato sull’hardware, i controller RAID basati sul software possono non consentire un aumento delle prestazioni e possono influenzare le prestazioni di altre applicazioni sul server.

Se un’implementazione RAID basata sul software non è compatibile con il processo di avvio di un sistema, e i controller RAID basati sull’hardware sono troppo costosi, il RAID basato sul firmware o sui driver è un’altra opzione potenziale.

I chip dei controller RAID basati sul firmware si trovano sulla scheda madre, e tutte le operazioni sono eseguite dalla CPU, come il RAID basato sul software. Tuttavia, con il firmware, il sistema RAID è implementato solo all’inizio del processo di avvio. Una volta che il sistema operativo è stato caricato, il driver del controller assume la funzionalità RAID. Un controller RAID basato su firmware non è così costoso come un’opzione hardware, ma mette più a dura prova la CPU del computer. Il RAID basato su firmware è anche chiamato RAID software assistito dall’hardware, modello ibrido RAID e falso RAID.

Livelli RAID

I dispositivi RAID faranno uso di diverse versioni, chiamate livelli. Il documento originale che ha coniato il termine e sviluppato il concetto di configurazione RAID ha definito sei livelli di RAID — da 0 a 5. Questo sistema numerato permetteva agli informatici di differenziare le versioni RAID. Da allora il numero di livelli si è ampliato ed è stato suddiviso in tre categorie: livelli RAID standard, nidificati e non standard.

Livelli RAID standard

RAID 0. Questa configurazione ha lo striping, ma non la ridondanza dei dati. Offre le migliori prestazioni, ma non fornisce tolleranza d’errore.

Diagramma RAID 0

RAID 1. Conosciuto anche come mirroring del disco, questa configurazione consiste in almeno due unità che duplicano la memorizzazione dei dati. Non c’è striping. Le prestazioni in lettura sono migliorate poiché entrambi i dischi possono essere letti allo stesso tempo. Le prestazioni in scrittura sono le stesse dell’archiviazione su disco singolo.

DiagrammaRAID 1

RAID 2. Questa configurazione utilizza lo striping tra i dischi, con alcuni dischi che memorizzano informazioni di controllo e correzione degli errori (ECC). RAID 2 utilizza anche un codice di parità Hamming dedicato; una forma lineare di codice di correzione degli errori. Il RAID 2 non ha alcun vantaggio rispetto al RAID 3 e non è più usato.

Diagramma RAID 2

RAID 3. Questa tecnica usa lo striping e dedica un disco alla memorizzazione delle informazioni di parità. Le informazioni ECC incorporate sono utilizzate per rilevare gli errori. Il recupero dei dati è realizzato calcolando le informazioni esclusive registrate sulle altre unità. Poiché un’operazione di I/O si rivolge a tutte le unità allo stesso tempo, RAID 3 non può sovrapporre l’I/O. Per questo motivo, il RAID 3 è migliore per i sistemi a singolo utente con lunghe applicazioni di registrazione.

Diagramma RAID 3

RAID 4. Questo livello usa grandi strisce, il che significa che un utente può leggere i record da ogni singolo disco. L’I/O sovrapposto può quindi essere utilizzato per le operazioni di lettura. Poiché tutte le operazioni di scrittura sono richieste per aggiornare l’unità di parità, non è possibile alcuna sovrapposizione di I/O.

DiagrammaRAID 4

RAID 5. Questo livello è basato sullo striping di parità a livello di blocco. L’informazione di parità è messa in striping su ogni unità, permettendo all’array di funzionare anche se un’unità dovesse fallire. L’architettura dell’array permette alle operazioni di lettura e scrittura di estendersi su più dischi – con il risultato di prestazioni migliori di quelle di un singolo disco, ma non così elevate come quelle di un array RAID 0. RAID 5 richiede almeno tre dischi, ma spesso si raccomanda di usare almeno cinque dischi per ragioni di prestazioni.

Gli array RAID 5 sono generalmente considerati una scelta povera per l’uso su sistemi ad alta intensità di scrittura a causa dell’impatto sulle prestazioni associato alla scrittura dei dati di parità. Quando un disco si guasta, la ricostruzione di un array RAID 5 può richiedere molto tempo.

Diagramma RAID 5

RAID 6. Questa tecnica è simile al RAID 5, ma include un secondo schema di parità distribuito tra le unità dell’array. L’uso della parità aggiuntiva consente all’array di continuare a funzionare anche se due dischi falliscono contemporaneamente. Tuttavia, questa protezione extra ha un costo. Gli array RAID 6 spesso hanno prestazioni di scrittura più lente degli array RAID 5.

Diagramma RAID 6

Livelli RAID annidati

Alcuni livelli RAID sono chiamati RAID annidati perché sono basati su una combinazione di livelli RAID. Ecco alcuni esempi di livelli RAID annidati.

RAID 10 (RAID 1+0). Combinando RAID 1 e RAID 0, questo livello è spesso indicato come RAID 10, che offre prestazioni più elevate del RAID 1, ma ad un costo molto più alto. In RAID 1+0, i dati sono in mirroring e i mirror sono striped.

Diagramma RAID 10

RAID 01 (RAID 0+1). Il RAID 0+1 è simile al RAID 1+0, tranne che il metodo di organizzazione dei dati è leggermente diverso. Invece di creare un mirror e poi fare lo striping del mirror, RAID 0+1 crea un set di strisce e poi fa il mirroring del set di strisce.

RAID 03 (RAID 0+3, conosciuto anche come RAID 53 o RAID 5+3). Questo livello usa lo striping (in stile RAID 0) per i blocchi del disco virtuale del RAID 3. Questo offre prestazioni più elevate rispetto al RAID 3, ma ad un costo maggiore.

RAID 50 (RAID 5+0). Questa configurazione combina la parità distribuita RAID 5 con lo striping RAID 0 per migliorare le prestazioni del RAID 5 senza ridurre la protezione dei dati.

Livelli RAID non standard

I livelli RAID non standard variano dai livelli RAID standard e sono solitamente sviluppati da aziende o organizzazioni per uso principalmente proprietario. Ecco alcuni esempi.

RAID 7. Un livello RAID non standard basato su RAID 3 e RAID 4 che aggiunge il caching. Include un sistema operativo integrato in tempo reale come controller, caching tramite un bus ad alta velocità e altre caratteristiche di un computer autonomo.

Adaptive RAID. Questo livello permette al controller RAID di decidere come memorizzare la parità sui dischi. Sceglierà tra RAID 3 e RAID 5, a seconda di quale tipo di set RAID funzionerà meglio con il tipo di dati scritti sui dischi.

Linux MD RAID 10. Questo livello, fornito dal kernel Linux, supporta la creazione di array RAID annidati e non standard. Il software RAID di Linux può anche supportare la creazione di configurazioni standard RAID 0, RAID 1, RAID 4, RAID 5 e RAID 6.

Benefici del RAID

I benefici del RAID includono i seguenti.

  • Un miglioramento nel rapporto costo-efficacia perché i dischi meno costosi sono usati in gran numero.
  • L’uso di più dischi rigidi permette al RAID di migliorare le prestazioni di un singolo disco rigido.
  • Maggiore velocità del computer e affidabilità dopo un crash — a seconda della configurazione.
  • Letture e scritture possono essere eseguite più velocemente che con un singolo disco con RAID 0. Questo perché un file system è diviso e distribuito su unità che lavorano insieme sullo stesso file.
  • C’è una maggiore disponibilità e resilienza con RAID 5. Con il mirroring, gli array RAID possono avere due unità che contengono gli stessi dati, assicurando che una continuerà a lavorare se l’altra si guasta.

Svantaggi dell’uso del RAID

Il RAID ha comunque dei lati negativi. Alcuni di questi includono:

  • I livelli RAID annidati sono più costosi da implementare rispetto ai livelli RAID tradizionali perché richiedono un numero maggiore di dischi.
  • Il costo per gigabyte dei dispositivi di archiviazione è più alto per il RAID annidato perché molte delle unità sono usate per la ridondanza.
  • Quando un’unità si guasta, la probabilità che un’altra unità nell’array si guasti presto aumenta, il che potrebbe portare alla perdita di dati. Questo perché tutte le unità in un array RAID sono installate allo stesso tempo, quindi tutte le unità sono soggette alla stessa quantità di usura.
  • Alcuni livelli RAID (come RAID 1 e 5) possono sostenere solo un guasto di una singola unità.
  • Gli array RAID, e i dati al loro interno, sono in uno stato vulnerabile fino a quando un disco guasto viene sostituito e il nuovo disco viene popolato con i dati.
  • Perché le unità hanno una capacità molto maggiore ora rispetto a quando il RAID è stato implementato per la prima volta, ci vuole molto più tempo per ricostruire le unità guaste.
  • Se si verifica un guasto del disco, c’è la possibilità che i dischi rimanenti possano contenere settori danneggiati o dati illeggibili — il che può rendere impossibile la completa ricostruzione dell’array.

Tuttavia, i livelli RAID annidati affrontano questi problemi fornendo un maggior grado di ridondanza, diminuendo significativamente le possibilità di un guasto a livello di array dovuto a guasti simultanei dei dischi.

Storia del RAID

Il termine RAID fu coniato nel 1987 da David Patterson, Randy Katz e Garth A. Gibson. Nel loro rapporto tecnico del 1988, “A Case for Redundant Arrays of Inexpensive Disks (RAID)”, i tre sostenevano che un array di unità economiche poteva battere le prestazioni delle migliori unità disco del tempo. Usando la ridondanza, un array RAID potrebbe essere più affidabile di qualsiasi unità disco.

Mentre questo rapporto fu il primo a dare un nome al concetto, l’uso di dischi ridondanti era già stato discusso da altri. Gus German e Ted Grunau della Geac Computer Corp. si riferirono per primi a questa idea come MF-100. Norman Ken Ouchi di IBM depositò un brevetto nel 1977 per questa tecnologia, che fu poi chiamata RAID 4. Nel 1983, Digital Equipment Corp. ha spedito le unità che sarebbero diventate RAID 1, e nel 1986, un altro brevetto IBM è stato depositato per quello che sarebbe diventato RAID 5. Patterson, Katz e Gibson guardarono anche a ciò che veniva fatto da aziende come Tandem Computers, Thinking Machines e Maxstor per definire le loro tassonomie RAID.

Mentre i livelli di RAID elencati nel rapporto del 1988 davano essenzialmente dei nomi a tecnologie che erano già in uso, la creazione di una terminologia comune per il concetto aiutò a stimolare il mercato dell’archiviazione dati a sviluppare più prodotti RAID array.

Secondo Katz, il termine economico nell’acronimo è stato presto sostituito con indipendente dai venditori del settore a causa delle implicazioni dei bassi costi.

Il futuro del RAID

RAID non è del tutto morto, ma molti analisti dicono che la tecnologia è diventata obsoleta negli ultimi anni. Alternative come la codifica di cancellazione offrono una migliore protezione dei dati (anche se ad un prezzo più alto), e sono state sviluppate con l’intenzione di affrontare le debolezze del RAID. Con l’aumento della capacità delle unità, aumenta anche la possibilità di errore con un array RAID, e le capacità sono in costante aumento.

L’aumento delle unità a stato solido (SSD) è anche visto come un alleggerimento della necessità del RAID. Gli SSD non hanno parti mobili e non si guastano così spesso come gli hard disk. Gli array SSD spesso usano tecniche come il livellamento dell’usura invece di affidarsi al RAID per la protezione dei dati. L’hyperscale computing rimuove anche la necessità del RAID usando server ridondanti invece di unità ridondanti.

Ancora, il RAID rimane una parte radicata dello stoccaggio dei dati per ora e i principali fornitori di tecnologia rilasciano ancora prodotti RAID. IBM ha rilasciato IBM Distributed RAID con il suo Spectrum Virtualize V7.6, che promette di aumentare le prestazioni RAID. L’ultima versione di Intel Rapid Storage Technology supporta RAID 0, RAID 1, RAID 5 e RAID 10, e il software di gestione NetApp ONTAP usa RAID per proteggere contro fino a tre guasti simultanei delle unità. La piattaforma Dell EMC Unity supporta anche RAID 1/0, RAID 5 e RAID 6.

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *