Guida ai livelli RAID

Il RAID combina più unità di archiviazione per garantire ridondanza e migliorare le prestazioni. Questa guida analizza il funzionamento dei livelli principali, i rischi durante la fase di rebuild, la distinzione tra RAID hardware e software e le pratiche di monitoraggio indispensabili in ambiente di produzione.

Immagine generata con AI
Immagine generata con AI
Riassunto generato automaticamente tramite intelligenza artificiale:

Il RAID aggrega storage fisico in unità logiche per tolleranza ai guasti e prestazioni, ma la scelta del livello ottimale richiede un'analisi profonda dei potenziali malfunzionamenti dei dischi e dei fattori ambientali che incidono sull'affidabilità complessiva. Oltre al livello RAID, una solida progettazione dello storage include monitoraggio, alimentazione stabile, raffreddamento e strategie di backup per garantire la resilienza del sistema.

RAID: Redundant Array of Independent Disks

Il RAID è una tecnologia che combina più unità di archiviazione fisiche, hard disk o SSD, in una o più unità logiche. È un concetto fondamentale per chiunque si occupi di infrastrutture, dai sistemisti Linux ai DevOps che gestiscono storage per database e macchine virtuali.

I due obiettivi principali di un array RAID sono:

  • Tolleranza ai guasti (ridondanza): mantenere disponibili i dati quando si guasta uno o più dischi, a seconda del livello RAID scelto.
  • Prestazioni: in alcune configurazioni, aumentare la velocità di lettura e scrittura distribuendo il carico su più dischi.

Di seguito una panoramica completa delle configurazioni principali, dei relativi pro e contro e delle differenze architetturali, con alcuni approfondimenti pratici pensati per chi deve scegliere o gestire un array in produzione.

I livelli RAID principali

Prima di scegliere un RAID

Quando si parla di RAID, è facile concentrarsi subito sul numero di dischi che possono rompersi prima di perdere i dati. Ed è comprensibile: leggere che un RAID 5 può perdere l'intero array se si guasta un secondo disco può far sembrare questa configurazione una sorta di bomba a orologeria, soprattutto a chi si avvicina per la prima volta all'argomento.

Ma c'è un errore di fondo in questo ragionamento: rompere un disco non è come tagliare un foglio di carta a metà.

Un'unità di archiviazione può presentare malfunzionamenti per molte ragioni, e non tutti i problemi si manifestano come una morte improvvisa e definitiva. Nel caso di un hard disk meccanico possono verificarsi guasti al motore, ai cuscinetti o al gruppo testine, danni alla superficie magnetica dei piatti, settori illeggibili, errori della scheda elettronica, oppure un degrado progressivo del supporto.

Anche le condizioni esterne possono contribuire a un guasto: temperature elevate, alimentazione instabile, sbalzi o interruzioni di corrente, vibrazioni, urti e sollecitazioni meccaniche riducono l'affidabilità dell'unità e dell'intero sistema.

Gli SSD non hanno parti meccaniche, ma non sono immuni dai guasti. Le celle di memoria flash hanno una resistenza limitata alle scritture, e controller, firmware, memoria NAND e componenti elettronici possono presentare difetti o malfunzionamenti. Anche in questo caso, un dispositivo può mostrare segnali di degrado, errori di lettura o scrittura, timeout, blocchi improvvisi, dati SMART anomali, prima di diventare completamente inutilizzabile.

È importante anche ricordare che i guasti non sono sempre indipendenti. Dischi acquistati insieme, installati nello stesso chassis ed esposti alle stesse temperature, vibrazioni o problemi di alimentazione possono condividere gli stessi fattori di rischio. Per questo la progettazione dello storage non si riduce al solo livello RAID: contano anche monitoraggio, qualità dell'alimentazione, raffreddamento, dischi di ricambio, procedure di sostituzione e backup.

E qui arriviamo a un punto fondamentale: un disco guasto non fa necessariamente sparire istantaneamente l'array.

In un RAID 5, per esempio, la perdita del primo disco viene gestita proprio dalla ridondanza dell'array. I dati continuano a essere accessibili, anche se l'array opera in modalità degradata e può essere più lento; le informazioni mancanti vengono ricostruite dai dati presenti sugli altri dischi e dalle informazioni di parità.

Il vero problema nasce durante il rebuild, cioè nella fase in cui l'array ricostruisce sul disco sostitutivo i dati che erano contenuti nell'unità guasta. È questa la finestra di vulnerabilità che rende importante valutare RAID 6, soprattutto con dischi molto capienti, array numerosi o carichi di lavoro che non possono essere sospesi.

Dire che durante questa fase esiste il rischio di un secondo guasto, però, non significa che un secondo disco sia destinato a rompersi. Significa che, dopo il primo guasto, l'array ha esaurito la propria ridondanza residua: un ulteriore guasto o un errore di lettura non recuperabile può avere conseguenze molto più gravi.

Per questo non ha senso stabilire a priori che RAID 6 sia sempre migliore di RAID 5. RAID 6 offre maggiore tolleranza ai guasti, ma richiede l'equivalente della capacità di due dischi per la parità e comporta un costo maggiore nelle scritture. La scelta dipende dal contesto: numero e capacità dei dischi, tipo di carico, prestazioni richieste, valore dei dati, tempi di ripristino accettabili e livello di rischio che si è disposti ad accettare.

C'è infine una distinzione da tenere sempre presente: RAID non significa backup. La ridondanza protegge principalmente dal guasto fisico di una o più unità, ma non protegge da cancellazioni accidentali, corruzione dei dati, ransomware, errori amministrativi o altri eventi che possono propagarsi all'intero array.

Con queste premesse, vediamo come i diversi livelli RAID distribuiscono e proteggono i dati.

Raid 0 (striping)

Nel RAID 0 i dati vengono spezzati in blocchi e scritti in parallelo su tutti i dischi dell'array, con un minimo di 2 dischi richiesti.

  • Efficienza spazio: 100% della capacità complessiva dei dischi.
  • Tolleranza ai guasti: nulla. Se anche un solo disco si guasta, l'intero volume diventa inutilizzabile e si perdono tutti i dati non disponibili altrove.
  • Pro: prestazioni di lettura e scrittura molto elevate, in particolare nei carichi sequenziali.
  • Contro: rischio altissimo di perdita dati, perché ogni disco aggiunto aumenta il numero di possibili punti di guasto.
  • Uso tipico: file temporanei, cache, dati rigenerabili, elaborazioni non critiche ed editing video con materiale già protetto da backup.

Raid 1 (mirroring)

Nel RAID 1 i dati vengono duplicati identicamente su due o più dischi, con un minimo di 2 dischi richiesti.

  • Efficienza spazio: con due dischi è del 50%; in generale, se tutte le copie fanno parte dello stesso mirror, lo spazio utile corrisponde alla capacità di un solo disco.
  • Tolleranza ai guasti: in un mirror composto da N dischi può resistere alla rottura di N-1 dischi, purché rimanga almeno una copia integra.
  • Pro: ottima protezione dal guasto di un disco e buone prestazioni in lettura, perché il sistema può leggere da più copie.
  • Contro: costoso in termini di spazio utile; ogni scrittura deve essere completata su tutte le copie del mirror.
  • Uso tipico: sistemi operativi, piccoli server critici, volumi applicativi e carichi in cui semplicità e tempi di rebuild rapidi sono prioritari.

Raid 5 (striping con parità distribuita)

Nel RAID 5 i dati e le informazioni di parità, calcolate tramite l'operazione logica XOR, vengono distribuiti su tutti i dischi dell'array, con un minimo di 3 dischi richiesti.

  • Efficienza spazio: (N - 1) × capacità del disco più piccolo. Con 4 dischi da 1 TB, lo spazio utile è 3 TB, mentre l'equivalente di 1 TB è destinato alla parità.
  • Tolleranza ai guasti: resiste al guasto di un solo disco. Dopo il guasto, i dati restano accessibili in modalità degradata e possono essere ricostruiti utilizzando parità e dischi superstiti.
  • Pro: buon compromesso tra costo, spazio disponibile e prestazioni di lettura.
  • Contro: le scritture, soprattutto quelle piccole e casuali, risentono del calcolo e dell'aggiornamento della parità, fenomeno noto come write penalty. Durante il rebuild le prestazioni possono peggiorare sensibilmente e l'array non dispone più di ridondanza: se si guasta un secondo disco prima del completamento della ricostruzione, l'array non è recuperabile con le sole informazioni RAID.
  • Uso tipico: file server, NAS aziendali, archivi con prevalenza di letture e carichi di lavoro che accettano il compromesso fra capacità, costo e ridondanza.

Raid 6 (striping con doppia parità distribuita)

Il RAID 6 funziona in modo simile al RAID 5, ma utilizza due informazioni di parità indipendenti, distribuite sui dischi dell'array. Richiede un minimo di 4 dischi.

  • Efficienza spazio: (N - 2) × capacità del disco più piccolo.
  • Tolleranza ai guasti: resiste al guasto di due dischi, anche se avvengono in momenti diversi prima che il primo rebuild sia completato.
  • Pro: offre maggiore protezione negli array con molti dischi o unità di grande capacità, dove i tempi di rebuild sono più lunghi e la finestra di vulnerabilità di RAID 5 può essere rilevante.
  • Contro: le scritture sono generalmente più onerose rispetto al RAID 5, perché devono essere gestite due informazioni di parità.
  • Uso tipico: storage ad alta capacità, NAS e file server con dischi SATA o SAS molto capienti, soprattutto quando la disponibilità dei dati è più importante delle prestazioni di scrittura assolute.

Raid 10 (o raid 1+0, stripe di mirror)

Il RAID 10 è una configurazione nidificata: crea più coppie in RAID 1, cioè mirror, e le unisce successivamente in RAID 0, cioè in striping. Richiede un minimo di 4 dischi e un numero pari di unità.

  • Efficienza spazio: 50%.
  • Tolleranza ai guasti: può resistere alla rottura di più dischi, purché non si guastino entrambi i dischi della stessa coppia mirror.
  • Pro: prestazioni molto elevate sia in lettura sia in scrittura e rebuild spesso più rapido, perché la ricostruzione consiste principalmente nel copiare i dati dalla copia mirror integra, senza ricalcolare la parità.
  • Contro: è costoso in termini di spazio disponibile, poiché metà della capacità totale è destinata alla replica.
  • Uso tipico: database transazionali, macchine virtuali ad alte prestazioni, sistemi soggetti a molte operazioni di scrittura casuale.

Confronto rapido tra i livelli

Livello Dischi minimi Spazio utile Tolleranza guasti Caso d'uso tipico
RAID 0 2 100% Nessuna Cache, dati non critici
RAID 1 2 50% con due dischi N-1 dischi Sistemi operativi, piccoli server critici
RAID 5 3 (N-1)/N 1 disco File server, NAS
RAID 6 4 (N-2)/N 2 dischi Storage ad alta capacità
RAID 10 4 (pari) 50% Più dischi, se non nella stessa coppia mirror Database, VM ad alte prestazioni

Livelli nested e legacy

Oltre ai livelli principali esistono configurazioni combinate o storiche, meno comuni ma ancora rilevanti in alcuni contesti enterprise.

  • RAID 50 e RAID 60: combinano uno stripe RAID 0 con più gruppi rispettivamente RAID 5 o RAID 6. RAID 50 richiede normalmente almeno due gruppi RAID 5, quindi almeno 6 dischi; RAID 60 richiede almeno due gruppi RAID 6, quindi almeno 8 dischi. Sono usati in grandi sistemi di storage per ottenere prestazioni, capacità e tolleranza ai guasti superiori a quelle di un singolo gruppo RAID 5 o RAID 6.
  • JBOD (Just a Bunch Of Disks): non è un vero livello RAID. Il termine può indicare semplicemente dischi esposti singolarmente al sistema operativo oppure un volume lineare che concatena più dischi. Non offre ridondanza né un vantaggio prestazionale intrinseco. In un volume concatenato, il guasto di un disco può rendere inaccessibile una parte dei dati o compromettere l'intero volume, a seconda dell'implementazione e del filesystem.
  • RAID 2, 3 e 4: livelli storici ormai rari. RAID 3 e RAID 4 usavano dischi dedicati alla parità, creando potenziali colli di bottiglia; RAID 2 utilizzava codici di correzione degli errori e richiedeva una configurazione complessa, oggi superata dalle capacità di correzione degli errori integrate nelle unità moderne.

Hardware, software e fake RAID

Raid hardware dedicato

Il RAID hardware utilizza un controller fisico, spesso installato su PCIe, dotato di processore, firmware e memoria cache propri. Nei modelli professionali, la cache può essere protetta da batteria, supercondensatore o memoria flash per ridurre il rischio di perdita dei dati in caso di blackout. Il sistema operativo vede normalmente uno o più volumi logici anziché i singoli dischi dell'array.

  • Pro: gestione centralizzata dell'array, cache dedicata, funzioni avanzate di monitoraggio e recovery; il controller può gestire in proprio alcune operazioni di parità e scrittura.
  • Contro: costo più elevato e possibile dipendenza dal controller. In caso di guasto, il recupero è generalmente più semplice con un modello compatibile, soprattutto della stessa famiglia; compatibilità e metadati devono essere verificati prima di qualsiasi sostituzione.

Raid software

Il RAID software è gestito dal sistema operativo, ad esempio tramite mdadm su Linux o Storage Spaces su Windows.

  • Pro: flessibile, spesso gratuito e meno vincolato a uno specifico controller. In molti casi i dischi possono essere spostati su un altro sistema compatibile e l'array può essere riassemblato.
  • Contro: utilizza risorse del sistema host e richiede una corretta progettazione di alimentazione, cache e protezione dalle interruzioni di corrente. Nei RAID con parità, una perdita di alimentazione durante una scrittura può causare incoerenze note come write hole, se la soluzione adottata non dispone di adeguati meccanismi di protezione o journaling.

Fake raid (hostraid)

Il cosiddetto fake RAID, spesso chiamato anche firmware RAID o HostRAID, è una funzionalità integrata in molte schede madri consumer. Può apparire come una soluzione hardware, ma gran parte del lavoro viene eseguito dal driver e dalla CPU del sistema operativo.

È spesso sconsigliato in ambito professionale perché combina alcuni limiti del RAID software, come la dipendenza dalle risorse dell'host, con una maggiore dipendenza da firmware, driver e compatibilità della scheda madre. Prima di affidargli dati importanti è opportuno verificare attentamente procedure di recupero, documentazione e compatibilità con il sistema operativo utilizzato.

Monitoraggio e manutenzione dell'array

Scegliere il livello RAID giusto è solo metà del lavoro: senza monitoraggio, un array può restare silenziosamente degradato per settimane prima che qualcuno se ne accorga, azzerando di fatto il margine di sicurezza che il RAID dovrebbe garantire.

Alcune pratiche operative di base, indipendenti dal livello scelto, aiutano a ridurre questo rischio:

  • Monitoraggio S.M.A.R.T.: quasi tutti i dischi meccanici e gli SSD moderni espongono attributi S.M.A.R.T. che segnalano un degrado progressivo, come settori riallocati o errori di lettura, ben prima di un guasto completo. Integrare un controllo periodico di questi attributi permette di sostituire un disco prima che diventi un problema per l'intero array.
  • Scrub periodico: molte implementazioni RAID software e i controller hardware più recenti supportano una verifica periodica della coerenza dei dati e della parità, spesso chiamata scrub o patrol read. Eseguirla con regolarità aiuta a individuare errori latenti su blocchi raramente letti, prima che si sommino a un guasto reale durante un rebuild.
  • Dischi di scorta (hot spare): avere uno o più dischi di ricambio già inseriti nel sistema e pronti a entrare automaticamente in servizio riduce drasticamente il tempo tra il guasto e l'inizio del rebuild, restringendo la finestra di vulnerabilità descritta in precedenza.
  • Notifiche automatiche: un array degradato che nessuno nota non offre alcuna protezione pratica. Configurare l'invio di notifiche, via email o verso un sistema di monitoraggio centralizzato, è essenziale per intervenire tempestivamente.
mdadm --detail /dev/md0

Un'alternativa moderna

Accanto al RAID tradizionale si sono diffusi filesystem che integrano ridondanza e controllo dell'integrità dei dati a un livello più profondo, come ZFS con i profili RAID-Z e Btrfs con i suoi profili RAID nativi.

Questi filesystem calcolano checksum sui dati e, quando è presente una copia ridondante valida, possono rilevare e talvolta correggere la corruzione silenziosa, il cosiddetto bit rot. Il RAID tradizionale, da solo, non dispone normalmente di informazioni sufficienti per stabilire quale copia di un blocco silenziosamente corrotto sia quella corretta.

Questa caratteristica è particolarmente utile nei NAS e negli archivi a lungo termine. Anche qui, però, valgono le regole fondamentali: la ridondanza deve essere configurata correttamente, lo stato dei dischi va monitorato e i backup restano indispensabili.

La regola d'oro della sicurezza informatica

Se un file viene cancellato accidentalmente, se un malware cripta i dati tramite un attacco ransomware, se un bug corrompe il filesystem oppure se un amministratore esegue un'operazione errata, il RAID può replicare o distribuire quell'operazione su tutto l'array. Il RAID opera infatti a livello di blocchi e non comprende il significato logico dei dati che sta scrivendo.

Il backup, al contrario, protegge dalla perdita logica dei dati perché conserva copie separate dal sistema primario, idealmente con versioning, controllo periodico del ripristino e almeno una copia isolata o fuori sede.

Una buona strategia segue il principio del backup 3-2-1:

  • almeno tre copie dei dati;
  • su almeno due supporti differenti;
  • con almeno una copia conservata fuori sede o comunque isolata dal sistema principale.

Articolo scritto con il supporto di LLM per la formattazione e la struttura del codice.

Commenti