Fondato nel 2008 · Edizione digitale · 15 Giugno 2026

SMB IT Journal

La risorsa di Information Technology per le piccole imprese

Italiano
Archiviazione

Confronto tra RAID 10 e RAID 01

Questi due livelli RAID generano spesso una notevole confusione, in parte perché vengono erroneamente usati come sinonimi e spesso semplicemente perché sono poco compresi.

Innanzitutto, occorre sottolineare che entrambi possono essere scritti con o senza il segno più: RAID 10 corrisponde a RAID 1+0 e RAID 01 corrisponde a RAID 0+1. Stranamente, RAID 10 non viene quasi mai scritto con il più e RAID 01 non viene quasi mai scritto senza. Gli ingegneri dello storage concordano generalmente sul fatto che il più non venga mai usato in quanto superfluo.

Entrambi questi livelli RAID sono livelli “composti” ottenuti combinando due tipi di RAID diversi e semplici. Entrambi sono RAID composti o nidificati basati su mirror e senza parità. Entrambi hanno caratteristiche prestazionali sostanzialmente identiche – overhead e latenza nominali con velocità di lettura pari a NX e velocità di scrittura pari a (NX)/2, dove N è il numero di unità nell’array e X è la prestazione di una singola unità dell’array.

Ciò che distingue i due livelli RAID è il modo in cui gestiscono il guasto di un disco. In sintesi, RAID 10 è estremamente sicuro in quasi tutti gli scenari ragionevoli. RAID 01, invece, diventa rapidamente piuttosto rischioso all’aumentare delle dimensioni dell’array.

In un RAID 10, la perdita di una singola unità comporta la degradazione di un singolo set RAID 1 all’interno dello striping RAID 0. Il livello di striping non subisce alcuna degradazione, soltanto quel singolo mirror RAID 1. Tutti gli altri mirror non sono interessati. Ciò significa che il nostro unico rischio aggiuntivo è che quella singola unità stia ora funzionando senza ridondanza e priva di protezione. Tutti gli altri set in mirror conservano la piena protezione. Quindi la nostra esposizione è una singola unità non protetta – proprio come ci si aspetterebbe in una macchina desktop.

La riparazione dell’array in un RAID 10 degradato è lo scenario di riparazione più rapido possibile. Dopo aver sostituito un’unità guasta, tutto ciò che accade è che quel singolo mirror viene ricostruito – il che è una semplice operazione di copia che avviene a livello RAID 1, al di sotto dello striping RAID 0. Ciò significa che, se l’array complessivo è inattivo, il processo di mirroring può procedere alla massima velocità e l’array complessivo non si accorge nemmeno che ciò stia avvenendo. Un mirror da disco a disco è estremamente veloce, efficiente e affidabile. Questo è uno scenario di ripristino ideale. Anche se più mirror sono degradati contemporaneamente e si riparano simultaneamente, non vi è alcun impatto aggiuntivo, poiché la ricostruzione di uno non influisce sugli altri. Sia il rischio sia l’impatto della riparazione del RAID 10 scalano in modo estremamente efficace.

RAID 01, d’altra parte, quando perde una singola unità perde immediatamente un intero striping RAID 0. In un tipico mirror RAID 01 vi sono due striping RAID 0. Ciò significa che metà dell’intero array è guasta. Se parliamo di un array RAID 01 a otto unità, il guasto di una singola unità rende istantaneamente inutilizzabili quattro unità e di fatto guaste (l’hardware non deve essere sostituito, ma i dati sulle unità sono obsoleti e devono essere ricostruiti per tornare utili). Quindi, dal punto di vista del rischio, possiamo considerarlo come un guasto dell’intero striping.

Ciò che rimane dopo il guasto di un singolo disco non è altro che un singolo striping RAID 0 non protetto. Questo è molto più pericoloso rispetto al guasto equivalente in RAID 10 perché, invece di esserci una sola unità isolata a rischio, vi sono ora come minimo due dischi e potenzialmente molti altri a rischio, e ogni unità esposta a tale rischio lo amplifica considerevolmente.

Come esempio, nell’array RAID 10 o 01 più piccolo possibile abbiamo quattro unità. In RAID 10, se un’unità si guasta, il nostro rischio è che anche il suo partner corrispondente si guasti prima che ricostruiamo l’array. Ci preoccupiamo soltanto di quell’unità; tutte le altre unità del set RAID 10 sono ancora protette e al sicuro. Solo questa è motivo di preoccupazione. In un RAID 01, quando si guasta la prima unità il suo partner nel relativo set RAID 0 diventa istantaneamente inutile e di fatto guasto, in quanto non è più utilizzabile nell’array. Ciò che rimane sono due unità prive di protezione che eseguono nient’altro che RAID 0, e quindi abbiamo lo stesso rischio che aveva il RAID 10, due volte. Ogni unità presenta lo stesso rischio che aveva prima quella singola unità. Ciò rende il nostro rischio, nel migliore dei casi, molto più elevato.

Ma per un esempio più eclatante consideriamo un grande array RAID 10 e RAID 01 a ventiquattro unità. Di nuovo, con RAID 10, se un’unità si guasta tutte le altre, eccetto il suo unico partner, restano protette. La dimensione aggiuntiva dell’array ha aggiunto un rischio supplementare quasi nullo. Temiamo ancora soltanto il guasto di quell’unica unità isolata. Confrontiamo ciò con RAID 01, in cui uno dei suoi array RAID 0 si sarebbe guastato eliminando dodici dischi in una sola volta con il guasto di uno solo, lasciando gli altri dodici dischi in un RAID 0 privo di qualsiasi forma di protezione. Le probabilità che una di dodici unità si guasti sono ovviamente molto più alte delle probabilità che si guasti una singola unità.

Questo non è l’intero quadro. Il ripristino della singola unità in RAID 10 è rapido: si tratta di una semplice operazione di copia da un’unità all’altra. Utilizza risorse minime e richiede soltanto il tempo necessario affinché una singola unità si legga e si riscriva integralmente. RAID 01 non è altrettanto fortunato. A differenza di RAID 10, che ricostruisce soltanto un piccolo sottoinsieme dell’intero array – un sottoinsieme che non cresce al crescere dell’array, poiché il tempo per ripristinare un RAID 10 a quattro unità o un RAID 10 a quaranta unità dopo un guasto è identico – RAID 01 deve ricostruire un’intera metà dell’intero array genitore. Nel caso dell’array a quattro unità, ciò rappresenta il doppio del lavoro di ricostruzione del RAID 10, ma nel caso dell’array a ventiquattro unità rappresenta dodici volte il lavoro di ricostruzione da svolgere. Quindi le ricostruzioni del RAID 01 richiedono più tempo per essere eseguite, pur essendo esposte a un rischio significativamente maggiore durante tale periodo.

Esiste un mito piuttosto persistente secondo cui RAID 01 e RAID 10 avrebbero caratteristiche prestazionali diverse, ma non è così. Entrambi utilizzano il semplice striping e il mirroring, che sono operazioni a overhead praticamente nullo e che richiedono quasi nessun sovraccarico di elaborazione. Entrambi ottengono prestazioni di lettura complete da ogni dispositivo a disco a essi collegato e ciascuno perde metà delle proprie prestazioni di scrittura a causa dell’operazione di mirroring (assumendo mirror a due vie, che è l’unico utilizzo comune di entrambi i tipi di array). Semplicemente non c’è nulla che renda RAID 01 o RAID 10 più veloce o più lento dell’altro. Entrambi sono estremamente veloci.

A causa delle caratteristiche dei due tipi di array, è evidente che RAID 10 è l’unico tipo, dei due, che dovrebbe mai esistere all’interno di un singolo controller di array. RAID 01 è inutilmente pericoloso e non comporta alcun vantaggio. Utilizzano lo stesso overhead di capacità, hanno le stesse prestazioni, costano lo stesso da implementare, ma RAID 10 è significativamente più affidabile.

Allora perché RAID 01 esiste? In parte esiste per ignoranza o confusione. Molte persone, implementando i propri array RAID composti, scelgono RAID 01 perché hanno sentito il mito che sia più veloce e, come accade in genere con il RAID, non indagano sul perché dovrebbe essere più veloce e dimenticano di approfondire la sua affidabilità e altri fattori. RAID 01 viene realmente implementato su array locali solo per errore.

Tuttavia, quando portiamo il RAID al livello di rete, vi sono nuovi fattori da considerare e RAID 01 può diventare importante, così come il suo raro cugino RAID 61. Indichiamo, tramite la Notazione RAID di Rete, dove esistono i livelli locali e dove i livelli di rete del RAID. Quindi, in questo caso, intendiamo RAID 0(1) OPPURE RAID 6(1). Le parentesi indicano che il mirror RAID 1, la porzione “più alta” dello stack RAID, è su una connessione di rete e non sul controller RAID locale.

Come si presenterebbe ciò in RAID 0(1)? Se si hanno due server, ciascuno con un array RAID 0 standard, e si desidera che siano sincronizzati tra loro per agire come un unico array affidabile, si potrebbe utilizzare una tecnologia come DRBD (su Linux) o HAST (su FreeBSD) per creare un array RAID 1 di rete a partire dallo storage locale di ciascun server. Ovviamente ciò comporta un notevole overhead prestazionale, poiché l’array RAID 1 deve essere mantenuto sincronizzato sulla connessione LAN ad alta latenza e bassa larghezza di banda. RAID 0(1) è la notazione per questa configurazione. Se ciascun array RAID 0 locale fosse sostituito con un più affidabile RAID 6, scriveremmo l’intera configurazione come RAID 6(1).

Perché accettiamo il rischio del RAID 01 quando è su una rete e non quando è locale? Ciò è dovuto alla natura del collegamento di rete. Nel caso di RAID 10, ci affidiamo alla porzione RAID 1 di basso livello dello stack RAID per la protezione, e il RAID 0 si trova al di sopra. Se replichiamo ciò a livello di rete come RAID 1(0), ciò che otteniamo è che ciascun host possiede un singolo mirror che rappresenta soltanto una porzione dei dati dell’array. Se qualcosa accadesse a un qualsiasi nodo dell’array o se la connessione di rete venisse a mancare, l’array verrebbe distrutto istantaneamente e ogni nodo rimarrebbe con dati inutili e incompleti. È la natura dell’elevato rischio di guasto dei nodi e del rischio a livello della connessione di rete che rende le decisioni RAID in un contesto di rete estremamente diverse. Questo diventa un argomento complesso a sé stante.

Basti dire che, quando si lavora con normali controller di array RAID o con storage locale e RAID software, occorre utilizzare esclusivamente RAID 10 e mai RAID 01.

Etichettatoraid raid 01 raid 10

Pubblicità

SMB IT Journal — the IT resource for small business