La configurazione RAID 6, come quella RAID 5, è stata sviluppata negli anni '80. Gli array RAID 6 implementati con un controller hardware sono spesso utilizzati poiché offrono un buon compromesso tra ridondanza e velocità. Un array RAID 6 richiede almeno quattro hard disk e offre una elevata velocità di lettura con un impatto minimo sulle prestazioni a livello di scrittura. Questo livello di RAID è in grado di tollerare guasti fino a due dischi.
Per implementare un RAID 6 sono necessari due dischi per gestire la parity. Questo implica che un array RAID 6 è più economico da implementare rispetto a un RAID 10 di dimensioni simili, poiché solo lo spazio di due unità è allocato per la gestione della parity. Inoltre, i RAID 6 consentono di disporre anche di più flessibilità e maggiore capacità di storage rispetto a un RAID 1.
Nell'esempio sopra, abbiamo un array RAID 6 con cinque unità, esattamente come quello che si potrebbe trovare in un server Dell PowerEdge. Il primo parity block (Parity 1), situato sul Drive 4 per la prima stripe, è lo XOR dei dati dei blocchi denominati Data 1 (Drive 1), Data 2 (Drive 2) e Data 3 (Drive 3).
Il secondo blocco di parity (Parity 2), situato sul Drive 5 per la prima stripe, è una combinazione dei dati di Data 1, Data 2, Data 3 e potrebbe includere anche la Parity 1, a seconda del produttore e del controller. Questi calcoli di parità devono essere ripetuti su tutte le data stripe utilizzando diverse combinazioni di dischi.
Nell'esempio qui sotto, vediamo che il Drive 2 è guasto:
In caso di perdita di un'unità, l'array entrerà in modalità degradata (degraded mode). In modalità degradata, il controller RAID assocerà le strisce di dati con la parity per "presentare" dati integri al sistema operativo. Nel nostro esempio, il controller utilizzerà Data 1, Data 3 e Parity 1 nella la prima stripe per sostituire i dati mancanti in Data 2. Nella seconda striscia, verranno utilizzati Data 4, Data 6 e Parity 1 per sostituire Data 5. Nella terza e quarta stripe, non è necessaria la parity poiché tutte le unità dati sono funzionanti.
Con due blocchi di parità per ogni stripe, la configurazione RAID 6 può tollerare la perdita di due unità. Nell'esempio qui sotto, vediamo che i Drive 2 e 4 sono guasti.
In caso di perdita di due unità, il controller utilizzerà le stripe dati insieme alle informazioni di Parity 1 e Parity 2 per ricreare i dati mancanti. Nel nostro esempio, il controller combinerà Data 1, Data 3 e Parity 2 della prima stripe per sostituire i dati mancanti in Data 2. Nella seconda stripe, vengono utilizzati Data 4, Data 6 e Parity 1 per sostituire Data 5. Nella terza stripe, vengono utilizzati Data 7, Data 9 e Parity 2 per sostituire Data 8.
Qualora un Hot Spare sia disponibile per il sistema, in caso di guasto di un drive, il controller avvierà automaticamente la ricostruzione dei dati mancanti dal disco danneggiato all'Hot Spare.
Come evidenziato nell'esempio sopra, il Drive 2 è guasto. Il sistema ha impiegato l'Hot Spare per ricostruire tutti i dati mancanti dal Drive 2 sull'Hot Spare. Il Drive 2 può ora essere rimosso dal sistema e sostituito con un disco nuovo - sia come nuovo Hot Spare che come nuovo Drive 2 - e i dati possono essere ripristinati su di esso.
Perché utilizzare un Hot Spare? Quando un disco si guasta, il fattore tempo è essenziale per il successo delle operazioni di rebuild dei dati. Il funzionamento in modalità degradata sottopone a maggiore "stress" i dischi rimanenti e può causare ulteriori guasti se non corretto rapidamente. Inoltre, è possibile che i dischi prodotti nello stesso lotto presentino difetti simili, pertanto, altri dischi potrebbero guastarsi a breve. Disporre di uno o più Hot Spare consente di ottenere tempi di ripristino più rapidi e garantire la continuità operativa dell'array RAID.
Le cause della perdita di dati sono molteplici e per ognuna di esse le operazioni di recupero sono diverse. Di seguito sono riportati alcuni esempi:
Come in un sistema RAID 5, se un drive si guasta in un array, la parity può essere utilizzata per ricostruire i dati mancanti. In questo scenario, Ontrack è solitamente in grado di recuperare il 100% dei dati. Al ricevimento di un array non funzionante, tutte le unità dell'array vengono sottoposte a imaging in camera bianca (compresa l'unità guasta, se possibile). Quindi l'array viene ricostruito virtualmente utilizzando tali immagini. Una volta che il RAID è assemblato, il file system o il volume viene scansionato per individuare eventuali malfunzionamenti, riparato virtualmente e, infine, si prosegue con l'estrazione dei dati. Spesso non è necessario intervenire sul drive guasto, poiché qualsiasi stripe di dati mancante può essere ricostruita utilizzando la parity.
A differenza dell'array RAID 5, per il cui funzionamento sono necessarie tutte le unità tranne una, il RAID 6 è progettato per consentire il guasto di un massimo di due dischi senza che il malfunzionamento provochi il degrado dei dati. Il processo di data recovery da più drive danneggiati è simile a quello utilizzato per un singolo drive guasto. Al ricevimento di un array non funzionante, i drive vengono sottoposti a un'analisi in camera bianca, compresi i dischi guasti. Se i dati sui drive sono aggiornati, le unità guaste potrebbero anche non essere necessarie per ottenere un recupero completo del sistema. Quindi l'array viene ricostruito virtualmente utilizzando le immagini dei dischi.
Nell'esempio sopra, i Data 1, 3 e la Parity 2 dello stripe 1 vengono utilizzati per ricostruire i Data 2. I Data 4, la Parity 1 e i Data 6 vengono utilizzati per ricostruire i Data 5 nella seconda stripe. I Data 7, la Parity 2 e i Data 9 vengono utilizzati per ricostruire i Data 8 nel terzo stripe.
Una volta che l'array RAID è virtualmente riassemblato, il file system o il volume viene scansionato alla ricerca di eventuali danni. Oltre alla corruzione del file system, gli ingegneri cercano anche dati non coerenti o obsoleti. Questo accade quando c'è un intervallo di tempo tra i guasti dei drive e uno dei drive è degradato. Gli ingegneri di recupero dati hanno esperienza nel riconoscere questo tipo di danno per poter riparare virtualmente il volume ed estrarre dati validi.
È possibile effettuare un recupero completo da un array RAID 6 anche in presenza di più di due unità guaste.
Nell'esempio sopra, abbiamo un array RAID 6 con danni in alcune aree di tutti e cinque i dischi. Se non ci sono più di due blocchi danneggiati per stripe, è possibile ricostruire i dati mancanti. Ontrack eseguirà l'imaging della maggior parte possibile di ogni unità.
Quindi l'array verrà ricostruito virtualmente utilizzando queste immagini. Nell'esempio precedente, i Dati 1, 3 e la Parity 2 dello stripe 1 vengono utilizzati per ricostruire i Dati 2. Non è necessaria alcuna parity per lo stripe 2, poiché i Dati 4, 5 e 6 sono intatti. I Dati 7, la Parity 2 e i Dati 8 vengono utilizzati per ricostruire i Dati 9 del terzo stripe.
Una volta che l'array RAID è stato virtualmente riassemblato, il file system o il volume viene scansionato per individuare eventuali danni. I dati recuperabili vengono estratti dall'array ricostruito virtualmente su nuovi supporti per essere rimessi in produzione.