Cos’è RAID? Quali sono i tipi di RAID

RAID, o R edundant A rray of Indipendent (o I nexpensive) D isks, è una tecnologia di archiviazione dei dati utilizzata per la ridondanza dei dati (protezione contro i guasti hardware), l’aumento delle prestazioni o una combinazione di entrambi.

I vari tipi (livelli) RAID memorizzano i dati in modo diverso, si concentrano su cose diverse (tolleranza agli errori, throughput, costo) e, come tali, sono adatti a situazioni diverse. E c’è anche la questione dell’efficacia del RAID al giorno d’oggi.

Con l’avvento di tecnologie alternative come SSD e Erasure Coding, la domanda incombe; ne vale ancora la pena? Discuteremo tutti questi e argomenti simili in questo articolo.

Se volete continuare a leggere questo post su "[page_title]" cliccate sul pulsante "Mostra tutti" e potrete leggere il resto del contenuto gratuitamente. ebstomasborba.pt è un sito specializzato in Tecnologia, Notizie, Giochi e molti altri argomenti che potrebbero interessarvi. Se desiderate leggere altre informazioni simili a [page_title], continuate a navigare sul web e iscrivetevi alle notifiche del blog per non perdere le ultime novità.

Seguir leyendo


Sommario

Cos’è RAID? Come funziona

RAID è una tecnologia di archiviazione utilizzata per configurare più dischi fisici come un singolo disco logico chiamato Logical Unit Number (LUN). In generale, in una configurazione RAID, i dati vengono archiviati su più dischi, con l’obiettivo primario della ridondanza dei dati e/o del miglioramento delle prestazioni.

La ridondanza dei dati aumenta l’affidabilità fungendo da rete di sicurezza contro i guasti del disco. Allo stesso modo, la combinazione delle specifiche di più dischi fornisce significativi miglioramenti delle prestazioni per le operazioni di I/O.

Naturalmente, questa è solo una descrizione ampia. Il grado in cui l’array si concentra sulla ridondanza o sulle prestazioni dipende dal tipo di RAID utilizzato, generalmente indicato come livelli RAID. Alcuni sono progettati per uno scopo esclusivo, mentre altri offrono il meglio di entrambi i mondi.

I livelli RAID standard sono RAID 0 – RAID 6, ma esistono numerosi altri livelli RAID che rientrano in categorie come RAID nidificato e RAID non standard. Ne parleremo più dettagliatamente in seguito, ma per ora concludiamo con una breve introduzione.

Per quanto riguarda il funzionamento effettivo del RAID, implementa tecniche come lo striping dei dati, il mirroring del disco e la parità. A seconda del livello RAID, è possibile utilizzare una o qualsiasi combinazione di queste tecniche.

Lo striping dei dati è il processo di suddivisione di segmenti consecutivi di dati logicamente sequenziali su dischi diversi. Accedendo contemporaneamente ai dati distribuiti su più dischi, puoi utilizzare il throughput combinato dei dati, che sostanzialmente porta a prestazioni migliori.

Il mirroring si spiega da sé: i dati da un disco vengono copiati su un altro. Ciò rende ridondanti i dati su un disco, ma è inteso in quanto ciò consente il ripristino dei dati in caso di guasto di uno dei dischi nell’array.

La parità è una tecnica di protezione dagli errori comunemente utilizzata per fornire tolleranza agli errori e ottenere ridondanza. I dati di parità vengono archiviati su un disco dedicato o distribuiti su tutti i dischi e, quando un disco qualsiasi nell’array si guasta, è possibile sostituirlo con un nuovo disco e utilizzare i dati di parità e i dati degli altri dischi per ricostruire il disco perso dati.

Generalmente, lo XOR di base viene eseguito sui dati dei dischi per calcolare i dati di parità, ma alcuni livelli RAID come RAID 2 o RAID 6 utilizzano parità dedicate, di cui abbiamo parlato più avanti nell’articolo.

Infine, c’è la questione dell’implementazione RAID. L’array RAID può essere gestito da un controller RAID dedicato, implementazioni basate su software (md, ZFS, ecc.) o implementazioni basate su firmware e driver.

I controller RAID fisici possono essere costosi, mentre i controller software sono gratuiti o convenienti. Tuttavia, poiché i controller software dipendono dalla macchina host per le risorse, anche l’aumento delle prestazioni RAID ne risente. In genere, RAID 0 – 4 può essere gestito con controller software, mentre RAID 5 e livelli superiori richiedono un controller RAID fisico.

Livelli RAID standard

I livelli RAID si sono evoluti nel corso degli anni, ma lo standard attualmente accettato, come mantenuto da SNIA, classifica RAID 0 – 6 come livelli standard.

Raid 0

RAID 0 utilizza lo striping su almeno due dischi. Poiché i file sono distribuiti su più dischi, anche il throughput disponibile viene moltiplicato. Ma per lo stesso motivo, è anche molto più soggetto a guasti, poiché qualsiasi guasto dell’unità significherebbe che tutti i dati vengono persi.

Poiché RAID 0 non fornisce ridondanza, alcuni discutono se debba essere chiamato RAID. Poiché il rischio di errore è elevato, non viene utilizzato molto spesso, in particolare con un numero elevato di dischi, poiché la possibilità di errore sarebbe ancora maggiore. Ma ha ancora i suoi casi d’uso. Per gli scenari in cui ti interessano solo le prestazioni, come i giochi, RAID 0 può essere utile.

In una configurazione RAID 0, la capacità di archiviazione totale è la somma di tutti i dischi utilizzati. Ad esempio, se vengono utilizzati due dischi da 1 TB, lo spazio disponibile sarà di 2 TB.

Incursione 1

RAID 1 esegue il mirroring dei dati da un disco sugli altri dischi dell’array. Il punto di forza di RAID 1 è la sua affidabilità, poiché l’array non si guasterà finché almeno un’unità è operativa. Tuttavia, poiché è progettato per l’affidabilità, ne risentono altri fattori come le prestazioni e lo spazio di archiviazione utilizzabile.

Poiché i dati possono essere letti da qualsiasi disco dell’array, le prestazioni di lettura sono generalmente vicine a quelle dell’unità più veloce dell’array. Lo stesso non si può dire per le prestazioni in scrittura, poiché tutte le modifiche in scrittura devono essere applicate a tutti i dischi.

In base alla progettazione, lo spazio di archiviazione utilizzabile può anche essere grande quanto il disco più piccolo dell’array. Ad esempio, se si utilizza un’unità da 500 GB e 1 TB, lo spazio utilizzabile sarebbe 500 GB e 500 GB verrebbero utilizzati per il mirroring, mentre gli altri 500 GB rimarrebbero inutilizzati.

RAID 2, 3, 4

RAID 2 utilizza lo striping a livello di bit tra i dischi con parità di codice Hamming dedicata. Fondamentalmente, ogni bit sequenziale viene memorizzato su un’unità diversa, mentre almeno un disco viene utilizzato per memorizzare i dati di parità. Poiché la maggior parte dei dischi di archiviazione moderni include il codice di correzione degli errori (ECC), RAID 2 non viene più utilizzato.

RAID 3 è simile, ma utilizza invece lo striping a livello di byte, mentre un disco dedicato viene utilizzato per archiviare i dati di parità. Anche RAID 3 è usato raramente, poiché è stato sostituito da RAID 4.

RAID 4 utilizza lo striping a livello di blocco con un disco di parità dedicato. Poiché i blocchi di dati sono distribuiti sui dischi, le richieste di lettura possono essere gestite da più dischi consentendo la sovrapposizione di I/O. Sebbene RAID 4 abbia i suoi vantaggi rispetto a RAID 2 e 3, come il parallelismo I/O, non è nemmeno comunemente usato, poiché i livelli più alti come RAID 5 e 6 sono ampiamente preferiti.

Raid 5

RAID 5 utilizza lo striping a livello di blocco con parità distribuita, in cui i dati di parità vengono distribuiti su ogni disco. RAID 5 richiede almeno 3 dischi e, anche se un’unità si guasta, è possibile utilizzare la parità distribuita per ricostruire l’array. RAID 5 offre essenzialmente vantaggi in termini di prestazioni e ridondanza.

La scrittura dei dati di parità ha un certo impatto sulle prestazioni di scrittura, ma non è così stressante come i livelli RAID inferiori, poiché tutti i dischi nell’array sono in grado di soddisfare le richieste di scrittura in RAID 5.

Nonostante tutte le sue qualità, RAID 5 ha un grosso difetto: la sua suscettibilità al fallimento. Quando un disco si guasta, la ricostruzione dell’array può richiedere diverse ore o addirittura giorni. Ma il problema ancora più grande è che la ricostruzione dell’array richiede la lettura dei dati di tutti i dischi, creando la possibilità che una seconda unità si guasti, il che porterebbe alla completa perdita di dati.

È molto improbabile che due unità si guastino contemporaneamente, ma è comunque qualcosa da considerare quando si decide la configurazione. Pertanto, per un’affidabilità ottimale, sarebbe meglio attenersi ai livelli RAID più elevati di cui parleremo di seguito.

Raid 6

RAID 6 è simile a RAID 5 in quanto utilizza lo striping a livello di blocco con parità distribuita, ma c’è una differenza fondamentale; utilizza due schemi di parità invece di uno. La doppia parità distribuita consente all’array di rimanere operativo nonostante due guasti del disco . Il failsafe aggiuntivo ha un costo ovvio, le prestazioni di scrittura ne risentono e viene utilizzato il doppio dello spazio per archiviare i dati di parità.

Nel caso di un piccolo array come 4 dischi (il minimo per RAID 6), sei libero di scegliere tra RAID 5 o 6 a seconda che le prestazioni o l’affidabilità siano la priorità. Ma con array più grandi, si consiglia vivamente di attenersi a RAID 6.

Naturalmente, anche l’affidabilità di RAID 6 non è a prova di errore. Con l’aumentare delle dimensioni del disco, aumentano anche i tempi di ricostruzione e, con essi, la probabilità di guasto del disco . L’efficacia di RAID 6 sta diminuendo e presto potrebbe essere necessaria la tripla parità.

Livelli RAID nidificati

Il RAID nidificato o RAID ibrido è fondamentalmente una combinazione di diversi livelli RAID. Questi vengono utilizzati per ulteriore ridondanza, miglioramento delle prestazioni o una combinazione di entrambi.

Ad esempio, con RAID 10 (RAID 1+0), dove 0 è l’array superiore, viene prima eseguito il mirroring di una serie di dischi, quindi viene eseguito lo striping dei mirror. RAID 01 (RAID 0+1) è l’opposto, dove 1 è l’array superiore. Qui, i dati vengono prima sottoposti a striping sui dischi, quindi viene eseguito il mirroring del set.

È la stessa idea con altri livelli RAID nidificati come RAID 03, RAID 50, RAID 60, ecc. Il RAID nidificato generalmente non va più in profondità di un livello, ma ci sono eccezioni come RAID 100 (RAID 10+0), dove RAID 10 gli array sono in striping utilizzando RAID 0.

E anche se non entreremo nei dettagli su di loro, vale anche la pena ricordare che esistono livelli RAID non standard. Si tratta per lo più di tecnologie proprietarie progettate pensando a una particolare organizzazione o progetto. Alcuni esempi includono Linux MD RAID 10, RAID-Z e Hadoop.

Utilizzo RAID e futuro

Non è un segreto che il futuro di RAID, per come stanno le cose, è finito. Negli ultimi anni sono emerse tecnologie in grado di offrire una migliore protezione dei dati, prestazioni e affidabilità, come Erasure Coding e SSD. Con l’aumento delle dimensioni del disco, aumentano anche i tempi di ricostruzione (tempo di inattività) e la possibilità di errore durante la ricostruzione.

E mentre più dischi non dovrebbero fallire insieme in teoria, esporre le unità della stessa marca alle stesse condizioni ambientali può renderlo molto più probabile di quanto la maggior parte delle persone pensi.

Tuttavia, questo non vuol dire che RAID sia già obsoleto. Negli ambienti server aziendali con grandi array in cui il tempo di attività è importante e, in generale, quando è necessario configurare il sistema nel modo più efficiente, il RAID è ancora molto rilevante.

Detto questo, ci sono alcune cose da tenere a mente se stai esaminando le configurazioni RAID. Innanzitutto, la ridondanza non è la stessa cosa dei backup. RAID aiuta ma non garantisce la protezione dei dati. È ancora suscettibile a errori umani o virus e, nel caso in cui i dischi vengano persi per qualsiasi motivo, avere un backup fuori sede può essere un vero toccasana.

In secondo luogo, se apprezzi esclusivamente le prestazioni, potresti scegliere RAID 0. RAID 1 è ottimo per la ridondanza, mentre qualcosa come RAID 5 offre il meglio di entrambi i mondi. Se apprezzi maggiormente l’affidabilità, il che è importante man mano che l’array si ingrandisce, RAID 6 o livelli RAID nidificati sarebbero opzioni ancora migliori, ma hanno un costo aggiuntivo in quanto sono necessari più dischi per i livelli RAID più elevati.

In definitiva, si tratta solo di trovare il miglior equilibrio tra prestazioni, protezione e costi per le circostanze specifiche.