Articles

RAID (redundant array of independent disks)

RAID (redundant array of independent disks) is een manier om dezelfde gegevens op verschillende plaatsen op meerdere harde schijven of solid-state drives op te slaan om gegevens te beschermen in het geval van een schijfstoring. Er zijn echter verschillende RAID-niveaus, en niet allemaal hebben ze als doel redundantie te bieden.

Hoe RAID werkt

RAID werkt door gegevens op meerdere schijven te plaatsen en input/output (I/O)-bewerkingen elkaar op een evenwichtige manier te laten overlappen, waardoor de prestaties verbeteren. Omdat het gebruik van meerdere schijven de gemiddelde tijd tussen storingen (MTBF) verhoogt, verhoogt het redundant opslaan van gegevens ook de fouttolerantie.

RAID arrays verschijnen voor het besturingssysteem (OS) als een enkele logische schijf. RAID maakt gebruik van de technieken disk mirroring of disk striping. Bij spiegeling worden identieke gegevens op meer dan één schijf gekopieerd. Bij striping worden de gegevens over meerdere schijven verdeeld. De opslagruimte van elke schijf wordt verdeeld in eenheden gaande van een sector (512 bytes) tot verscheidene megabytes. De strepen van alle schijven worden in elkaar geschoven en in volgorde aangesproken.

RAID harde schijf
Afbeelding van een RAID harde schijf met vijf racks

Disk mirroring en disk striping kunnen ook worden gecombineerd in een RAID array.

In een systeem met één gebruiker waar grote records worden opgeslagen, worden de strepen meestal zo klein ingesteld (misschien 512 bytes) dat een enkel record alle schijven beslaat en snel kan worden benaderd door alle schijven tegelijk te lezen.

In een systeem met meerdere gebruikers is voor betere prestaties een strip nodig die breed genoeg is om de gebruikelijke of maximale grootte van de record te bevatten, zodat overlappende schijf-I/O over de schijven mogelijk is.

RAID-controller

Een RAID-controller is een apparaat dat wordt gebruikt om harde schijven in een opslagarray te beheren. Hij kan worden gebruikt als een abstractieniveau tussen het OS en de fysieke schijven, waarbij groepen schijven als logische eenheden worden gepresenteerd. Het gebruik van een RAID-controller kan de prestaties verbeteren en gegevens helpen beschermen in geval van een crash.

Een RAID-controller kan hardware- of softwaregebaseerd zijn. In een hardware-gebaseerd RAID product, beheert een fysieke controller de array. De controller kan ook worden ontworpen om schijfindelingen zoals SATA en SCSI te ondersteunen. Een fysieke RAID-controller kan ook worden ingebouwd in het moederbord van een server.

Bij softwarematige RAID maakt de controller gebruik van de bronnen van het hardwaresysteem, zoals de centrale processor en het geheugen. Hoewel deze dezelfde functies uitvoert als een hardwarematige RAID-controller, kan een softwarematige RAID-controller de prestaties minder verbeteren en de prestaties van andere toepassingen op de server nadelig beïnvloeden.

Als een software-gebaseerde RAID implementatie niet compatibel is met het boot-up proces van een systeem, en hardware-gebaseerde RAID controllers zijn te duur, dan is een firmware of driver-gebaseerde RAID een andere mogelijke optie.

Firmware-gebaseerde RAID controller chips bevinden zich op het moederbord, en alle operaties worden uitgevoerd door de CPU, vergelijkbaar met software-gebaseerde RAID. Bij firmware wordt het RAID-systeem echter pas geïmplementeerd aan het begin van het opstartproces. Zodra het besturingssysteem is geladen, neemt het stuurprogramma de RAID-functionaliteit over. Een firmware RAID-controller is niet zo duur als een hardware-optie, maar vormt wel een grotere belasting voor de CPU van de computer. Firmware-gebaseerde RAID wordt ook wel hardware-assisted software RAID, hybride model RAID en fake RAID genoemd.

RAID levels

Raid apparaten maken gebruik van verschillende versies, levels genoemd. Het originele document dat de term bedacht en het RAID setup concept ontwikkelde definieerde zes RAID niveaus — 0 tot 5. Dit genummerde systeem stelde IT-ers in staat om RAID versies te onderscheiden. Het aantal niveaus is sindsdien uitgebreid en is onderverdeeld in drie categorieën: standaard, geneste en niet-standaard RAID niveaus.

Standaard RAID niveaus

RAID 0. Deze configuratie heeft striping, maar geen redundantie van gegevens. Het biedt de beste prestaties, maar biedt geen fouttolerantie.

RAID 0 diagram

RAID 1. Deze configuratie, ook bekend als disk mirroring, bestaat uit ten minste twee schijven die de opslag van gegevens dupliceren. Er is geen striping. De leesprestaties zijn beter omdat beide schijven tegelijkertijd kunnen worden gelezen. De schrijfprestaties zijn hetzelfde als bij opslag op een enkele schijf.

RAID 1 diagram

RAID 2. Deze configuratie maakt gebruik van striping over schijven, waarbij op sommige schijven foutcontrole- en correctie-informatie (ECC) wordt opgeslagen. RAID 2 maakt ook gebruik van een speciale Hamming-code pariteit; een lineaire vorm van foutcorrectiecode. RAID 2 heeft geen voordelen boven RAID 3 en wordt niet meer gebruikt.

RAID 2 diagram

RAID 3. Deze techniek maakt gebruik van striping en wijdt één schijf aan de opslag van pariteitsinformatie. De ingebouwde ECC-informatie wordt gebruikt om fouten te detecteren. Herstel van gegevens vindt plaats door berekening van de exclusieve informatie die op de andere schijven is opgeslagen. Aangezien een I/O-bewerking alle schijven tegelijk aanspreekt, kan RAID 3 de I/O niet overlappen. Om deze reden is RAID 3 het beste voor systemen met één gebruiker en lange opnametoepassingen.

RAID 3 diagram

RAID 4. Dit niveau gebruikt grote strepen, wat betekent dat een gebruiker records van elke schijf kan lezen. Overlappende I/O kan dan worden gebruikt voor leesbewerkingen. Aangezien alle schrijfbewerkingen nodig zijn om de pariteitsschijf bij te werken, is er geen overlappende I/O mogelijk.

RAID 4 diagram

RAID 5. Dit niveau is gebaseerd op pariteitsstriping op blokniveau. De pariteitsinformatie wordt over elke schijf gestriped, zodat de array zelfs kan blijven functioneren als een schijf uitvalt. De architectuur van de array staat lees- en schrijfbewerkingen toe op meerdere schijven, wat resulteert in betere prestaties dan die van een enkele schijf, maar niet zo hoog als die van een RAID 0-array. RAID 5 vereist ten minste drie schijven, maar het wordt vaak aanbevolen om ten minste vijf schijven te gebruiken om prestatieredenen.

RAID 5 arrays worden over het algemeen beschouwd als een slechte keuze voor gebruik op schrijf-intensieve systemen vanwege de prestatie-impact die gepaard gaat met het schrijven van pariteitsgegevens. Wanneer een schijf uitvalt, kan het lang duren om een RAID 5 array weer op te bouwen.

RAID 5 diagram

RAID 6. Deze techniek is vergelijkbaar met RAID 5, maar omvat een tweede pariteitsschema verdeeld over de schijven in de array. Het gebruik van extra pariteit stelt de array in staat om te blijven functioneren, zelfs als twee schijven tegelijkertijd uitvallen. Deze extra bescherming gaat echter ten koste van een prijs. RAID 6 arrays hebben vaak tragere schrijfprestaties dan RAID 5 arrays.

RAID 6 schema

Nested RAID-niveaus

Sommige RAID-niveaus worden nested RAID genoemd omdat ze zijn gebaseerd op een combinatie van RAID-niveaus. Hier volgen enkele voorbeelden van geneste RAID-niveaus.

RAID 10 (RAID 1+0). Door een combinatie van RAID 1 en RAID 0 wordt dit niveau vaak RAID 10 genoemd. Dit niveau biedt hogere prestaties dan RAID 1, maar tegen veel hogere kosten. In RAID 1+0 worden de gegevens gespiegeld en de spiegels zijn gestriped.

RAID 10 diagram

RAID 01 (RAID 0+1). RAID 0+1 is vergelijkbaar met RAID 1+0, behalve dat de data organisatie methode iets anders is. In plaats van het maken van een spiegel en vervolgens strippen van de spiegel, RAID 0 + 1 maakt een stripe set en dan spiegelt de stripe set.

RAID 03 (RAID 0 + 3, ook bekend als RAID 53 of RAID 5 + 3). Dit niveau gebruikt striping (in RAID 0-stijl) voor de virtuele schijfblokken van RAID 3. Dit biedt hogere prestaties dan RAID 3, maar tegen hogere kosten.

RAID 50 (RAID 5+0). Deze configuratie combineert RAID 5 gedistribueerde pariteit met RAID 0 striping om de prestaties van RAID 5 te verbeteren zonder de gegevensbescherming te verminderen.

Niet-standaard RAID-niveaus

Niet-standaard RAID-niveaus verschillen van standaard RAID-niveaus en zijn meestal ontwikkeld door bedrijven of organisaties voor voornamelijk eigen gebruik. Hier volgen enkele voorbeelden.

RAID 7. Een niet-standaard RAID-niveau gebaseerd op RAID 3 en RAID 4 dat caching toevoegt. Het omvat een real-time embedded OS als controller, caching via een high-speed bus en andere kenmerken van een stand-alone computer.

Adaptive RAID. Dit niveau stelt de RAID-controller in staat om te beslissen hoe de pariteit op de schijven wordt opgeslagen. Hij kiest tussen RAID 3 en RAID 5, afhankelijk van welk type RAID set beter presteert met het type gegevens dat naar de schijven wordt geschreven.

Linux MD RAID 10. Dit niveau, geleverd door de Linux kernel, ondersteunt de creatie van geneste en niet-standaard RAID arrays. Linux software RAID ondersteunt ook het maken van standaard RAID 0, RAID 1, RAID 4, RAID 5 en RAID 6 configuraties.

Voordelen van RAID

Voordelen van RAID zijn onder andere de volgende.

  • Een verbetering in kosten-effectiviteit omdat goedkopere schijven in grote aantallen worden gebruikt.
  • Door het gebruik van meerdere harde schijven kan RAID de prestaties van een enkele harde schijf verbeteren.
  • Verhoogde snelheid van de computer en betrouwbaarheid na een crash — afhankelijk van de configuratie.
  • Lezen en schrijven kan sneller worden uitgevoerd dan met een enkele schijf met RAID 0. Dit komt doordat een bestandssysteem wordt opgesplitst en verdeeld over schijven die samen aan hetzelfde bestand werken.
  • Er is een verhoogde beschikbaarheid en veerkracht met RAID 5. Met spiegeling kunnen RAID-arrays twee schijven hebben die dezelfde gegevens bevatten, zodat de ene blijft werken als de andere uitvalt.

Achterzijden van het gebruik van RAID

RAID heeft echter ook nadelen. Enkele daarvan zijn:

  • Nested RAID-niveaus zijn duurder om te implementeren dan traditionele RAID-niveaus omdat ze een groter aantal schijven vereisen.
  • De kosten per gigabyte aan opslagapparaten zijn hoger voor nested RAID omdat veel van de schijven worden gebruikt voor redundantie.
  • Wanneer een schijf uitvalt, neemt de waarschijnlijkheid toe dat een andere schijf in de array ook snel zal uitvallen, wat waarschijnlijk zou resulteren in gegevensverlies. Dit komt omdat alle schijven in een RAID-array op hetzelfde moment zijn geïnstalleerd, dus alle schijven zijn onderhevig aan dezelfde hoeveelheid slijtage.
  • Sommige RAID-niveaus (zoals RAID 1 en 5) kunnen slechts een enkele schijfstoring verdragen.
  • RAID-arrays, en de gegevens erin, zijn kwetsbaar totdat een defecte schijf is vervangen en de nieuwe schijf is gevuld met gegevens.
  • Omdat schijven nu een veel grotere capaciteit hebben dan toen RAID voor het eerst werd geïmplementeerd, duurt het veel langer om defecte schijven opnieuw op te bouwen.
  • Als een schijf defect raakt, is er een kans dat de resterende schijven slechte sectoren of onleesbare gegevens bevatten — waardoor het onmogelijk kan zijn de array volledig te herstellen.

Nested RAID levels pakken deze problemen echter aan door een grotere mate van redundantie te bieden, waardoor de kans op een storing op array-niveau als gevolg van gelijktijdige schijfstoringen aanzienlijk wordt verkleind.

Geschiedenis van RAID

De term RAID werd in 1987 bedacht door David Patterson, Randy Katz en Garth A. Gibson. In hun technisch rapport van 1988, “A Case for Redundant Arrays of Inexpensive Disks (RAID)”, betoogden de drie dat een array van goedkope schijven de prestaties van de topschijven van die tijd kon verslaan. Door gebruik te maken van redundantie zou een RAID array betrouwbaarder kunnen zijn dan een enkele diskdrive.

Hoewel dit rapport het eerste was dat een naam gaf aan het concept, werd het gebruik van redundante schijven al door anderen besproken. Geac Computer Corp.’s Gus German en Ted Grunau noemden dit idee voor het eerst MF-100. Norman Ken Ouchi van IBM vroeg in 1977 een octrooi aan voor de technologie, die later RAID 4 werd genoemd. In 1983 bracht Digital Equipment Corp. de schijven op de markt die later RAID 1 zouden worden, en in 1986 werd een ander IBM patent aangevraagd voor wat later RAID 5 zou worden. Patterson, Katz en Gibson keken ook naar wat werd gedaan door bedrijven als Tandem Computers, Thinking Machines en Maxstor om hun RAID taxonomieën te definiëren.

Hoewel de RAID-niveaus die in het rapport van 1988 werden opgesomd in wezen namen gaven aan technologieën die reeds in gebruik waren, hielp het creëren van een gemeenschappelijke terminologie voor het concept de gegevensopslagmarkt te stimuleren om meer RAID-array producten te ontwikkelen.

Volgens Katz werd de term goedkoop in het acroniem al snel vervangen door onafhankelijk door industriële leveranciers vanwege de implicaties van lage kosten.

De toekomst van RAID

RAID is niet helemaal dood, maar veel analisten zeggen dat de technologie in de afgelopen jaren verouderd is geraakt. Alternatieven zoals erasure coding bieden een betere gegevensbescherming (zij het tegen een hogere prijs), en zijn ontwikkeld met de bedoeling de zwakke punten van RAID aan te pakken. Naarmate de capaciteit van schijven toeneemt, neemt ook de kans op fouten met een RAID-array toe, en de capaciteiten nemen voortdurend toe.

De opkomst van solid-state drives (SSD’s) wordt ook gezien als een vermindering van de behoefte aan RAID. SSD’s hebben geen bewegende delen en gaan niet zo vaak stuk als harde schijven. SSD-arrays maken vaak gebruik van technieken zoals wear leveling in plaats van RAID voor gegevensbescherming. Hyperscale computing maakt RAID ook overbodig door gebruik te maken van redundante servers in plaats van redundante schijven.

Terwijl blijft RAID een ingebakken onderdeel van data-opslag en brengen grote technologie-leveranciers nog steeds RAID-producten uit. IBM heeft IBM Distributed RAID uitgebracht met zijn Spectrum Virtualize V7.6, dat RAID-prestaties belooft te verbeteren. De nieuwste versie van Intel Rapid Storage Technology ondersteunt RAID 0, RAID 1, RAID 5 en RAID 10, en NetApp ONTAP beheersoftware gebruikt RAID om bescherming te bieden tegen maximaal drie gelijktijdige schijfstoringen. Het Dell EMC Unity-platform biedt ook ondersteuning voor RAID 1/0, RAID 5 en RAID 6.

Laat een antwoord achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *