Topologie degli Array RAID: Strategie di Ridondanza Hardware nei Data Center

Fondamenti di RAID: Definizione e Origine

L'acronimo RAID (Redundant Array of Independent Disks, originariamente "Inexpensive Disks") fu coniato nel 1987 da David Patterson, Garth Gibson e Randy Katz nel documento tecnico "A Case for Redundant Arrays of Inexpensive Disks" pubblicato dall'Università della California, Berkeley. Il concetto fondamentale è la combinazione di più dischi fisici in una singola unità logica, con l'obiettivo di migliorare le prestazioni, la capacità disponibile, la tolleranza ai guasti o una combinazione di questi parametri a seconda della topologia adottata.

RAID può essere implementato a livello hardware — tramite controller RAID dedicati con processore e cache propria — o a livello software tramite il sistema operativo. I controller hardware RAID gestiscono in modo autonomo la gestione della parità, il rebuild in caso di guasto e la cache di scrittura, sollevando il processore dell'host da queste operazioni. Le implementazioni software RAID (come md in Linux) non richiedono hardware specializzato ma consumano risorse del processore host e sono soggette a potenziali inconsistenze in caso di interruzioni di alimentazione durante le scritture.

Matrice delle Topologie RAID

Livello RAID Tecnica Dischi Min. Capacità Netta Tolleranza Guasti Prestazioni Lettura Prestazioni Scrittura
RAID 0 Striping 2 100% (N dischi) Nessuna Elevata Elevata
RAID 1 Mirroring 2 50% (N/2 dischi) 1 disco per coppia Elevata Pari a 1 disco
RAID 5 Striping + Parità distribuita 3 (N-1)/N dischi 1 disco Elevata Moderata
RAID 6 Striping + Doppia parità 4 (N-2)/N dischi 2 dischi simultanei Elevata Ridotta
RAID 10 Striping + Mirroring 4 50% (N/2 dischi) 1 disco per coppia Molto elevata Elevata

RAID 0: Striping Puro

Il livello RAID 0 distribuisce i dati in blocchi (stripe) su tutti i dischi dell'array in modo sequenziale. Non è presente alcuna ridondanza: la perdita di un qualsiasi disco comporta la perdita dell'intero array. Il vantaggio esclusivo di RAID 0 è il miglioramento delle prestazioni di I/O: operazioni di lettura e scrittura sequenziali su dati di grandi dimensioni possono essere parallelizzate su tutti i dischi, ottenendo throughput aggregato pari alla somma delle velocità individuali dei dischi. RAID 0 trova impiego in applicazioni dove le prestazioni I/O sono critiche e la perdita dei dati è accettabile (es. cache temporanee, ambienti di elaborazione batch su dati replicati altrove).

RAID 1: Mirroring

Il livello RAID 1 duplica i dati su due (o più) dischi in modo sincrono: ogni scrittura viene applicata identicamente a tutti i dischi del gruppo speculare. La capacità netta dell'array è quella di un singolo disco, indipendentemente dal numero di dischi. Il vantaggio primario è la resilienza: il guasto di qualsiasi disco (eccetto l'ultimo superstite) non causa perdita di dati. Le operazioni di lettura possono essere distribuite tra i dischi speculari, migliorando il throughput di lettura in ambienti con elevato rapporto lettura/scrittura.

RAID 5: Parità Distribuita

Il livello RAID 5 rappresenta il compromesso più diffuso tra capacità, prestazioni e ridondanza. I dati sono distribuiti in stripe su tutti i dischi e la parità (calcolata tramite operazione XOR sui blocchi dati corrispondenti) è distribuita in rotazione su tutti i dischi dell'array, evitando il collo di bottiglia di un disco di parità dedicato presente in RAID 3 e 4.

In caso di guasto di un singolo disco, i dati mancanti vengono ricostruiti per tutti i blocchi del disco guasto applicando l'XOR di tutti i blocchi dello stesso stripe presenti nei dischi superstiti. Durante questo processo di rebuild, le prestazioni dell'array sono significativamente degradate. Un secondo guasto durante il rebuild (evento tutt'altro che improbabile a causa dello stress I/O intenso sul rebuild stesso) causa la perdita irrecuperabile dell'intero array. Questa vulnerabilità ha reso RAID 5 progressivamente meno indicato per array composti da dischi ad alta capacità, dove il tempo di rebuild può estendersi a decine di ore.

RAID 6: Doppia Parità

Il livello RAID 6 estende RAID 5 aggiungendo un secondo blocco di parità indipendente per ogni stripe, calcolato con un algoritmo distinto (tipicamente i campi di Galois per la seconda parità). Questo consente la ricostruzione completa dell'array anche in caso di guasto simultaneo di due dischi distinti. Il costo è una riduzione ulteriore della capacità netta (due dischi dedicati alla parità complessiva) e un impatto maggiore sulle prestazioni di scrittura, poiché ogni operazione di scrittura richiede il ricalcolo di due blocchi di parità. RAID 6 è la scelta standard nei moderni storage array enterprise composti da dischi da 8 TB o superiori.

RAID 10 (1+0): Mirroring con Striping

RAID 10 combina le caratteristiche di RAID 1 e RAID 0: i dischi sono organizzati in coppie speculari (RAID 1) e le coppie sono poi aggregate in un array con striping (RAID 0). Ogni scritturaè applicata sia al disco primario sia al suo speculare, ma lo striping tra le coppie consente parallelismo di I/O. RAID 10 offre le migliori prestazioni di scrittura tra i livelli RAID ridondanti e un tempo di rebuild eccezionalmente breve (solo i blocchi del disco guasto devono essere copiati dall'speculare), al costo del 50% della capacità grezza totale.

Hot Spare e Gestione del Rebuild

Nei sistemi storage enterprise, gli array RAID sono tipicamente configurati con uno o più dischi hot spare: dischi fisicamente presenti nell'array ma non attivi, che vengono automaticamente integrati nell'array dal controller RAID al momento del rilevamento di un guasto, avviando immediatamente il processo di rebuild. La disponibilità di hot spare riduce significativamente il tempo in cui l'array opera in uno stato di ridondanza ridotta (noto come "degraded mode"), riducendo di conseguenza la finestra di vulnerabilità a guasti multipli.

Nota informativa: Questo sito ha scopo puramente accademico e informativo nel campo dell'ingegneria informatica. Non costituisce consulenza professionale, IT o commerciale. Prima di prendere decisioni infrastrutturali, consultare uno specialista qualificato. Non è un presidio medico.