RAID (Redundant Array of Independent Disks), oorspronkelijk bekend als Redundant Array of Inexpensive Disks, werd voor het eerst voorgesteld door professor DA Patterson van de University of California, Berkeley in de paper "A Case of Redundant Array of Inexpensive Disks" in 1988. In die tijd waren schijven met een grote capaciteit duur, dus het basisidee van RAID was om op organische wijze meerdere schijven met een kleine capaciteit en relatief goedkope schijven te combineren om de capaciteit, prestaties en betrouwbaarheid die gelijkwaardig zijn aan die van dure schijven met grote capaciteit tegen lagere kosten. Naarmate de kosten en prijzen van schijven bleven dalen, werd de term 'goedkoop' betekenisloos en besloot de RAID Advisory Board (RAB) 'goedkoop' te vervangen door 'onafhankelijk'.
Dit ontwerpidee van RAID werd snel door de industrie overgenomen. RAID-technologie, als een krachtige en zeer betrouwbare opslagtechnologie, wordt op grote schaal toegepast. RAID maakt voornamelijk gebruik van datastriping-, mirroring- en datapariteitstechnologieën om hoge prestaties, betrouwbaarheid, fouttolerantie en schaalbaarheid te bereiken. Afhankelijk van de strategieën en architecturen voor het gebruiken of combineren van deze drie technologieën, kan RAID in verschillende niveaus worden verdeeld om aan de behoeften van verschillende datatoepassingen te voldoen. De oorspronkelijke RAID-niveaus RAID1-RAID5 werden in het artikel gedefinieerd door DA Patterson et al., en RAID0 en RAID6 zijn sinds 1988 uitgebreid. De afgelopen jaren hebben opslagleveranciers voortdurend RAID-niveaus geïntroduceerd, zoals RAID7, RAID10/01, RAID50, RAID53 en RAID100, maar er is geen uniforme standaard. Momenteel zijn de door de industrie erkende standaarden RAID0-RAID5, en de vier niveaus behalve RAID2 zijn ingesteld als industriële standaarden. De meest gebruikte RAID-niveaus in het daadwerkelijke toepassingsgebied zijn RAID0, RAID1, RAID3, RAID5, RAID6 en RAID10.
Vanuit implementatieperspectief wordt RAID hoofdzakelijk onderverdeeld in drie typen: software-RAID, hardware-RAID en hybride RAID. Bij software-RAID worden alle functies uitgevoerd door het besturingssysteem en de CPU, en er is geen onafhankelijke RAID-besturings-/verwerkingschip en I/O-verwerkingschip, dus de efficiëntie is het laagst. Hardware RAID is uitgerust met een speciale RAID-besturings-/verwerkingschip en I/O-verwerkingschip, evenals een arraybuffer, en neemt geen CPU-bronnen in beslag, maar de kosten zijn zeer hoog. Hybrid RAID heeft een RAID-besturings-/verwerkingschip, maar mist een I/O-verwerkingschip, en heeft de CPU en driverprogramma's nodig om te voltooien, en de prestaties en kosten liggen tussen software-RAID en hardware-RAID.
Elk RAID-niveau vertegenwoordigt een implementatiemethode en technologie, en er is geen onderscheid tussen hoge en lage niveaus. In praktische toepassingen moeten het juiste RAID-niveau en de specifieke implementatiemethode worden geselecteerd op basis van de kenmerken van gebruikersgegevenstoepassingen, en moeten de beschikbaarheid, prestaties en kosten uitgebreid in overweging worden genomen.
RAID, namelijk Redundant Array of Independent Disks, wordt meestal afgekort als disk array. Kort gezegd is RAID een schijfsubsysteem dat bestaat uit meerdere onafhankelijke, krachtige schijfstations, die betere opslagprestaties en gegevensredundantietechnologie bieden dan een enkele schijf. RAID is een beheertechnologie voor meerdere schijven die kosteneffectieve, hoge gegevensbetrouwbaarheid en krachtige opslag biedt aan de hostomgeving. De definitie van RAID door SNIA is: een disk-array waarin een deel van de fysieke opslagruimte wordt gebruikt om de redundante informatie van gebruikersgegevens op te slaan die in de resterende ruimte zijn opgeslagen. Wanneer een schijf of toegangspad uitvalt, kan de redundante informatie worden gebruikt om de gebruikersgegevens te reconstrueren. Hoewel schijfstriping niet voldoet aan de definitie van RAID, wordt het gewoonlijk ook RAID genoemd (dwz RAID0).
De oorspronkelijke bedoeling van RAID was om hoogwaardige opslagfuncties en redundante gegevensbeveiliging voor grote servers te bieden. In het hele systeem wordt RAID beschouwd als een opslagruimte die bestaat uit twee of meer schijven, en de I/O-prestaties van het opslagsysteem worden verbeterd door gelijktijdig gegevens op meerdere schijven te lezen en te schrijven. De meeste RAID-niveaus beschikken over volledige gegevensverificatie- en correctiemaatregelen, en zelfs spiegelmethoden, die de betrouwbaarheid van het systeem aanzienlijk vergroten, en dat is waar "Redundant" vandaan komt.
Hier moeten we JBOD (Just a Bunch of Disks) vermelden. Aanvankelijk werd JBOD gebruikt om een schijfverzameling weer te geven zonder besturingssoftware om gecoördineerde controle te bieden, wat de belangrijkste factor is die RAID onderscheidt van JBOD. Momenteel verwijst JBOD vaak naar een schijfbehuizing, ongeacht of deze RAID-functionaliteit biedt of niet.
De twee belangrijkste doelstellingen van RAID zijn het verbeteren van de gegevensbetrouwbaarheid en I/O-prestaties. In de disk-array zijn de gegevens verspreid over meerdere schijven, maar voor het computersysteem lijkt het op één enkele schijf. Redundantie wordt bereikt door dezelfde gegevens naar meerdere schijven te schrijven (doorgaans spiegelen) of door de berekende pariteitsgegevens naar de array te schrijven, zodat er geen gegevensverlies optreedt als een enkele schijf uitvalt. Bij sommige RAID-niveaus kunnen meerdere schijven tegelijkertijd defect raken, zoals bij RAID6, waarbij twee schijven tegelijkertijd beschadigd kunnen raken. Onder een dergelijk redundantiemechanisme kan de defecte schijf worden vervangen door een nieuwe schijf, en RAID zal de verloren gegevens automatisch reconstrueren op basis van de gegevens en pariteitsgegevens op de resterende schijven om de consistentie en integriteit van de gegevens te garanderen. De gegevens worden verspreid en opgeslagen op meerdere verschillende schijven in RAID, en het gelijktijdig lezen en schrijven van gegevens is veel beter dan dat van een enkele schijf, waardoor een hogere geaggregeerde I/O-bandbreedte kan worden verkregen. Uiteraard zal de disk-array de totaal beschikbare opslagruimte van alle schijven verkleinen, waarbij ruimte wordt opgeofferd in ruil voor hogere betrouwbaarheid en prestaties. Het gebruik van de opslagruimte van RAID1 is bijvoorbeeld slechts 50%, RAID5 verliest de opslagcapaciteit van één schijf en het ruimtegebruik is (n-1)/n.
De disk-array kan de continue werking van het systeem zonder onderbreking garanderen wanneer sommige schijven (enkel of meervoudig, afhankelijk van de implementatie) beschadigd zijn. Tijdens het proces van het reconstrueren van de gegevens van de defecte schijf naar de nieuwe schijf kan het systeem normaal blijven functioneren, maar zullen de prestaties tot op zekere hoogte afnemen. Sommige schijfarrays moeten worden uitgeschakeld wanneer u schijven toevoegt of verwijdert, terwijl andere hot-swapping ondersteunen, waardoor schijfstations kunnen worden vervangen zonder dat ze hoeven te worden afgesloten. Deze high-end disk-array wordt voornamelijk gebruikt in applicatiesystemen met hoge eisen aan betrouwbaarheid, waarbij het systeem niet kan worden uitgeschakeld of de uitschakeltijd zo kort mogelijk moet zijn. Over het algemeen kan RAID de gegevensback-up niet vervangen. Het is machteloos tegen gegevensverlies veroorzaakt door niet-schijfstoringen, zoals virussen, menselijke vernietiging, onbedoelde verwijdering, enz. Op dit moment is het gegevensverlies relatief aan het besturingssysteem, het bestandssysteem, de volumebeheerder of het applicatiesysteem. Voor het RAID-systeem zelf zijn de gegevens intact en is er geen verlies opgetreden. Daarom zijn gegevensback-ups, noodherstel en andere gegevensbeschermingsmaatregelen zeer noodzakelijk, die RAID aanvullen en de beveiliging van gegevens op verschillende niveaus beschermen om gegevensverlies te voorkomen.
Er zijn drie sleutelconcepten en technologieën in RAID: mirroring, data striping en datapariteit. Door te spiegelen worden gegevens naar meerdere schijven gekopieerd. Aan de ene kant kan het de betrouwbaarheid verbeteren, en aan de andere kant kan het tegelijkertijd gegevens van twee of meer kopieën lezen om de leesprestaties te verbeteren. Het is duidelijk dat de schrijfprestaties van spiegelen iets lager zijn, en dat het meer tijd kost om ervoor te zorgen dat de gegevens correct naar meerdere schijven worden geschreven. Datastriping slaat dataplakken op meerdere verschillende schijven op, en meerdere dataplakken vormen samen een volledige datakopie, die verschilt van de meerdere kopieën van mirroring en meestal wordt gebruikt uit prestatieoverwegingen. Datastriping heeft een hogere granulariteit van gelijktijdigheid. Bij toegang tot gegevens is het mogelijk om tegelijkertijd gegevens op verschillende schijven te lezen en te schrijven, waardoor een zeer aanzienlijke verbetering van de I/O-prestaties wordt verkregen. Gegevenspariteit maakt gebruik van redundante gegevens voor detectie en reparatie van gegevensfouten. De redundante gegevens worden meestal berekend door algoritmen zoals Hamming-code en XOR-bewerking. Het gebruik van de pariteitsfunctie kan de betrouwbaarheid, robuustheid en fouttolerantie van de disk-array aanzienlijk verbeteren. Voor gegevenspariteit moeten echter gegevens van meerdere plaatsen worden gelezen en berekeningen en vergelijkingen worden uitgevoerd, wat de systeemprestaties zal beïnvloeden. Verschillende RAID-niveaus gebruiken een of meer van de drie bovengenoemde technologieën om verschillende gegevensbetrouwbaarheid, beschikbaarheid en I/O-prestaties te verkrijgen. Wat betreft het type RAID (zelfs nieuwe niveaus of typen) dat moet worden ontworpen of welke RAID-modus moet worden toegepast, is het noodzakelijk om een redelijke keuze te maken op basis van een diepgaand inzicht in de systeemvereisten en een uitvoerige evaluatie van de betrouwbaarheid, prestaties en kosten van het systeem. een compromiskeuze maken.
-
Grote capaciteit: Dit is een duidelijk voordeel van RAID. Het breidt de schijfcapaciteit uit en het RAID-systeem dat uit meerdere schijven bestaat, heeft een enorme opslagruimte. Nu kan de capaciteit van een enkele schijf meer dan 1TB bereiken, zodat de opslagcapaciteit van RAID het PB-niveau kan bereiken en aan de meeste opslagvereisten kan worden voldaan. Over het algemeen is de beschikbare capaciteit van RAID kleiner dan de totale capaciteit van alle aangesloten schijven. Verschillende niveaus van RAID-algoritmen vereisen een bepaalde redundantieoverhead, en de specifieke capaciteitsoverhead is gerelateerd aan het aangenomen algoritme. Als het RAID-algoritme en de capaciteit bekend zijn, kan de beschikbare capaciteit van RAID worden berekend. Normaal gesproken ligt de capaciteitsbenutting van RAID tussen 50% en 90%.
-
Hoge prestaties: De hoge prestaties van RAID profiteren van de datastriping-technologie. De I/O-prestaties van een enkele schijf worden beperkt door computertechnologieën zoals interface en bandbreedte, en vormen vaak de bottleneck voor de systeemprestaties. Via datastriping verdeelt RAID de data-I/O naar elke aangesloten schijf, waardoor de geaggregeerde I/O-prestaties worden verkregen die meerdere malen hoger zijn dan die van een enkele schijf.
-
Betrouwbaarheid: Beschikbaarheid en betrouwbaarheid zijn andere belangrijke kenmerken van RAID. Theoretisch zou de betrouwbaarheid van een RAID-systeem dat uit meerdere schijven bestaat slechter moeten zijn dan die van een enkele schijf. Er is hier sprake van een impliciete aanname: een enkele schijfstoring zorgt ervoor dat de gehele RAID niet beschikbaar is. RAID maakt gebruik van technologieën voor gegevensredundantie, zoals spiegeling en gegevenspariteit, om deze veronderstelling te doorbreken. Mirroring is de meest primitieve redundantietechnologie, waarbij de gegevens op een bepaalde groep schijfstations volledig worden gekopieerd naar een andere groep schijfstations om ervoor te zorgen dat er altijd een gegevenskopie beschikbaar is. Vergeleken met de 50% redundantieoverhead van mirroring is de datapariteit veel kleiner en wordt de pariteitsredundante informatie gebruikt om de gegevens te verifiëren en te corrigeren. De redundantietechnologie van RAID verbetert de beschikbaarheid en betrouwbaarheid van gegevens aanzienlijk en zorgt ervoor dat wanneer meerdere schijven uitvallen, er geen gegevens verloren gaan en de continue werking van het systeem niet wordt beïnvloed.
-
Beheersbaarheid: In feite is RAID een virtualisatietechnologie die meerdere fysieke schijfstations virtualiseert tot een logische schijf met grote capaciteit. Voor het externe hostsysteem is RAID een enkele, snelle en betrouwbare schijf met grote capaciteit. Op deze manier kunnen gebruikers de applicatiesysteemgegevens op deze virtuele schijf ordenen en opslaan. Vanuit het perspectief van de gebruikerstoepassing kan het het opslagsysteem eenvoudig en gemakkelijk te gebruiken en te beheren maken. Omdat RAID intern een groot aantal opslagbeheerwerkzaamheden heeft uitgevoerd, hoeft de beheerder slechts één virtuele schijf te beheren, wat een hoop beheerwerk kan besparen. RAID kan op dynamische wijze schijfstations toevoegen of verwijderen en automatisch gegevensverificatie en gegevensreconstructie uitvoeren, wat het beheerwerk aanzienlijk kan vereenvoudigen.