RAID, acronimo di Redundant Array of Independent Disks (insieme ridondante di dischi indipendenti), è una tecnologia utilizzata per memorizzare dati su più dischi rigidi in modo da offrire tolleranza ai guasti e/o migliori prestazioni. Il RAID è comunemente utilizzato sia in ambienti aziendali che da utenti privati che vogliono proteggere i propri dati da guasti dei dischi. Esistono diversi livelli di RAID, ognuno con una propria combinazione unica di tolleranza ai guasti, prestazioni e capacità di archiviazione. Alcuni livelli RAID offrono ridondanza copiando i dati su più dischi, mentre altri utilizzano i dati di parità per ricostruire i dati persi in caso di guasto di un disco.
In questo articolo, esamineremo più da vicino i vari livelli RAID e il loro funzionamento. Discuteremo anche i vantaggi e gli svantaggi dell’uso del RAID e alcune buone pratiche per implementare e gestire gli array RAID. Che tu sia un professionista IT esperto o stia appena iniziando a occuparti di archiviazione dati, questo articolo ti offrirà una panoramica completa del RAID e di come funziona.
Indice dei contenuti
TogglePerché usare RAID?
Ci sono situazioni in cui la velocità e le prestazioni efficaci sono di massima importanza, come nel caso delle operazioni aziendali. In questi casi, si usano solitamente dischi rigidi (Hard Disk Drive o HDD). Tuttavia, a causa delle limitazioni fisiche e della natura meccanica dei componenti ad alta velocità presenti nei dischi rigidi, questi ultimi hanno un tasso di guasto elevato rispetto alle unità a stato solido (Solid State Drive o SSD). Problemi come questi sono il motivo per cui viene adottato il RAID, che sta per Redundant Array of Inexpensive Disks (insieme ridondante di dischi economici). L’obiettivo del RAID è eliminare i problemi associati all’uso di HDD e SSD.
Secondo Steadfast, c’è una probabilità del 2,5% che un disco rigido meccanico fallisca durante ogni anno di funzionamento. Vari rapporti hanno confermato questo valore, e curiosamente, nessun modello di disco rigido meccanico ha mostrato una variazione significativa da questo 2,5%. In termini semplici, un’organizzazione che tiene ai propri dati deve adottare tecnologie che li proteggano dal rischio di guasto dei dischi.
Che cos’è RAID?
RAID sta per Redundant Array of Independent Disks. Il RAID è un metodo per memorizzare gli stessi dati in diverse posizioni su più dischi rigidi o SSD per proteggerli in caso di guasto di un disco. Il RAID è una tecnologia che migliora le prestazioni di un’organizzazione e garantisce l’affidabilità dell’archiviazione dei dati. Esistono vari livelli RAID, ciascuno con obiettivi differenti.
Un sistema RAID comprende due o più dischi che operano in parallelo. Questi dischi possono essere HDD o SSD. Ogni livello RAID è ottimizzato per una particolare situazione e non è standardizzato da alcun gruppo industriale o ente regolatore, motivo per cui le aziende sviluppano a volte le proprie numerazioni e implementazioni.
Il software che monitora la funzionalità RAID può risiedere su un controller hardware RAID dedicato, ossia una scheda di controllo, oppure può essere un semplice driver che controlla i dischi. Diversi sistemi operativi popolari, come Windows e macOS, offrono funzionalità RAID software. I sistemi RAID sono utilizzati in numerose interfacce come SATA, SCSI, Fibre Channel o IDE, in contrasto con alcuni sistemi che utilizzano dischi SATA internamente, ma SCSI per il sistema host.
Quando i dischi non utilizzano un livello RAID specifico, sono considerati JBOD (Just a Bunch of Disks), ossia funzionano come dischi singoli e spesso vengono usati per file di swap.
Come funziona il RAID?
Il RAID incorpora più dischi fisici in un’unica entità logica utilizzando hardware o software specializzato. Gli enti RAID hardware sono disponibili in diverse versioni, alcuni integrati nelle schede madri, altri sotto forma di server NAS o SAN di livello aziendale. Il RAID è solitamente implementato sui server, ma può essere utilizzato anche sulle workstation per applicazioni che richiedono grandi capacità di archiviazione e velocità di trasferimento dati elevate.
Il RAID funziona assegnando i dati a più dischi e consentendo il sovrapporsi delle operazioni di input/output in modo standardizzato. Il risultato è un miglioramento delle prestazioni. Poiché più dischi prolungano il tempo medio tra i guasti, la ridondanza dei dati aumenta anche la tolleranza ai guasti. Gli array RAID appaiono al sistema operativo come un’unica unità logica, e utilizzano tecnologie come il mirroring dei dischi e lo striping.
Il mirroring replica i dati identici su più dischi, mentre lo striping suddivide i dati. In un sistema a singolo utente, le strisce sono di solito piccole in modo che i record si estendano su tutti i dischi e possano essere letti contemporaneamente. Nei sistemi multiutente, vengono utilizzate strisce più grandi per ottenere prestazioni migliori.
Livelli RAID
I dispositivi con un insieme ridondante di dischi economici adottano diversi livelli RAID, suddivisi in tre categorie principali:
- Livelli RAID standard
- Livelli RAID nidificati
- Livelli RAID non standard
Livelli RAID standard
- RAID 0: Combina più dischi in un singolo volume, migliorando la velocità poiché i dati vengono letti e scritti su più dischi contemporaneamente. Tuttavia, non offre ridondanza, e la perdita di un disco comporta la perdita totale dei dati.
- RAID 1: Utilizza il mirroring per duplicare i dati su più dischi. Se un disco si guasta, i dati rimangono disponibili. Questo livello offre una maggiore tolleranza ai guasti e migliori prestazioni di lettura, ma con una latenza di scrittura leggermente superiore.
- RAID 2: Usa la correzione degli errori tramite codice Hamming e striscia i dati a livello di bit. Non è usato comunemente a causa della sua complessità.
- RAID 3: Stripe i dati a livello di byte e utilizza un disco dedicato per la parità. Non può gestire efficacemente più richieste simultanee e viene utilizzato principalmente per applicazioni che richiedono elevati tassi di trasferimento.
- RAID 4: Simile a RAID 3, ma stripe i dati a livello di blocchi e utilizza un disco di parità dedicato. Offre buone prestazioni di lettura casuale, ma prestazioni di scrittura casuale lente.
- RAID 5: Distribuisce i dati e la parità su più dischi. Richiede almeno tre dischi e può tollerare il guasto di uno. Offre buone prestazioni di lettura e richiede un controller hardware dedicato.
- RAID 6: Simile a RAID 5, ma può tollerare il guasto di due dischi. È ideale per applicazioni mission-critical.
Livelli RAID nidificati
- RAID 10 (RAID 1+0): Combina RAID 1 e RAID 0, offrendo sia ridondanza che alte prestazioni. I dati vengono mirrorati e gli specchi vengono striped. Questo livello fornisce tolleranza ai guasti e velocità di accesso ai dati, ma richiede almeno quattro dischi.
- RAID 03: Combina lo striping di RAID 0 con i blocchi virtuali di RAID 3, offrendo migliori prestazioni rispetto a RAID 3 per carichi di lavoro intensivi in lettura sequenziale.
- RAID 50 (RAID 5+0): Combina i vantaggi di RAID 5 e RAID 0. I dati vengono distribuiti tramite striping su più gruppi RAID 5, migliorando sia le prestazioni di scrittura che la tolleranza ai guasti. Il RAID 50 può tollerare il guasto di un disco in ciascun gruppo RAID 5, rendendolo una scelta eccellente per sistemi con numerosi dischi. Richiede almeno sei dischi per l’implementazione.
- RAID 60 (RAID 6+0): Unisce le caratteristiche di RAID 6 e RAID 0. Analogamente a RAID 50, i dati vengono distribuiti su più gruppi RAID 6 con striping, offrendo una tolleranza ai guasti ancora più elevata. RAID 60 può resistere al guasto di due dischi per ogni gruppo RAID 6, il che lo rende ideale per applicazioni critiche in cui la ridondanza e la disponibilità dei dati sono fondamentali. Richiede almeno otto dischi.
Questi livelli nidificati combinano le caratteristiche di striping e parità o mirroring, offrendo opzioni più flessibili e adatte a esigenze aziendali complesse.
In questo modo, si adattano a una vasta gamma di scenari operativi, dalla gestione di grandi quantità di dati con ridondanza elevata alla necessità di migliorare le prestazioni senza sacrificare la sicurezza dei dati.
Oltre ai livelli RAID standard e RAID nidificati, esistono diversi livelli RAID non standard sviluppati da aziende o per applicazioni specifiche. Questi livelli non sono riconosciuti come standard, ma offrono funzionalità particolari in base a esigenze specifiche di prestazioni, ridondanza o configurazioni di sistema. Ecco alcuni dei principali:
Livelli RAID non standard
- RAID 7: Un livello proprietario che si basa su una combinazione di RAID 3 e RAID 4. Utilizza una caching basata su un bus ad alta velocità e un sistema operativo incorporato per il controller, offrendo prestazioni avanzate. RAID 7 è particolarmente adatto per ambienti che richiedono un’elevata velocità di trasferimento dati. È considerato molto complesso e costoso da implementare e viene utilizzato raramente.
- RAID adattivo: Questa tecnologia permette al controller RAID di decidere automaticamente come memorizzare le informazioni di parità, selezionando tra configurazioni simili a RAID 3 e RAID 5, in base alle esigenze di carico di lavoro. È particolarmente utile in sistemi che variano significativamente nelle esigenze di lettura e scrittura, poiché il controller può ottimizzare le prestazioni in tempo reale.
- RAID S (RAID in Storage): Utilizzato nei sistemi di storage EMC Symmetrix, RAID S è una versione non standard di RAID 5. Viene implementato esclusivamente nei sistemi EMC e ottimizza le prestazioni tramite una combinazione proprietaria di striping e parità distribuita.
- RAID 1E (Mirroring Esteso): Combina il mirroring del RAID 1 con lo striping. Diversamente da RAID 1, RAID 1E consente di utilizzare un numero dispari di dischi, distribuendo e duplicando i dati in modo che ogni blocco di dati sia presente su almeno due dischi. Questo garantisce un livello di ridondanza simile a RAID 1, ma con maggiore flessibilità.
- RAID-Z: Un livello RAID progettato per il filesystem ZFS. RAID-Z elimina il problema del “write hole” (una situazione in cui il calcolo della parità può essere compromesso da interruzioni nel processo di scrittura), garantendo una maggiore integrità dei dati. Esistono tre varianti: RAID-Z1 (equivalente a RAID 5), RAID-Z2 (equivalente a RAID 6), e RAID-Z3, che può tollerare la perdita di tre dischi.
- RAID DP (Dual Parity): Sviluppato da NetApp, RAID DP è simile a RAID 6, con doppia parità distribuita su tutti i dischi, migliorando la tolleranza ai guasti. È pensato per grandi sistemi di storage che devono gestire volumi di dati molto elevati, riducendo il rischio di perdite anche in caso di guasti multipli di dischi.
- Intel Matrix RAID: Questa tecnologia consente di combinare due configurazioni RAID su un singolo gruppo di dischi. Ad esempio, è possibile configurare una parte dei dischi in RAID 0 per le prestazioni e un’altra parte in RAID 1 per la ridondanza. Intel Matrix RAID offre una maggiore flessibilità per gli utenti che desiderano combinare velocità e sicurezza su un singolo array di dischi.
Questi RAID non standard sono spesso implementati per soddisfare esigenze aziendali specifiche o per ottimizzare le prestazioni in ambienti di archiviazione altamente specializzati. Tuttavia, non sono ampiamente utilizzati come i RAID standard, poiché possono richiedere hardware proprietario o soluzioni specifiche per essere implementati.
RAID e il backup dei dati
Sebbene il RAID offra ridondanza e tolleranza ai guasti, non sostituisce una strategia di backup completa. RAID protegge dai guasti hardware, ma non da errori umani o problemi software. È essenziale avere un piano di backup separato che includa copie regolari dei dati in una posizione esterna o nel cloud.