RAID 6 werd, net als RAID 5, ook ontwikkeld in de jaren 80. Een RAID 6-array met een hardwarecontroller wordt vaak gebruikt als een goed compromis tussen redundantie en snelheid. Een RAID 6-array vereist minstens vier schijven en biedt hogere leessnelheden met een minimale impact op de schrijfprestaties. Dit RAID-niveau kan twee defecte harde schijven verdragen.
RAID 6 arrays will need to dedicate two disks worth of data to parity. This means a RAID 6 array is still cheaper to implement than a RAID 10 van dezelfde grootte, aangezien slechts twee schijven aan pariteit worden toegewezen. Raid 6 biedt ook meer flexibiliteit en grotere volumegroottes dan RAID 1.
In het bovenstaande voorbeeld hebben we een RAID 6-array met vijf harde schijven, zoals u die kunt zien in een Dell PowerEdge server. Het eerste pariteitsblok (Pariteit 1) op drive 4 voor de eerste strook is de XOR van de gegevens van de blokken Data 1 (Drive 1), Data 2 (Drive 2) en Data 3 (Drive 3).
The second parity block (Parity 2) found on Drive 5 for the first stripe, is a combination of the data from Data1, Data2, Data 3 and can include Parity 1 depending on the manufacturer and controller. These parity calculations are repeated across all the data stripes using different drive combinations.
In het onderstaande voorbeeld zien we dat Drive 2 is mislukt.
Bij verlies van een Drive gaat de array in een gedegradeerde modus. In gedegradeerde modus zal de RAID-controller de gegevensstripes combineren met de nodige pariteit om goede gegevens aan het besturingssysteem te presenteren. In ons voorbeeld zal de controller Data 1, Data 3 en Pariteit 1 combineren voor de eerste stripe om de ontbrekende data in Data 2 te vervangen. In de tweede strook worden Data 4, Data 6 en Pariteit 1 gebruikt om Data 5 te vervangen. In de derde en vierde strook is geen pariteit nodig omdat alle Drives met Data beschikbaar zijn.
Met twee pariteitsblokken per stripe, staat RAID 6 toe dat harde schijven uitvallen. In het onderstaande voorbeeld zien we dat Drive 2 en 4 zijn uitgevallen.
Wanneer twee schijven verloren gaan, gebruikt de controller de gegevensstripes in combinatie met Pariteit 1 en Pariteit 2 om de ontbrekende gegevens opnieuw aan te maken. In ons voorbeeld combineert de controller Data 1, Data 3 en Pariteit 2 voor de eerste stripe om de ontbrekende gegevens in Data 2 te vervangen. In de tweede stripe worden Data 4, Data 6 en Parity 1 gebruikt om Data 5 te vervangen. In de derde stripe worden Data 7, Data 9 en Pariteit 2 gebruikt om Data 8 te vervangen.
Als het systeem over een hot spare beschikt, begint de controller bij een storing automatisch de ontbrekende gegevens van de defecte schijf opnieuw op te bouwen op de hot spare.
In het bovenstaande voorbeeld is Drive 2 defect. Het systeem gebruikte de hot spare en herbouwde alle ontbrekende gegevens van Drive 2 op de hot spare. Drive 2 kan nu uit het systeem worden verwijderd en worden vervangen door een nieuwe schijf, hetzij als een nieuwe hot spare of als een nieuwe Drive 2 na een rebuild van de gevens.
Waarom Hot Spares gebruiken? Wanneer een schijf uitvalt, is tijd van essentieel belang voor de rebuild. Als de schijven in degrade mode draaien, komen de overige schijven extra onder druk te staan en kunnen er extra storingen optreden als ze niet snel worden verholpen. Het is ook mogelijk dat schijven uit eenzelfde productielot soortgelijke defecten vertonen, zodat het mogelijk is dat andere schijven spoedig defect raken. Door een of meer hot spares beschikbaar te hebben, kunnen gegevens sneller worden hersteld.
Er zijn verschillende redenen voor gegevensverlies en de herstelinspanning voor elk daarvan is anders. Hieronder volgen enkele voorbeelden:
Net als bij een RAID 5-array kan, als één schijf in een array uitvalt, pariteit worden gebruikt om de ontbrekende gegevens opnieuw op te bouwen. In dit scenario is Ontrack meestal in staat om 100% van de gegevens te herstellen. Bij ontvangst van een niet-functionele array wordt een image gemaakt van alle schijven van de array in de clean room (indien mogelijk inclusief de defecte schijf). Vervolgens vindt een virtueel rebuild van de array op basis van deze images. Zodra de RAID is samengesteld, wordt het bestandssysteem of volume gescand op corruptie, virtueel gerepareerd en de gegevens geëxtraheerd. De defecte schijf is vaak niet nodig omdat ontbrekende gegevensstroken kunnen worden herbouwd aan de hand van pariteit.
In tegenstelling tot de RAID 5-array waar alle schijven, behalve één, nodig zijn om te functioneren, is RAID 6 ontworpen om het uitvallen van maximaal twee schijven toe te staan zonder enige impact op de gegevens. Het herstelproces van meerdere defecte schijven is vergelijkbaar met dat van een defecte enkele schijf. Bij ontvangst van een niet-functionerende array wordt een image gemaakt van alle schijven van de array in de clean room (indien mogelijk inclusief zoveel mogelijk van de defecte schijven). Als de gegevens op de schijven up-to-date zijn, zijn de defecte schijven mogelijk niet nodig voor een volledig herstel van de array. Vervolgens vindt een virtueel rebuild van de array op basis van deze images.
In het bovenstaande voorbeeld worden Data 1, Data 3 en Pariteit 2 van stripe één gebruikt om Data 2 opnieuw op te bouwen. Data 4, Pariteit 1 en Data 6 worden gebruikt om Data 5 in de tweede stripe te herbouwen. Data 7, Pariteit 2 en Data 9 worden gebruikt om Data 8 in de derde stripe te herbouwen.
Zodra de RAID-array virtueel opnieuw is samengesteld, wordt het bestandssysteem of het volume gescand op corruptie. Naast corruptie van het bestandssysteem zoeken de technici ook naar gegevens die niet consistent of verouderd zijn. Dit gebeurt wanneer er een tijdsverschil zit tussen schijfstoringen. Technici voor gegevensherstel moeten ervaring hebben met het herkennen van dit soort schade, zodat zij het volume virtueel kunnen repareren en goede bestandsgegevens kunnen extraheren.
Het is mogelijk om een volledig herstel te verkrijgen van een RAID 6-array, zelfs als er meer dan twee schijven uitvallen.
In het bovenstaande voorbeeld hebben we een RAID 6-array met schade op sommige gebieden van alle vijf schijven. Als er niet meer dan twee defecte blokken per stripe zijn, is het mogelijk om de ontbrekende gegevens te herbouwen. Ontrack zal zoveel mogelijk RAW data van elke schijf imagen.
Vervolgens wordt een virtuele rebuild van de array gedaan met behulp van die images. In het bovenstaande voorbeeld worden Data 1, Data 3 en Pariteit 2 van stripe 1 gebruikt om Data 2 opnieuw op te bouwen. Er is geen pariteit nodig voor stripe 2 aangezien Data 4, Data 5 en Data 6 allemaal intact zijn. Data 7, Pariteit 2 en Data 8 worden gebruikt om Data 9 in de derde stripe te herbouwen.
Zodra de RAID-array virtueel opnieuw is samengesteld, wordt het bestandssysteem of volume gescand op corruptie. Herstelbare gegevens worden van de virtueel herbouwde array naar nieuwe media overgebracht om opnieuw in productie te worden genomen.