Wat is RAID?

RAID staat voor Redundant Array of Inexpensive Disks of Redundant Array of Independent Disks. Het is een virtualisatieoplossing voor gegevensopslag die meerdere fysieke schijven behandelt als één enkele fysieke schijf. Het doel van RAID is om gegevensredundantie, prestatieverbeteringen of beide te bieden, afhankelijk van het gebruikte RAID-niveau.

RAID-concepten

De drie belangrijkste concepten in RAID zijn "mirroring", "striping" en "pariteit".

Bij RAID, spiegelen is de replicatie van gegevens over meerdere schijven, dit zorgt voor een niveau van redundantie ten koste van verminderde opslagcapaciteit. Als er bijvoorbeeld een schijf uitvalt, gaan er geen gegevens verloren, omdat alle gegevens op de defecte schijf zich ook op een tweede schijf bevinden. Op dit punt kan de defecte schijf worden vervangen en kan de RAID-array opnieuw worden opgebouwd vanaf bestaande schijven.

INVAL striping is het concept van het verspreiden van gegevens over meerdere schijven. Dit zorgt ervoor dat de volledige capaciteit van alle schijven beschikbaar is voor gebruik en zorgt voor betere prestaties als gegevens tegelijkertijd worden geschreven naar of gelezen van meerdere schijven. Het nadeel hiervan is dat het verlies van een schijf de hele array corrumpeert.

INVAL pariteit is een fouttolerantieproces dat een logisch proces uitvoert tussen elke bit op twee schijven en het resultaat opslaat op een derde schijf. Als een van de schijven uitvalt, kan de array opnieuw worden opgebouwd vanaf de andere twee. Pariteit kan alleen worden toegevoegd bovenop andere raid-statussen.

Algemene RAID-niveaus

RAID 0 is een eenvoudige implementatie van striping. Twee of meer schijven zijn opgenomen in de array, waarbij hun totale capaciteit en lees-/schrijfsnelheden worden gecombineerd. Dit raid-niveau biedt hoge prestaties, maar met het risico dat alle gegevens verloren gaan als een schijf uitvalt. De prestaties van een RAID 0-array nemen toe naarmate u meer schijven toevoegt, maar dit vergroot ook de kans dat een van de schijven uitvalt en de hele array beschadigt.

Tip: RAID 0 is iets anders dan het simpelweg overspannen van meerdere schijven samen. Beide technieken maken het mogelijk om de volledige capaciteit van de schijven te gebruiken. Het samen overspannen van de schijven biedt niet de prestatieverbetering die het gevolg is van het stripen van gegevens, maar het behoudt wel de gegevens die zijn opgeslagen op werkende schijven als een spanned schijf uitvalt.

RAID 1 is een implementatie van mirroring, waarbij gegevens van de ene schijf worden gespiegeld naar een tweede schijf. Als een van beide schijven uitvalt, gaan er geen gegevens verloren. In grotere arrays bevat elke schijf nog steeds precies dezelfde informatie. Zolang één RAID 1-schijf functioneert, kunnen de gegevens worden gelezen en kan de array opnieuw worden opgebouwd.

RAID-niveaus 4 en 5 gebruiken striping om de prestaties te verbeteren, maar bevatten ook pariteit om schijfstoringen mogelijk te maken. RAID 4 wijdt een enkele schijf aan pariteit, dit kan lagere schrijfsnelheden veroorzaken omdat alle pariteitsgegevens slechts naar één schijf worden geschreven. RAID 5 verspreidt de pariteitsgegevens over alle schijven in de array. Het knelpunt dat voortkwam uit het schrijven van pariteitsgegevens naar één schijf is verwijderd, maar de pariteitsverwerking moet nog steeds worden uitgevoerd, waardoor de prestaties een beetje afnemen in vergelijking met RAID 0. Voor RAID-niveaus 4 en 5 zijn beide minimaal drie schijven in de array vereist en kan slechts één schijf defect raken.

RAID 6 is identiek aan RAID 5 maar slaat twee pariteitsblokken op over alle schijven in de array. Deze extra pariteit verdubbelt de vereiste pariteitsverwerking, waardoor de prestaties meer afnemen dan bij RAID 5, maar nog steeds minder dan bij RAID 4. RAID 6 vereist minimaal vier schijven in de array, maar kan maximaal twee schijven aan.

RAID 0+1 is een geneste RAID-array, het creëert eerst een RAID 0-array van gestreepte schijven en vervolgens een RAID 1-mirror van die array. Het nesten van deze twee typen RAID-arrays zorgt voor zowel de redundantie van de mirroring als de snelheidsboost van de striping. De nadelen van deze methode zijn dat er minimaal vier schijven nodig zijn en dat als een schijf uitvalt, een hele spiegel uitvalt. Als een schijf uitvalt, beschadigt deze de RAID 0-array. In een RAID 0+1-array met vier schijven zou het verliezen van een enkele schijf de gekoppelde schijf beschadigen en de andere twee schijven zonder de bescherming van een spiegel laten.

RAID 10 is een ander type geneste RAID-array, het creëert een RAID 1-array van gespiegelde schijven en vervolgens een RAID 0-stripe van die array. Door de arrays op deze manier te nesten, krijgt u dezelfde redundantie en prestatieverbetering als RAID 0+1. Met deze implementatie kunt u echter veel schijven kwijtraken, zolang elke spiegel tenminste één werkende schijf heeft. Het kost ook minder tijd om de array opnieuw op te bouwen in het geval van een schijfstoring, omdat er slechts één set gespiegelde schijven opnieuw hoeft te worden opgebouwd.