Achtergrond: hoe werken RAID 0, RAID 1, RAID 10 en RAID 5?

41 reacties
Inhoudsopgave
  1. 1. Inleiding
  2. 2. RAID 0 – Striping
  3. 3. RAID 1 – Mirroring
  4. 4. RAID 0+1 en RAID 1+0
  5. 5. RAID 3
  6. 6. RAID 5 en 6
  7. 7. Parity
  8. 8. Conclusie + tabel
  9. 9. Mini-workshop: RAID installeren in een notendop
  10. 10. Reacties

Inleiding

Wie met één harde schijf of SSD niet het gewenste prestatieniveau behaalt, kan er voor kiezen om twee of meer schijven in een RAID-opstelling te plaatsen. Ook als je verlies van kostbare data vreest, is RAID een oplossing. In dit artikel doen we uit de doeken hoe RAID exact werkt.

Het is alweer jaren geleden dat we op Hardware.Info voor het laatst uitgebreid aandacht hebben besteed aan RAID. Tijd om het geheugen een beetje op te frissen. RAID staat voor ‘Redundant Array of Inexpensive Disks’ en is tientallen jaren geleden bedacht in de serverwereld. Destijds waren grote harddisks ofwel niet beschikbaar ofwel simpelweg onbetaalbaar. Door de capaciteit van een aantal normale harddisks te combineren, kon men wél over de gewenste opslagcapaciteit beschikken.

Inmiddels is het vergroten van de opslagcapaciteit geen belangrijke reden meer om RAID toe te passen. Verhoogde snelheid en/of verbeterde betrouwbaarheid zijn dat wel. Voor SSD’s die in vergelijking met harddisks relatief weinig capaciteit hebben, is een grotere totale opslagcapaciteit dankzij RAID echter ook mooi meegenomen.

Had je vroeger om van RAID gebruik te maken nog een speciale controller nodig, inmiddels behoort deze functionaliteit alweer heel wat jaren tot de standaarduitrusting van alle moederbordchipsets. Luxere chipsets ondersteunen meer RAID-modi dan eenvoudiger exemplaren, maar de kans is groot dat ook jouw moederbord prima overweg kan met RAID. Toch kan een losse controller een meerwaarde bieden. Binnenkort mag je op Hardware.Info een test verwachten waarbij we daar verder op in gaan.

OCZ Vertex 4 128GB

Varianten

Met RAID kun je dus twee of meer harddisks in je PC samenvoegen tot één zogenaamd array. Dat kan op verschillende manieren worden opgebouwd, om ofwel de snelheid ofwel de betrouwbaarheid van je opslag te verbeteren. De simpelste RAID-vormen, die alle RAID-controllers beheersen, zijn RAID 0 en RAID 1. De eerste zorgt voor betere prestaties, de andere voor veiliger opslag. Beide RAID-vormen zijn ook te combineren. Daarnaast kan je kiezen voor complexere RAID-varianten zoals RAID 5 en RAID 6. Waar RAID 5 aanvankelijk alleen werd toegepast in dure, losse RAID-controllers, is ook deze functionaliteit inmiddels gemeengoed bij moderne chipsets, zij het met wat haken en ogen.

RAID 0 – Striping

RAID 0, ook wel striping genoemd, kun je toepassen bij twee of meer harddisks of SSD’s. Het doel van RAID 0 is zoals geschreven het verbeteren van prestaties.

Bij deze vorm wordt data weggeschreven in blokken van een bepaalde grootte (meestal 64 kB). Die worden om-en-om verdeeld over de aanwezige schijven. In onderstaande afbeelding zie je een schematische opbouw van een RAID 0 array met drie harddisks. De RAID-controller schrijft het eerste datablok naar harddisk 1, het tweede blok naar harddisk 2, het derde blok naar harddisk 3 en daarna weer het vierde blok naar harddisk 1 en zo verder.

In feite worden alle harddisks tegelijkertijd aangesproken en wordt alle data gelijkmatig verdeeld. Hierdoor is een RAID 0 array met drie harddisks dus in theorie drie keer zo snel dan één losse harddisk. Bij RAID 0 verlies je geen opslagcapaciteit kwijt: drie harddisks van 1 TB worden samen één array van 3 TB.

Wel heeft RAID 0 andere nadelen. De belangrijkste is, dat een crash van één harddisk betekent dat ál je data onbruikbaar is. Ook moet je niet vergeten dat de kans op een crash bij gebruik van drie harddisks, drie keer zo groot is als de kans dat één losse harddisk crasht. RAID 0 is dus ideaal als je de allerbeste prestaties wenst, maar als je belangrijke data op zo’n array zet, zijn goede backups een must!

 

RAID 1 – Mirroring

Waar RAID 0 moet leiden tot hogere prestaties, is RAID 1 (ook wel: mirroring) er om de betrouwbaarheid ten goede te komen. Bij RAID 1 schrijft de controller alle data op identieke wijze naar twee afzonderlijke harddisks. Als één van beide crasht, is er dan niets aan de hand: alle data staat immers ook op de andere schijf. Met RAID 1 heb je dus de zekerheid dat je na een harddisk crash gewoon op gelijke snelheid kan doorwerken. Het nadeel is uiteraard dat je veel opslagcapaciteit ‘verspilt’: een RAID 1 array van twee  1TB harddisks biedt slechts 1 TB capaciteit, ofwel slechts 50% van het geheel. Daarnaast is een mirror géén back-up; meer daarover lees je in het kader elders op deze pagina’s.

De prestaties van RAID 1 zijn over het algemeen vergelijkbaar met die van een losse harde schijf of SSD. Je kiest dit RAID type dus enkel en alleen om in het geval van een harde schijf crash je data veilig gesteld te hebben. In het tweede gedeelte van figuur 1 is de werking van RAID 1 weergegeven.

 

RAID is geen backup!

Dankzij RAID 1 en andere RAID-vormen is je data beschermd wanneer een harde schijf het begeeft. Let echter op: bescherming heeft beperkingen, RAID is géén back-up. Wanneer je bijvoorbeeld per ongeluk een bestand wist van een RAID 1-array, is het ook op beide schijven echt weg. RAID helpt ook niet wanneer een virus je data verminkt. Alleen met echte back-ups kun je in geval van nood altijd terugvallen op een oudere versie van z’n bestanden. Als je je data dus echt veilig wilt stellen, gebruik je dus én RAID 1, RAID 10 of RAID 5 én maak je back-ups.

In sommige gevallen is RAID echter wel een goed alternatief voor back-ups. Als je terabytes aan films hebt opgeslagen is het maken van backups natuurlijk onbegonnen werk. De films opslaan op bijvoorbeeld een RAID 5 array in je NAS of Home Server zorgt er in ieder geval voor dat je collectie is beveiligd tegen een harddisk crash. Tegen flaters als het per ongeluk verwijderen van bestanden ben je dan dus niet beveiligd.

RAID 0+1 en RAID 1+0

RAID 0 en 1 zijn bij de meeste RAID-controllers naar wens te combineren. Voor een zogenaamde RAID 0+1 of RAID 1+0 (ook wel RAID 01 en RAID 10 genaamd) array heb je minimaal vier harde schijven nodig.

Bij RAID 0+1 worden twee RAID 0 arrays van twee of meer schijven gemirrord, om zo in jargon een mirror of stripes te genereren. Bij RAID 1+0 worden twee of meer groepjes van twee gemirrorde (RAID 1) schijven ingezet in een RAID 0 array, een stripe of mirrors dus.

De eigenschappen zijn in beide gevallen gelijk: je hebt de prestatieverbeteringen van RAID 0 gecombineerd met de veiligheid van RAID 1. In beide gevallen kost het je 50% van de opslagcapaciteit van je schijven. Ofwel: vier 1 TB schijven in RAID 0+1 of RAID 1+0 levert een array op van 2 TB.

RAID 0+1 of RAID 1+0 lijkt op het eerste gezicht lood om oud ijzer, maar zodra je meer dan vier schijven gaat gebruiken is RAID 1+0 te prefereren. Vandaar ook dat de meeste RAID-controllers alleen deze variant aanbieden.

Waarom? Bekijk het schema in onderstaande eens, waar we een RAID 0+1 en RAID 1+0 array met zes schijven hebben uitgebeeld. Bij een RAID 0+1 array van zes schijven zijn twee RAID 0 arrays van drie schijven gemirrord. We weten dat wanneer in een RAID 0 array één schijf sneuvelt, het hele array niet meer werkt. Ofwel: zodra in het RAID 0+1 array van zes schijven in elk van beide onderliggende RAID 0 arrays van drie schijven één disk sneuvelt, is het hele RAID 0+1 array stuk.

Bij een RAID 1+0 array van zes schijven wordt er een RAID 0 array opgebouwd uit drie groepjes van telkens twee schijven die gemirrord zijn dankzij RAID 1. We weten van RAID 1 dat het uitvallen van een schijf geen probleem is. Ofwel: in dit geval kan in elk van de drie groepjes een schijf sneuvelen en is het hele RAID 1+0 array nog niet kapot.

Van de 15 mogelijke combinaties van twee schijven die kapot kunnen gaan uit een collectie van in totaal zes schijven zijn er bij RAID 0+1 negen fataal en bij RAID 1+0 drie, zoals te zien in de tabel onder aan deze pagina. Dat lijkt ons een duidelijke keuze.


RAID 10 is bij zes schijven veel veiliger dan RAID 01.

Kapotte schijven Fataal bij RAID 1+0 Fataal bij RAID 0+1
1 & 2 X -
1 & 3 - -
1 & 4 - X
1 & 5 - X
1 & 6 - X
2 & 3 - -
2 & 4 - X
2 & 5 - X
2 & 6 - X
3 & 4 X X
3 & 5 - X
3 & 6 - X
4 & 5 - -
4 & 6 - -
5 & 6 X -

RAID 3

Met RAID 0+1 en RAID 1+0 heb je dus een combinatie van hogere snelheid en verbeterde betrouwbaarheid. Maar RAID 0+1 en 1+0 hebben net als RAID 1 één groot nadeel: je verliest de helft van je opslagcapaciteit. Bij zes schijven van 1 TB hou je maar 3 TB over. Dat vinden velen toch zonde van hun kostbare investering in schrijfruimte. Gelukkig zijn er slimmere RAID-varianten, zij het dat ook die hun specifieke nadelen hebben: RAID 3, 5 en 6.

Voor een RAID 3 array heb je minstens 3 harddisks nodig, maar het werkt ook met vier, vijf of meer schijven. Alle data wordt bij RAID 3 middels striping weggeschreven naar alle in het array aanwezige schijven op één na. Op die laatste schijf wordt zogenaamde parity-informatie opgeslagen. Dankzij deze informatie kan de data van iedere willekeurige schijf in het array opnieuw opgebouwd worden als deze crasht. Net als RAID 1 biedt dus ook RAID 3 beveiliging tegen het verlies van data bij een harddisk crash. Het grote voordeel is echter dat je veel minder capaciteit verliest: er is altijd slechts één schijf benodigd voor de parity en dat betekent dus hoe meer schijven in je RAID 3 array, hoe minder capaciteit je relatief kwijt bent. Een RAID 3 array van drie 1 TB harddisks biedt 2 TB capacitieit, want (3 – 1) x 1 TB = 2 TB. Een RAID 3 array van vijf 1 TB harddisks biedt 4 TB capaciteit, (5 – 1) x 1 TB = 4 TB. In het eerste geval verlies je 33% capaciteit, in het tweede voorbeeld slechts 20%; een stuk beter dan de 50% die je verliest bij RAID 1. RAID 3 heeft nog een voordeel: aangezien alle data net als bij RAID 0 verdeeld staat over meerdere schijven, gaat het lezen net als bij RAID 0 veel sneller dan met een losse harddisk. Het wegschrijven van data gaat in de praktijk echter wel wat langzamer, aangezien de parity-informatie berekend moet worden. Onderstaande afbeelding toont hoe RAID 3 te werk gaat in een array met drie schijven.

RAID 5 en 6

RAID 5 heeft precies dezelfde eigenschappen als RAID 3, maar heeft een ietwat andere implementatie. In plaats van alle parity informatie op één schijf te plaatsen, wordt de parity verdeeld over alle schijven in het array. Op iedere positie op de harddisk staat op één van de schijven de parity-informatie behorende bij de data die bij de andere schijven op dezelfde positie staat. Hoewel de implementatie van RAID 5 iets mooier is, maakt het functioneel weinig uit of je nu RAID 3 of RAID 5 gebruikt. In vrijwel alle moderne RAID-controller is RAID 3 overigens geen beschikbare optie meer, maar kun je wel voor RAID 5 kiezen.

Bij een RAID 5 array kan ongeacht het aantal schijven altijd één willekeurige schijf sneuvelen en is al je data veilig. Wie daar nog geen goed gevoel bij krijgt, kan ook kiezen voor RAID 6. Bij dat type wordt een andere vorm van parity altijd op twee schijven weggeschreven. Bij RAID 6 kunnen zodoende altijd twee willekeurige schijven kapot gaan zonder dat je data kwijt raakt. RAID 6 is mogelijk vanaf vier schijven, maar wordt voornamelijk ingezet bij arrays van vijf schijven of meer. Immers: bij een RAID 6 array van vier schijven had je net zo goed RAID 1+0 kunnen gebruiken.

Parity

Hoe kan het nu dat in een RAID 3 of 5 array van drie schijven, één schijf met zogenaamde parity informatie ervoor kan zorgen dat alle data op alle andere schijven opnieuw kan worden opgebouwd, indien er één schijf crasht? Zoals je weet wordt alle data op harddisks opgeslagen in binair formaat met 1’en 0’en. Van een gegeven reeks bits geeft de parity aan of er een even of oneven aantal 1’en is. In het eerste geval is de parity 0, in het tweede geval is de parity 1.

Laten nu als voorbeeld eens kijken naar een RAID 3 array met vier harddisks. Op de eerste drie schijven staat data, de vierde is de parity-schijf. Als voorbeeld nemen we een bepaalde datapositie op de harddisks: stel dat op de genoemde positie op schijf 1 en 2 een 0 staat en op schijf drie een 1. Er is dus een oneven aantal 1’en en dus wordt de parity 1, wat wordt opgeslagen op dezelfde positie op de parity schijf. Wat gebeurt er nu als harddisk 2 crasht? De RAID controller weet dat op schijf 1 een 0 staat en op schijf 2 een 1. Daarnaast is dankzij schijf 4 ook de parity bekend en die geeft aan dat er een oneven aantal 1’en moet zijn. Daaruit kan de controller afleiden dat op schijf 2 een 0 moeten hebben gestaan. Op die manier kan bij een crash alle data worden gereconstrueerd. De enige vereiste voor een volledige reconstructie is dat slechts één harddisk tegelijk mag crashen.

In onderstaande hebben we als voorbeeld de parity waardes van alle mogelijke combinaties van drie bits onder elkaar gezet. Probeer het zelf maar eens uit: het maakt niet uit welke kolom bits dankzij een crash wegvalt, dankzij de parity is het altijd terug te rekenen.

Bit 1 Bit 2 Bit 3 Parity
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1

Conclusie + tabel

RAID kan er voor zorgen dat de prestaties van je harde schijven of SSD’s verbeteren en/of dat de betrouwbaarheid van je opslag verbetert. Alle vormen van RAID hebben hun eigen voor- en nadelen. RAID 5 is in feite de slimste variant als je betrouwbaarheid wenst bij een groot aantal schijven, maar heeft wel als nadeel dat het berekenen van de parity de schrijfsnelheid negatief kan beïnvloeden. De prestaties van RAID zijn afhankelijk van de gebruikte controller. 

In onderstaande tabel hebben we de eigenschappen en voor- en nadelen van de verschillende RAID-types nog eens naast elkaar gezet.

RAID Type RAID 0 RAID 1 RAID 1+0 RAID 3 RAID 5 RAID 6
Naam Striping Mirroring Stripe of Mirrors Striping met Parity Striping met Dist. Parity Striping met Dist. Dual Parity
Minimaal aantal disks 2 2 4 3 3 4
Schijfcapaciteit Aantal Disks x Capaciteit 1 x Capaciteit (Aantal Disks / 2) x Capaciteit (Aantal Disks - 1) x Capaciteit (Aantal Disks - 1) x Capaciteit (Aantal Disks - 2) x Capaciteit
Capaciteit bij 4x 1 TB 4 TB n.v.t. 2 TB 3 TB 3 TB 2 TB
Veiligheid
Prestaties

Mini-workshop: RAID installeren in een notendop

Wil je je harde schijven of SSD’s opnemen in een RAID-array? Wij laten je zien hoe je te werk gaat aan de hand van de RAID-controller binnen de Intel Z77-chipset. Let wel op: wanneer je een RAID-array aanmaakt, ben je alle bestaande data op je schijven kwijt.

Stap 1: Wanneer je gebruik wilt maken van de onboard RAID-controller van je moederbord, ga je naar de BIOS van je moederbord en zet de SATA-modus op RAID.

Stap 2: Start de PC opnieuw op en je zult tijdens het opstarten een melding van de RAID-controller zien. In het geval van de RAID-functionaliteit in Intel chipsets druk je op CTRL + I om in het RAID-configuratiemenu te komen.

Stap 3: In het RAID-configuratiemenu kies je voor Create RAID volume.

Stap 4: Geef in het volgende scherm het array een naam en kies het type RAID dat je wenst (0, 1, 10 of 5). Kies daarna voor Select Disks.

Stap 5: Selecteer nu met spatie de schijven die je wilt opnemen in het RAID-array en druk daarna op enter.

Stap 6: Optioneel kun je de stripe size nog aanpassen, maar de standaard instelling is meestal de beste. Selecteer Create Volume en je RAID-array wordt gemaakt.

Let op: wanneer je Windows gaat installeren op een RAID-array, heb je vrijwel altijd de drivers van de RAID-controller nodig. Windows kan deze inladen van CD of USB-stick.

0
*