Waarom is RAID5 een "must have"? Zie wat "RAID" is in andere woordenboeken

Een kort overzicht van RAID-technologie

Dit document beschrijft de basiselementen van RAID-technologie en geeft een overzicht van de verschillende RAID-niveaus.

  • RAID 2, 3

    INVAL 4, 5

    Tafel: voor- en nadelen van grote RAID-niveaus

INVAL is een acroniem voor Redundante array van onafhankelijke schijven.

Een disk-array is een verzameling schijfapparaten die samenwerken om de snelheid en betrouwbaarheid van een I/O-systeem te verhogen. Deze set apparaten wordt beheerd door een speciale RAID-controller ( array-controller:), die de functies omvat van het rangschikken van gegevens in een array; en voor de rest van het systeem kan de hele array worden weergegeven als een enkel logisch I/O-apparaat. Door de parallelle uitvoering van lees- en schrijfbewerkingen op meerdere schijven, biedt de array een hogere uitwisselingssnelheid in vergelijking met één grote schijf.

Arrays kunnen ook redundante gegevensopslag bieden, zodat gegevens niet verloren gaan als een van de schijven uitvalt. Afhankelijk van het RAID-niveau worden gegevens gespiegeld of verdeeld over schijven.

RAID-niveaus

Elk van de vier belangrijkste RAID-niveaus gebruikt een unieke methode om gegevens naar schijven te schrijven, en daarom biedt elk niveau verschillende voordelen. RAID-niveaus 1,3 en 5 bieden spiegeling of opslag van pariteitsbits; en stelt u daarom in staat om informatie te herstellen in het geval van een storing van een van de schijven.

RAID-niveau 0

RAID 0-technologie staat ook bekend als data striping ( gegevens striping). Met deze technologie wordt informatie opgesplitst in brokken (vaste hoeveelheden gegevens, gewoonlijk blokken genoemd); en deze chunks worden parallel geschreven naar en gelezen van schijven. In termen van prestaties betekent dit twee belangrijke: Voordelen:

    Verhoogt de sequentiële I/O-doorvoer door gelijktijdig meerdere interfaces te laden.

    verminderde latentie van willekeurige toegang; meerdere verzoeken aan verschillende kleine informatiesegmenten kunnen tegelijkertijd worden uitgevoerd.

Gebrek: RAID 0 is puur om prestatieredenen en biedt geen gegevensredundantie. Daarom is bij schijfstoringen informatieherstel van back-upmedia vereist.

Array-controller:

Schijf 1

Schijf 2

Schijf 3

Schijf 4

Schijf 5

Segment 1

Segment 2

Segment 3

Segment 4

Segment 5

Segment 6

Segment 7

Segment 8

Segment 9

Segment 10

rijst. 1. Array-bewerkingsschema en gegevensdistributie over schijven voor RAID 0. Opmerking: segment- dit zijn 2 schijfblokken van 512 bytes.

RAID-niveau 1

RAID 1-technologie staat ook bekend als mirroring ( schijf spiegelen). In dit geval worden kopieën van elk stukje informatie op een aparte schijf opgeslagen; of, meestal heeft elke (gebruikte) schijf een "double" die opslaat exacte kopie deze schijf. Als een van de primaire schijven uitvalt, wordt deze vervangen door zijn "tweeling". Willekeurige leesprestaties kunnen worden verbeterd door de "dubbel" te gebruiken met de kop dichter bij het vereiste blok om informatie te lezen.

De opnametijd kan zijn: een beetje meer dan voor één schijf, afhankelijk van de schrijfstrategie: schrijven naar twee schijven kan parallel (voor snelheid) of strikt sequentieel (voor betrouwbaarheid) worden gedaan.

RAID 1 is zeer geschikt voor toepassingen die een hoge betrouwbaarheid en een lage leeslatentie vereisen en waar kostenminimalisatie niet vereist is. RAID 1 biedt redundante opslag van informatie, maar u moet in ieder geval een reservekopie van de gegevens bewaren omdat: dit is de enige manier om per ongeluk verwijderde bestanden of mappen te herstellen.

Schijf 1 (gegevens)

Schijf 2 (kopie van schijf 1)

Schijf 3 (gegevens)

Schijf 4 (kopie van schijf 3)

Schijf 5 (gratis)

Segment 1

Segment 1

Segment 2

Segment 2

Segment 3

Segment 3

Segment 4

Segment 4

rijst. 2. Gegevensdistributie over schijven voor RAID 1.

RAID-niveaus 2 en 3

RAID-niveaus 2 en 3 bieden parallelle ("unison") werking van alle schijven. Deze architectuur vereist de opslag van pariteitsbits voor elk stukje informatie dat over de schijven wordt verdeeld. Het enige verschil tussen RAID 3 en RAID 2 is dat RAID 2 meerdere schijven gebruikt om pariteitsbits op te slaan, terwijl RAID 3 er maar één gebruikt. RAID 2 wordt zelden gebruikt.

Als een datadrive uitvalt, kan het systeem de inhoud herstellen van de inhoud van de overige datadrives en de pariteitsdrive.

De prestatie is in dit geval zeer hoog voor grote hoeveelheden informatie, maar kan vrij bescheiden zijn voor kleine volumes, aangezien het overlappende lezen van verschillende kleine informatiesegmenten onmogelijk is.

Schijf 1 (gegevens)

Schijf 2 (gegevens)

Schijf 3 (gegevens)

Schijf 4 (gegevens)

Schijf 5 (pariteitsinformatie)

Pariteitsbyte

Pariteitsbyte

rijst. 3. Gegevensdistributie over schijven voor RAID 3.

RAID-niveaus 4 en 5

RAID 4 corrigeert enkele van de nadelen van RAID 3 door grote hoeveelheden informatie te gebruiken die over alle schijven zijn verspreid, behalve de pariteitsschijf. In dit geval wordt voor kleine hoeveelheden informatie alleen de schijf gebruikt waarop de benodigde informatie staat. Dit betekent dat meerdere leesverzoeken gelijktijdig kunnen worden uitgevoerd. Schrijfverzoeken genereren echter vergrendelingen bij het schrijven van pariteitsinformatie. RAID 4 wordt zelden gebruikt.

RAID 5 lijkt erg op RAID 4, maar verwijdert de bijbehorende blokkering. Het verschil is dat de pariteitsinformatie over alle schijven in de array wordt verdeeld. In dit geval zijn zowel gelijktijdige lees- als schrijfbewerkingen mogelijk.

Deze technologie is zeer geschikt voor toepassingen die met kleine hoeveelheden data werken, zoals transactieverwerkingssystemen.

Schijf 1

Schijf 2

Schijf 3

Schijf 4

Schijf 5

Pariteitssegment

Segment 1

Segment 2

Segment 3

Segment 4

Segment 5

Pariteitssegment

Segment 6

Segment 7

Segment 8

Segment 9

Segment 10

Pariteitssegment

Segment 11

Segment 12

rijst. 4. Gegevensdistributie over schijven voor RAID 5.

Voor- en nadelen van grote RAID-niveaus

RAID-niveau

Betrouwbaarheidsmechanisme

Effectieve arraycapaciteit

Uitvoering

Toepassingsgebied

toepassingen zonder noemenswaardige betrouwbaarheidseisen

spiegelen

hoog of gemiddeld

toepassingen zonder aanzienlijke kostenvereisten

pariteit

applicaties die werken met grote hoeveelheden data (graphics, CAD/CAM, etc.)

pariteit

applicaties die met kleine hoeveelheden data werken (transactieverwerking)

Met RAID 5-technologie kunt u ten minste 3 harde schijven combineren in een enkele array. Het belangrijkste kenmerk is dat controlesommen gelijkmatig over de ruimte worden verdeeld, waarmee u verloren gegevens kunt retourneren. De techniek heeft echter zijn eigen nuances, dus de eigenlijke vraag is hoe RAID 5 kan worden hersteld. We zullen het hebben over de redenen voor het falen, de belangrijkste RAID-niveaus en ook een gedetailleerde herstelprocedure presenteren.

Mogelijke oorzaken van storing

Redundantie van een RAID-array vergroot de kans op gegevensherstel, maar harde schijven zijn, net als elke andere techniek, natuurlijk gevoelig voor veelvoorkomende problemen:

  • onbedoelde verwijdering;
  • schade aan bestanden/mappen,
  • schade aan bestandssystemen,
  • de actie van kwaadaardige software.

Arrays zijn ook gevoelig voor invloeden van buitenaf: de harde schijf is gevallen, de server is afgebrand of er is water binnengekomen. Vaak gaat de RAID-controller zelf kapot. Goedkope modellen hebben een laag prijskaartje, niet alleen vanwege vereenvoudigde algoritmen. Er is altijd een kans om een ​​defect product te vinden.

Stroompieken of stroomuitval kunnen ertoe leiden dat de schijf uit de array wordt "uitgeworpen" en offline gaat, maar volledig functioneel en functioneel blijft. Het probleem kan liggen in de software of controller, die deze HDD gewoon niet kan zien.

Basis RAID-niveaus en hoe ze worden hersteld

De gebruiker kan op verschillende manieren gegevens herstellen, wat het niveau van de array bepaalt. We raden u aan om vertrouwd te raken met de bestaande niveaus die in moderne systemen worden gebruikt:

  • RAID0. De array biedt de hoogste prestaties vanwege het ontbreken van redundantie. Maar gegevensbeveiliging is minimaal, dus als een schijf kapot gaat, is het bijna onmogelijk om het systeem te herstellen zonder reparatie.
  • RAID1. Het systeem is niet erg snel, maar biedt een hoge gegevensbeveiliging. Het principe van "mirror" wordt gebruikt, wanneer alle gegevens worden gedupliceerd, terwijl er een kopie op een andere schijf staat. Als er informatie verloren gaat, wordt deze eenvoudig van de eerste schijf gekopieerd zonder de hele array te stoppen.
  • RAID5. Er wordt gebruik gemaakt van de verdeling van informatieblokken over de ruimte en het pariteitsprincipe. Als er maar één kapot gaat, blijft de HDD-array natuurlijk werken, maar op lagere snelheden.
  • RAID 10. Een combinatie van de eerste twee niveaus, het minimum aantal schijven is 4. Het principe van data mirroring wordt gebruikt.

Stapsgewijze instructies voor gegevensherstel

U kunt verwijderde gegevens zelf herstellen, maar alleen in die situaties waarin alle schijven in goede staat verkeren, de array eenvoudig "ingestort" is en er geen kritieke gegevens op de HDD staan. Als de informatie zeer waardevol is, experimenteer dan niet zelf. We raden aan om de hulp van specialisten in te schakelen. Bij een hardwarestoring moet u de harde schijf ondergeschikt maken. Pas daarna de "assemblage" van de array. Dit is een specifieke bewerking die problematisch is om alleen uit te voeren.

Softwareherstel

De procedure vereist een voorafgaande installatie van RAID Reconstructor of iets dergelijks. Je hebt ook een pc en kabels nodig waarmee je schijven kunt aansluiten. Als u geen schijven van de array op uw pc kunt aansluiten, moet u er niet eens aan beginnen. De instructie omvat stappen:

  1. De gezondheid van de HDD van de array betekent dat u ze als afzonderlijke media op de computer kunt aansluiten. Gebruik elke geschikte methode (SATA, SAS, IDE, enz.).
  2. Als de schijven eenmaal zijn aangesloten, moet u ze niet initialiseren, geen toegang krijgen tot gegevens en ze niet proberen te formatteren. De ideale optie is om met sectorgewijze kopieën te werken, aangezien de wijzigingen geen invloed hebben op de originele gegevens.
  3. Start het RAID Reconstructor-programma. Stel in het veld Type RAID5 in en stel het aantal schijven in. In ons voorbeeld zullen er drie zijn.
  4. In de verticale lijst, gescheiden door drie stippen, is het noodzakelijk om onze schijven aan te geven, dat wil zeggen hun afbeeldingen. Klik op Selecteer bestand. Selecteer in de verkenner de gewenste afbeeldingen.
  5. Klik op de knop Schijven openen en vervolgens op Analyseren.
  6. Klik in de volgende vensters op Volgende. De procedure scant alleen om de blokgrootte en andere parameters te bepalen. Vervolgens wordt een venster met een keuze aan parameters getoond.
  7. Stel de blokgrootte en startsector in (als deze uniek bekend zijn). Anders kunt u de vakjes overal aanvinken. Het pariteitstype is nog niet bekend, dus tests zullen nodig zijn. Verhoog het aantal sectoren voor de steekproef met 10 keer (tot 100 duizend) en klik vervolgens op Volgende.
  8. Is alles gelukt, dan ontvang je een eenduidig ​​(of dubbelzinnig) resultaat en advies.
  9. Bouw nu de hele array opnieuw op. Geef in het hoofdvenster het pad op waar de voltooide array zal worden gekopieerd en klik vervolgens op Kopiëren.

Met deze methode kunt u snel en gemakkelijk gegevens van RAID 5 herstellen. Indien nodig kunt u proberen te herstellen met Intel Rapid Storage Technology of R-Studio.

Hardware

Dit is een uiterst complexe methode en is meer gebaseerd op geluk. U kunt proberen de hardware te misleiden en toegang te krijgen tot de gegevens. Over het algemeen moet u deze stappen volgen:

  1. nummer de schijven in de array;
  2. kopieer sector voor sector elk van hen;
  3. sluit ze in de juiste volgorde aan op de controller.

De moeilijkheid zit hem niet alleen in het bepalen van de volgorde, maar ook in de onvoorspelbaarheid van het gedrag van de RAID-controllers. Het kan zijn dat ze deze aanpak niet accepteren of zelf een proces starten. Zorg ervoor dat de controller niet wordt geïnitialiseerd. Als dit niet kan worden vermeden, zorg dan voor een versnelde initialisatie. Met deze techniek kunt u de klonen laten werken zoals de originele array, of deze opnieuw maken, maar met dezelfde instellingen. Bedenk dat elke discrepantie uw kansen tenietdoet, dus de kans op succes zonder kennis en ervaring op dit gebied is uiterst klein.

Neem bij aanwezigheid van belangrijke gegevens alleen contact op met een gespecialiseerd servicecentrum. Veel "gaten en verplaatsingen" in de gegevens maken het werk veel moeilijker. Alleen ervaren professionals kunnen de "patronen" zien en geleidelijk waardevolle informatie herstellen. Soms moeten RAID5-hersteltechnici hun eigen algoritmen programmeren.

Wanneer u schijven in een RAID-array hebt gecrasht, is er een lijst met acties die niet worden aanbevolen. De eerste en belangrijkste stap is om niet te initialiseren totdat u de resterende bron en het type probleem hebt gevonden. Er zijn situaties waarin één schijf in een array een aantal jaren niet werkt (aanvaardbaar voor RAID5), maar dit blijft onopgemerkt. Na een storing of stroomstoot valt de array dan uit elkaar, maar de schijven blijven zichtbaar. De systeembeheerder verzamelt alles op zijn plaats, waarbij de initialisatie noodzakelijkerwijs wordt uitgevoerd. Onwetendheid over de informatie over de defecte HDD zal echter tot rampzalige resultaten leiden. Het resultaat is beschadigde gegevens of een dode partitie. De "gedropte" schijf brengt respectievelijk wijzigingen aan in de controlesommen, waardoor alle informatie wordt verpest.


  • versturen

    Als u geïnteresseerd bent in dit artikel, bent u blijkbaar een van de volgende problemen op uw computer tegengekomen of verwacht u deze binnenkort te krijgen:

    - er is duidelijk niet genoeg fysiek volume van de harde schijf als een enkele logische schijf. Meestal doet dit probleem zich voor bij het werken met grote bestanden (video, afbeeldingen, databases);
    - mist duidelijk de prestaties van de harde schijf. Meestal doet dit probleem zich voor bij het werken met niet-lineaire videobewerkingssystemen of wanneer een groot aantal gebruikers tegelijkertijd toegang hebben tot bestanden op de harde schijf;
    - mist duidelijk de betrouwbaarheid van de harde schijf. Meestal doet dit probleem zich voor wanneer u moet werken met gegevens die in geen geval verloren kunnen gaan of die altijd beschikbaar moeten zijn voor de gebruiker. De trieste ervaring leert dat zelfs de meest betrouwbare apparatuur soms kapot gaat en in de regel op het meest ongelegen moment.
    Het maken van een RAID-systeem op uw computer kan deze en enkele andere problemen oplossen.

    Wat is "RAID"?

    In 1987 publiceerden Patterson, Gibson en Katz van de University of California, Berkeley A Case for Redundant Arrays of Inexpensive Disks (RAID). In dit artikel worden de verschillende typen schijfarrays beschreven, ook wel RAID genoemd - Redundant Array of Independent (of Inexpensive) Disks. RAID is gebaseerd op het volgende idee: door meerdere kleine en/of goedkope schijven te combineren in een array, krijg je een systeem dat de duurste schijven overtreft in termen van volume, snelheid en betrouwbaarheid. Bovendien ziet zo'n systeem er vanuit het oogpunt van een computer uit als één enkele diskettedrive.
    Het is bekend dat de gemiddelde tijd tussen storingen van een disk-array de gemiddelde tijd tussen storingen van een enkele schijf is, gedeeld door het aantal schijven in de array. Hierdoor is de MTBF van de array voor veel toepassingen te kort. Een disk-array kan echter op verschillende manieren bestand worden gemaakt tegen een enkele schijfstoring.

    In het bovenstaande artikel zijn vijf typen (niveaus) schijfarrays gedefinieerd: RAID-1, RAID-2, ..., RAID-5. Elk type bood fouttolerantie en verschillende voordelen ten opzichte van een enkele schijf. Naast deze vijf typen is ook de RAID-0-schijfarray, die geen redundantie heeft, aan populariteit gewonnen.

    Wat zijn de RAID-niveaus en welke moet ik kiezen?

    RAID-0... Meestal gedefinieerd als GEEN redundante niet-pariteitsschijfgroep. RAID-0 wordt soms "Striping" genoemd in termen van de manier waarop informatie tussen de schijven in de array wordt geplaatst:

    Aangezien RAID-0 niet redundant is, zal het uitvallen van een enkele schijf resulteren in het uitvallen van de gehele array. Aan de andere kant biedt RAID-0 de maximale wisselkoers en schijfruimte-efficiëntie. Omdat RAID-0 geen complexe wiskundige of logische berekeningen vereist, zijn de implementatiekosten minimaal.

    Toepassingen: Audio- en videotoepassingen die hoge continue gegevensoverdrachtsnelheden vereisen die een enkele schijf niet kan bieden. Onderzoek uitgevoerd door Mylex om de optimale schijfsysteemconfiguratie voor een niet-lineair videobewerkingsstation te bepalen, toont bijvoorbeeld aan dat, vergeleken met een enkele schijf, een RAID-0-array van twee schijven een 96% hogere schrijf-/leessnelheid geeft van drie schijven - met 143% (volgens de Miro VIDEO EXPERT Benchmark-test).
    Het minimum aantal schijven in de "RAID-0"-array is 2 stuks.

    RAID-1... Beter bekend als "Mirroring", het is een paar schijven die dezelfde informatie bevatten en samen één logische schijf vormen:

    Er wordt geschreven naar beide schijven in elk paar. Gekoppelde schijven kunnen echter gelijktijdige leesbewerkingen uitvoeren. Zo kan "mirroring" de leessnelheid verdubbelen, maar de schrijfsnelheid blijft ongewijzigd. RAID-1 is 100% redundant en een enkele schijfstoring leidt niet tot uitval van de gehele array - de controller schakelt eenvoudig de lees-/schrijfbewerkingen over naar de resterende schijf.
    RAID-1 biedt de snelste prestaties van alle typen redundante arrays (RAID-1 tot RAID-5), vooral in omgevingen met meerdere gebruikers, maar gebruikt het slechtste schijfruimtegebruik. Omdat RAID-1 geen complexe wiskundige of logische berekeningen vereist, zijn de implementatiekosten minimaal.
    Het minimum aantal schijven in de "RAID-1"-array is 2 stuks.
    Meerdere RAID-1-arrays kunnen op hun beurt worden gecombineerd tot RAID-0 om de schrijfsnelheid te verhogen en de betrouwbaarheid van de gegevensopslag te garanderen. Deze configuratie wordt "two-level" RAID of RAID-10 (RAID 0 + 1) genoemd:


    Het minimum aantal schijven in een "RAID 0 + 1" array is 4 stuks.
    Scope: goedkope arrays waarbij de betrouwbaarheid van de dataopslag voorop staat.

    RAID-2... Verdeelt gegevens over strepen van sectorformaat over een aandrijfgroep. Sommige schijven zijn bestemd voor ECC-opslag (Error Correction Code). Aangezien de meeste schijven standaard ECC-codes voor elke sector opslaan, biedt RAID-2 niet veel voordeel ten opzichte van RAID-3 en wordt daarom praktisch niet gebruikt.

    RAID-3... Net als in het geval van RAID-2 worden gegevens gestript over strepen van één sector en is een van de schijven in de array gereserveerd voor het opslaan van pariteitsinformatie:

    RAID-3 vertrouwt op ECC-codes die in elke sector zijn opgeslagen om fouten te detecteren. In het geval van een storing van een van de schijven, is herstel van de informatie die erop is opgeslagen mogelijk door de exclusieve OR (XOR) te berekenen op basis van de informatie over de overige schijven. Elk item wordt gewoonlijk over alle schijven verdeeld en daarom is dit type array goed voor werk in toepassingen met veel verkeer met het schijfsubsysteem. Aangezien elke I/O-bewerking betrekking heeft op alle schijven in de array, kan RAID-3 niet meerdere bewerkingen tegelijkertijd uitvoeren. Daarom is RAID-3 goed voor een single-user, single-task-omgeving met lange schrijfbewerkingen. Om met korte records te werken, is synchronisatie van de rotatie van de aandrijvingen vereist, omdat anders een daling van de wisselkoers onvermijdelijk is. Het wordt zelden gebruikt, omdat: verliest aan RAID-5 in termen van schijfruimtegebruik. Implementatie is kostbaar.
    Het minimum aantal schijven in een "RAID-3"-array is 3 stuks.

    RAID-4... RAID-4 is identiek aan RAID-3, behalve dat de stripe-grootte veel groter is dan één sector. In dit geval wordt het lezen uitgevoerd vanaf één schijf (de schijf die de pariteitsinformatie opslaat niet meegerekend), dus het is mogelijk om meerdere leesbewerkingen tegelijkertijd uit te voeren. Omdat bij elke schrijfbewerking de inhoud van de pariteitsschijf moet worden bijgewerkt, kunnen echter niet meerdere schrijfbewerkingen tegelijkertijd worden uitgevoerd. Dit type array heeft geen merkbare voordelen ten opzichte van een RAID-5 array.
    RAID-5. Dit type array wordt soms een "rotated parity array" genoemd. Dit type array overwint met succes het inherente nadeel van RAID-4 - het onvermogen om gelijktijdig meerdere schrijfacties uit te voeren. Deze array gebruikt, net als RAID-4, strepen groot formaat, maar in tegenstelling tot RAID-4 wordt pariteitsinformatie niet op één schijf opgeslagen, maar op hun beurt op alle schijven:

    Schrijfbewerkingen verwijzen naar een gegevensstation en een ander station met pariteitsinformatie. Aangezien pariteitsinformatie voor verschillende strepen op verschillende schijven wordt opgeslagen, zijn meerdere gelijktijdige schrijfacties niet mogelijk, alleen in zeldzame gevallen wanneer gegevensstroken of pariteitsstroken zich op dezelfde schijf bevinden. Hoe meer schijven in de array, hoe minder vaak de locatie van de informatie- en pariteitstrepen samenvalt.
    Toepassingen: Betrouwbare arrays met hoog volume. Implementatie is kostbaar.
    Het minimum aantal schijven in de "RAID-5"-array is 3 stuks.

    RAID-1 of RAID-5?
    In vergelijking met RAID-1 gebruikt RAID-5 schijfruimte zuiniger, omdat het geen "kopie" van informatie opslaat, maar een controlesom voor redundantie. Hierdoor kan een willekeurig aantal schijven worden gecombineerd in RAID-5, waarvan er slechts één redundante informatie zal bevatten.
    Maar een hogere efficiëntie van het gebruik van schijfruimte gaat ten koste van een lagere communicatiesnelheid. Wanneer u informatie naar RAID-5 schrijft, moet u de pariteitsinformatie elke keer bijwerken. Om dit te doen, moet u bepalen welke pariteitsbits zijn gewijzigd. Eerst wordt de oude informatie die moet worden bijgewerkt, gelezen. Deze informatie wordt vervolgens XORed met de nieuwe informatie. Het resultaat van deze operatie is een bitmasker, waarbij elke bit = 1 betekent dat de waarde in de pariteitsinformatie in de corresponderende positie moet worden vervangen. De bijgewerkte pariteitsinformatie wordt vervolgens naar de juiste locatie geschreven. Daarom voert RAID-5 voor elk programmaverzoek om informatie te schrijven twee leesbewerkingen, twee schrijfbewerkingen en twee XOR's uit.
    Je moet betalen voor het feit dat schijfruimte efficiënter wordt gebruikt (in plaats van een kopie van de gegevens wordt een pariteitsblok opgeslagen): het kost extra tijd om pariteitsinformatie te genereren en te schrijven. Dit betekent dat de schrijfsnelheid van RAID-5 lager is dan die van RAID-1 bij een verhouding van 3: 5 of zelfs 1: 3 (dwz de schrijfsnelheid van RAID-5 is 3/5 tot 1/3 van de schrijfsnelheid snelheid RAID-1). Hierdoor heeft het geen zin om RAID-5 in software aan te maken. Ze kunnen ook niet worden aanbevolen wanneer de schrijfsnelheid van cruciaal belang is.

    Moet u een RAID-implementatiemethode kiezen - software of hardware?

    Na het lezen van de beschrijving van de verschillende RAID-niveaus, zult u merken dat er nergens specifieke hardwarevereisten worden genoemd die nodig zijn om RAID te implementeren. Hieruit kunnen we concluderen dat het enige dat nodig is om RAID te implementeren, is om het vereiste aantal schijven aan te sluiten op de controller die beschikbaar is in de computer en om speciale software op de computer te installeren. Dit is waar, maar niet helemaal!
    Er is inderdaad de mogelijkheid van software-implementatie van RAID. Een voorbeeld is het Microsoft Windows NT 4.0 Server OS, waarin software-implementatie van RAID-0, -1 en zelfs RAID-5 mogelijk is (Microsoft Windows NT 4.0 Workstation biedt alleen RAID-0 en RAID-1). Deze oplossing moet echter als extreem vereenvoudigd worden beschouwd, waardoor de mogelijkheden van de RAID-array niet volledig kunnen worden geïmplementeerd. Het volstaat te zeggen dat met een software-implementatie van RAID de hele lading van het plaatsen van informatie op schijven, het berekenen van besturingscodes, enz. valt op de centrale processor, wat natuurlijk niet de prestaties en betrouwbaarheid van het systeem verhoogt. Om dezelfde redenen zijn er hier praktisch geen servicefuncties en worden alle bewerkingen om een ​​defecte schijf te vervangen, een nieuwe schijf toe te voegen, het RAID-niveau te wijzigen, enz. uitgevoerd met volledig verlies van gegevens en met een volledig verbod op andere bewerkingen . Het enige voordeel van een softwarematige RAID-implementatie zijn de minimale kosten.
    - een gespecialiseerde controller bevrijdt de centrale processor van basisbewerkingen met RAID, en de efficiëntie van de controller is des te opvallender naarmate de complexiteit van de RAID hoger is;
    - controllers zijn in de regel uitgerust met stuurprogramma's waarmee u een RAID kunt maken voor bijna elk populair besturingssysteem;
    - het ingebouwde BIOS van de controller en de beheerprogramma's die eraan zijn gekoppeld, stellen de systeembeheerder in staat om eenvoudig schijven in de RAID aan te sluiten, los te koppelen of te vervangen, meerdere RAID-arrays te creëren, zelfs van verschillende niveaus, en de status van de disk-array te bewaken , enzovoort. Voor "geavanceerde" controllers kunnen deze bewerkingen "on the fly" worden uitgevoerd; zonder de systeemeenheid uit te schakelen. Veel bewerkingen kunnen op de "achtergrond" worden uitgevoerd, d.w.z. E. zonder het huidige werk te onderbreken en zelfs op afstand, d.w.z. vanaf elke (natuurlijk, als je toegang hebt) werkplek;
    - controllers kunnen worden uitgerust met een buffergeheugen ("cache"), waarin de laatste datablokken worden opgeslagen, wat bij frequente toegang tot dezelfde bestanden de snelheid van het schijfsysteem aanzienlijk kan verhogen.
    Het nadeel van hardware RAID is de relatief hoge kostprijs van de RAID-controllers. Maar aan de ene kant moet je voor alles betalen (betrouwbaarheid, performance, service). Aan de andere kant, onlangs, met de ontwikkeling van microprocessortechnologie, begonnen de kosten van RAID-controllers (vooral junior-modellen) sterk te dalen en werden ze vergelijkbaar met de kosten van gewone schijfcontrollers, waardoor RAID-systemen niet alleen in dure mainframes kunnen worden geïnstalleerd, maar ook in servers, instapniveau en zelfs werkstations.

    Hoe een RAID-controllermodel kiezen?

    Er zijn verschillende soorten RAID-controllers, afhankelijk van hun functionaliteit, ontwerp en kosten:
    1. Drive-controllers met RAID-functies.
    In feite is dit een gewone schijfcontroller, waarmee u, dankzij een speciale BIOS-firmware, schijven kunt combineren tot een RAID-array, in de regel van niveau 0, 1 of 0 + 1.

    Ultra (Ultra Wide) SCSI-controller van Mylex KT930RF (KT950RF).
    Uiterlijk verschilt deze controller niet van een gewone SCSI-controller. Alle "specialisatie" bevindt zich in het BIOS, dat als het ware in twee delen is verdeeld - "SCSI-configuratie" / "RAID-configuratie". Ondanks de lage kosten (minder dan $ 200), heeft deze controller een goede set functies:

    - combineren tot 8 schijven in RAID 0, 1 of 0 + 1;
    - steun Hot spare om "on the fly" een defecte schijf te vervangen;
    - de mogelijkheid van automatische (zonder tussenkomst van de operator) vervanging van een defecte aandrijving;
    - automatische controle van integriteit en identiteit (voor RAID-1) gegevens;
    - de aanwezigheid van een wachtwoord om toegang te krijgen tot het BIOS;
    - het programma RAIDPlus, dat informatie geeft over de staat van schijven in RAID;
    - stuurprogramma's voor DOS, Windows 95, NT 3.5x, 4.0

    Hardware-subsystemen INVAL 5 zijn verreweg het populairst voor bestandsservers voor algemene doeleinden, webservers en andere toepassingen voor gegevensopslag en -verwerking. Ze verhogen niet alleen de prestaties en verbeteren de gegevensbescherming, maar verlagen ook de kosten van een dergelijke oplossing terwijl de basiskenmerken en eigenschappen behouden of verbeterd worden.

    Efficiënte gegevensopslag is een kritiek punt in de computeromgeving van ondernemingen, en veel organisaties gebruiken RAID-arrays in server-, netwerk- en internetopslag- en verwerkingstoepassingen om de beschikbaarheid te verbeteren. RAID-technologieën kunnen IT-managers in staat stellen te profiteren van de belangrijkste prestatie- en operationele kenmerken die RAID 5-controllers en -subsystemen bieden via I/O-processors die de CPU vrijwaren van onderbrekingen tijdens schijfbewerkingen met lezen, wijzigen en schrijven.

    Qua implementatie kunnen RAID-controllers software (zogenaamde software), software en hardware en volledig hardware zijn.

    Software-RAID vereist geen speciale hardware. Alle gegevens worden verwerkt door de centrale verwerker. In dit geval wordt de standaard aandrijfaansluiting gebruikt. Het ongemak van een dergelijke RAID-implementatie is een extra aanzienlijke belasting van de processor, een vermindering van de processortijd voor het verwerken van verzoeken van applicaties en het besturingssysteem, aangezien de centrale processor alle RAID-bewerkingen verwerkt (XOR-berekening, gegevenstoewijzing en interruptverwerking voor deze taken).

    Hardware-software RAID is geïmplementeerd met behulp van een I / O-chip van een speciale microschakeling (ASIC) die XOR-bewerkingen kan uitvoeren. In dit geval wordt een deel van de operaties om de werking van de RAID-array te verzekeren door deze microschakeling overgenomen. Al het andere is nog steeds de centrale verwerkingseenheid die bewerkingen uitvoert met behulp van stuurprogramma's. Hardware / software RAID is in wezen een efficiëntere oplossing op basis van de centrale verwerkingseenheid van het systeem.

    Hardware RAID-controller is een RAID-subsysteem dat feitelijk onafhankelijk en zelfvoorzienend is voor zijn taken en praktisch geen CPU-bronnen vereist bij het werken met een RAID-array. Dit subsysteem heeft zijn eigen BIOS, waarvan de prompt te zien is tijdens het opstarten van het systeem, zijn eigen processor en zijn eigen geheugen, de controllercache genoemd.

    RAID-niveaus bepalen

    Er zijn verschillende basistypen (zogenaamde "niveaus") van RAID. Elk biedt een unieke combinatie van eigenschappen, waarvan er twee gegevensbescherming en prestaties zijn. Om te begrijpen hoe RAID 5 werkt, moet u rekening houden met de twee initiële RAID-niveaus, "0" en "1":

    RAID 0(stripe, stripe): dit RAID-niveau biedt gelijktijdig lezen/schrijven van gegevensblokken tegelijk naar alle schijven in de array, parallel. Deze parallelle gegevensverwerking maakt het mogelijk om informatie veel sneller te lezen en te schrijven naar een RAID 0-array dan naar een enkele schijf. RAID 0 wordt meestal gebruikt voor taken waarbij de gegevensverwerkingssnelheid veel belangrijker is dan de gegevensintegriteit, omdat als een van de schijven uitvalt, alle gegevens in de array verloren gaan.

    INVAL 1(spiegel): Dit RAID-niveau dupliceert gegevens op een of meer schijven. RAID 1, in tegenstelling tot RAID 0, wordt gebruikt voor toepassingen waarbij gegevensbescherming belangrijker is dan prestaties. Als een van de schijven uitvalt, wordt de informatie volledig opgeslagen op de tweede. RAID-1 biedt snellere leesbewerkingen dan een enkele schijf, maar het schrijven ernaar is langzamer. Omdat het beschermen van het besturingssysteem belangrijk is, wordt RAID 1 vaak gebruikt om de opstartschijf van een server te spiegelen (wanneer het besturingssysteem en de gegevens verspreid zijn over verschillende schijven of arrays).

    Hoe RAID 5 werkt

    INVAL 5 combineert eigenschappen RAID 0 en INVAL 1... Enerzijds vinden lees- en schrijfbewerkingen gelijktijdig (parallel) plaats met alle schijven in de array. Aan de andere kant, als een schijf uitvalt, gaat er geen informatie verloren.

    RAID 5 handhaaft de gegevensintegriteit van een schijfarray met ruimte die gelijk is aan de grootte van de kleinere schijf in de array. In een array van vijf schijven van 72 GB zou de beschikbare arraycapaciteit bijvoorbeeld 288 GB zijn. De door de gebruiker beschikbare capaciteit van een RAID 5-array wordt berekend met behulp van de formule: S * (N – 1), waar S- de capaciteit van de kleinste schijf in de array, N- het totale aantal schijven in de array.

    Het aantal schijven, hun capaciteit en de totale capaciteit van de RAID 5-array hebben geen invloed op de gegevensveiligheid. Net zoals een enkele schijf van 72 GB alle gegevens kan beschermen in een array van vijf schijven van in totaal 288 GB, in een array met 15 schijven van 300 GB, kan een enkele schijf van 300 GB een volledige array van 4,2 TB beschermen in het geval van een storing.

    RAID 5 biedt een efficiënte manier om gegevens te beschermen en bereikt leesprestaties die vergelijkbaar zijn met RAID 0. Tegelijkertijd kan de schrijfsnelheid van RAID 5 hogere waarden bereiken dan die van een enkele schijf. Dus, omdat RAID 5 gegevens effectief beschermt en de prestaties van het schijfsubsysteem kan verbeteren, is het tegenwoordig het populairst.

    De XOR-functie berekenen

    Eén schijf kan de gegevens van een willekeurig aantal andere schijven beschermen, zolang er maar één schijf in de array uitvalt. XOR is zowel associatief als commutatief, wat betekent dat noch de volgorde, noch de groepering van de operanden de resultaten beïnvloedt. XOR is ook een binaire bewerking en heeft slechts vier mogelijke combinaties van twee operanden. Twee operanden hebben een "echt" XOR-resultaat wanneer één en slechts één operand evalueert tot 1.

    Berekening van XOR worden geïmplementeerd met behulp van speciale hardware, dat kan een XOR ASIC-chip zijn of een I / O-processor met geïntegreerde XOR-functionaliteit, wat de prestaties van de RAID-controller aanzienlijk verhoogt. Elke byte aan gegevens die is opgeslagen in een RAID 5-volume vereist XOR-berekeningen. Begrijpen hoe XOR werkt, is van cruciaal belang om te begrijpen hoe een RAID 5-subsysteem grote hoeveelheden gegevens kan beschermen met een relatief kleine hoeveelheid van één schijf.

    In figuur 1 vertegenwoordigt elke rechthoek Dn een gegevensblok dat een strip wordt genoemd. Alle stroken op een rij heten strepen. In RAID 5 bevinden de pariteitsgegevens zich in verschillende strips op elke schijf - dit is de zogenaamde pariteitsrotatie. Dit is bedoeld om de prestaties te verbeteren: aangezien pariteit wordt berekend en geschreven bij elke lees-, wijziging-schrijfbewerking, zou het plaatsen op een enkele schijf een knelpunt veroorzaken. Zo'n schijf zou net zo vaak worden benaderd in relatie tot andere schijven in het systeem als er van deze schijven in het systeem zijn. De pariteitsgegevens zijn Pn, waarbij n het streepnummer is, alleen het resultaat van de XOR-bewerking op alle andere gegevensitems binnen dezelfde streep. Omdat XOR een associatieve en commutatieve bewerking is, kan het resultaat op meerdere operanden worden gevonden door eerst XOR uit te voeren op twee willekeurige operanden, vervolgens XOR het resultaat van die bewerking en de volgende operand uit te voeren, enzovoort met alle operanden totdat een resultaat is bereikt.

    Afbeelding 1. Datakaart van een typische RAID 5 met vier schijven

    Een RAID 5-volume zorgt ervoor dat elke schijf in de array kan uitvallen zonder gegevensverlies. Wanneer een fysieke schijf defect raakt, zoals schijf 3 in Afbeelding 2, wordt doorgaans gezegd dat de array in een kritieke toestand verkeert (Engels gedegradeerd). In een dergelijke situatie kunnen de ontbrekende gegevens voor een stripe worden bepaald door een XOR-bewerking uit te voeren op alle resterende gegevenselementen van die strip. Grofweg wordt elk stukje gegevens dat verloren gaat, weergegeven als het totaal van de resterende stroken in de streep. De typische stripgrootte is 32 KB tot 128 KB. Figuur 2 toont een array met een voorwaardelijke stripgrootte, waarbij elk element een enkele bit vertegenwoordigt.

    Pariteit eerste rij:
    P1 = D1 XOR D2 XOR D3;
    P1 tussen. = D1 XOR D2 = 1;
    P1 = P1 tussen. XOR D3 = 0.
    Dus P1 = 0.

    Afbeelding 2. RAID 5-datakaart met vier schijven; array met voorwaardelijke stripgrootte.

    Als de host gegevens van de controller opvraagt ​​van een array die zich in een kritieke toestand bevindt, moet de RAID-controller eerst alle beschikbare gegevensitems op de strip lezen, inclusief pariteit. Vervolgens wordt XOR op deze elementen uitgevoerd. Deze bewerking resulteert in verloren gegevens. Zo wordt de toegang tot de array niet onderbroken als een van de schijven uitvalt. Als de tweede schijf op dit moment echter uitvalt, gaan de gegevens van de hele array onherstelbaar verloren.

    De meeste hardware RAID-controllers bouwen de array automatisch opnieuw op als er een hot-spare schijf beschikbaar is, waardoor de array weer normaal wordt. Bovendien worden hardware-RAID-controllers doorgaans geleverd met software die een middel bevat om systeembeheerders op de hoogte te stellen wanneer zich een storing voordoet. Hierdoor kunnen beheerders het probleem oplossen voordat de volgende schijf uitvalt en de array in een kritieke toestand terechtkomt zonder automatisch herstel.

    Een lees-wijzig-schrijfbewerking uitvoeren

    De schrijfbewerking in RAID 5 is verantwoordelijk voor het berekenen en schrijven van pariteitsgegevens. Deze bewerking wordt gewoonlijk een lees-wijzig-schrijfbewerking genoemd. Stel je een streep voor die bestaat uit vier gegevensblokken en één pariteitsblok. Stel dat de host een klein gegevensblok wil wijzigen dat slechts ruimte inneemt op één strook binnen de streep. Een RAID-controller kan dit kleine gegevensblok niet zomaar wegschrijven en aannemen dat het verzoek compleet is. Deze bewerking moet ook de pariteitsgegevens bijwerken die worden berekend door een XOR-bewerking uit te voeren op elke strip binnen de stripe. Zo wordt de pariteit berekend wanneer een of meer strips veranderen.

    Figuur 3 toont een typische lees-wijzig-schrijfbewerking waarin de gegevens die de host naar de schijf schrijft zich in slechts één rij bevinden, in blok D5. De bewerking lezen-wijzigen-schrijven bestaat uit de volgende stappen:

    Afbeelding 3. Stap-voor-stap: lees-wijzig-schrijfbewerking in een quad-drive RAID 5-array

    1. Nieuwe gegevens ontvangen van de host: het besturingssysteem vraagt ​​​​om gegevens naar blok D5 op schijf 2 te schrijven.
    2. Lezen van oude gegevens van station 2, in plaats waarvan nieuwe gegevens zouden moeten worden geschreven. Door alleen het gegevensblok te lezen dat tijdens het schrijfproces is gewijzigd, hoeven er geen gegevens te worden gelezen van alle andere schijven binnen de strip om de pariteit te berekenen. Het aantal stappen dat nodig is voor een lees-wijzig-schrijfbewerking is onafhankelijk van het aantal schijven in de array.
    3. Oude pariteit lezen. Deze bewerking is onafhankelijk van het aantal schijfeenheden in de array.
    4. Berekening van de nieuwe stripe pariteit. Om dit te doen, moet je de XOR van stap 2 en 3 min (in dit geval, in Booleaanse rekenkunde, is dit dezelfde XOR) de bijdrage van de oude gegevens die zullen worden overschreven, berekenen. Dit komt door de associativiteit en commutativiteit van XOR. Dus om de pariteit voor een streep met een nieuw D5-blok te bepalen, hoeft u alleen maar de XOR van de nieuwe gegevens, oude gegevens en oude pariteit te berekenen.
    5. Controle van gegevensintegriteit: dit proces wordt niet beschreven in afbeelding 3, omdat de implementatie ervan sterk verschilt van leverancier tot leverancier. Het doel van dit proces is om de voortgang van de volgende stappen 6 en 7 te volgen. Voor een aaneengesloten schijfarray moet het subsysteem ervoor zorgen dat het pariteitsblok altijd overeenkomt met gegevens binnen de bandbreedte. Aangezien het onmogelijk is om te garanderen dat nieuwe gegevens en een nieuw pariteitsblok tegelijkertijd naar verschillende schijven worden geschreven, definieert het RAID-subsysteem de stripe die wordt verwerkt als onvolledig (inconsistent), "vuil", wat betekent dat de gegevensintegriteit is gecompromitteerd.
    6. Schrijven van de gegevens die in stap 1 van de host zijn ontvangen. Volgens de gegevenstoewijzingstabel bepaalt het RAID-subsysteem nu op welke fysieke schijf en waar precies op de schijf deze gegevens worden geschreven.
    7. Een nieuw pariteitsblok schrijven: in stap 4 is een nieuw pariteitsblok berekend; nu schrijft het RAID-subsysteem het naar de schijf.
    8. Gegevensintegriteitscontrole: zodra het RAID-subsysteem verifieert dat de stappen 6 en 7 met succes zijn voltooid, d.w.z. en zowel gegevens als pariteit naar de schijven worden geschreven, wordt de stripe als consistent beschouwd.

    Stel in het voorbeeld in figuur 3 Dnew = 0, Dold = 1 en Pold = 0. Verwerkingsstap 4 op deze gegevens geeft ons: 0 XOR 1 XOR 0 = 1. Dit is de pariteit P. Na de read-modify - schrijf ”, de tweede rij in figuur 3 is D4 = 1, D5 = 0, P2 = 1 en D6 = 0.

    Deze geoptimaliseerde methode is volledig schaalbaar. Het aantal lees-, schrijf- en XOR's is onafhankelijk van het aantal schijven in de array. Aangezien de schijf met pariteitsgegevens betrokken is bij elke schrijfbewerking (stappen 6 en 7), worden de pariteitsgegevens opgeslagen op alle schijven in de array, waarbij ze in de streep bewegen ten opzichte van de gegevensblokken. Als alle pariteitsgegevens op één fysieke schijf zouden worden opgeslagen, zou deze schijf een knelpunt kunnen worden, zoals hierboven vermeld.

    Onderbrekingen van de CPU overnemen

    Een interrupt is een verzoek van een systeemcomponent om CPU-tijd. I / O-subsystemen onderbreken de CPU wanneer ze een transactie voltooien. Hieronder volgt een kleine vergelijking van de interrupts die worden gegenereerd door verschillende typen RAID-controllers voor eenvoudige schrijfacties naar een RAID 5-array:

    Software-RAID: aangezien in dit geval de centrale processor van het systeem verantwoordelijk is voor het plaatsen van gegevens op schijf, moet deze een verzoek genereren voor elke lees- en schrijfbewerking die vereist is voor een lees-wijzig-schrijfbewerking. De CPU ontvangt dus vier interrupts van het subsysteem, bestaande uit twee leesverzoeken en twee schrijfverzoeken (stappen 2, 3, 6 en 7 in het voorbeeld in figuur 3).

    Hardware-/software-RAID: deze implementatie genereert dezelfde vier interrupts als software-RAID, aangezien de vereenvoudiging in deze implementatie in de meeste gevallen alleen wordt geassocieerd met de berekening van de XOR-bewerking door een speciale microschakeling XOR ASIC.

    Hardwarematige RAID: de I / O-processor in het hardware RAID-subsysteem verbergt meestal alle tussentijdse lees- en schrijfbewerkingen en genereert slechts één interrupt - een succesvolle transactie. De I/O-processor onderschept alle andere interrupts, waardoor de CPU vrij is om niet-RAID-taken uit te voeren.

    gebaseerd op materialen van Dell en Intel

    De verschuiving van het zwaartepunt van processorgerichte naar datagerichte toepassingen zorgt voor het groeiende belang van opslagsystemen. Tegelijkertijd is het probleem van een lage doorvoer en fouttolerantie-eigenschappen van dergelijke systemen altijd heel belangrijk geweest en er was altijd een oplossing voor nodig.

    In de moderne computerindustrie worden magnetische schijven veel gebruikt als secundair gegevensopslagsysteem, omdat ze, ondanks al hun nadelen, de beste eigenschappen hebben voor het overeenkomstige type apparaat tegen een betaalbare prijs.

    De eigenaardigheden van de technologie van het bouwen van magnetische schijven hebben geleid tot een aanzienlijke discrepantie tussen de toename van de prestaties van processormodules en de magnetische schijven zelf. Als in 1990 de beste schijven van 5,25 waren met een gemiddelde toegangstijd van 12 ms en een latentie van 5 ms (met een spilsnelheid van ongeveer 5000 rpm 1), behoort de palm tegenwoordig tot 3,5 schijven met een gemiddelde toegang tijd van 5 ms en een vertragingstijd van 1 ms (bij een spiltoerental van 10.000 rpm). Hier zien we een prestatieverbetering van ongeveer 100%. Tegelijkertijd is de snelheid van processors met meer dan 2.000% toegenomen. Dit wordt grotendeels mogelijk gemaakt door het feit dat processors de directe voordelen hebben van het gebruik van VLSI (Extra Large Integration). Het gebruik ervan maakt het niet alleen mogelijk om de frequentie te verhogen, maar ook het aantal componenten dat in de chip kan worden geïntegreerd, wat het mogelijk maakt om architecturale voordelen te implementeren die parallel computing mogelijk maken.

    1 - Gemiddelde gegevens.

    De huidige situatie kan worden omschreven als een crisis in de I/O van een secundair opslagsysteem.

    Prestaties verhogen

    De onmogelijkheid van een significante toename van de technologische parameters van magnetische schijven brengt de noodzaak met zich mee om andere manieren te vinden, waaronder parallelle verwerking.

    Als je een datablok over N schijven van een bepaalde array rangschikt en deze rangschikking zo organiseert dat er een mogelijkheid is om gelijktijdig informatie te lezen, dan kan dit blok N keer sneller worden gelezen (zonder rekening te houden met de blokvormingstijd). Omdat alle gegevens parallel worden verzonden, wordt deze architecturale oplossing genoemd array met parallelle toegang(parallel toegangsarray).

    Gelijktijdige arrays worden meestal gebruikt voor toepassingen die grote gegevensoverdrachten vereisen.

    Sommige taken daarentegen worden gekenmerkt door een groot aantal kleine zoekopdrachten. Deze taken omvatten bijvoorbeeld databaseverwerkingstaken. Door de databaserecords over de arrayschijven te rangschikken, kunt u de belasting onafhankelijk verdelen door de schijven te positioneren. Deze architectuur wordt meestal array met onafhankelijke toegang(een array met onafhankelijke toegang).

    We vergroten de veerkracht

    Helaas, naarmate het aantal schijven in een array toeneemt, neemt de betrouwbaarheid van de gehele array af. Met onafhankelijke fouten en een exponentiële wet van MTTF-verdeling, wordt de MTTF van de gehele array (gemiddelde tijd tot falen) berekend met de formule MTTF array = MMTF hdd / N hdd (MMTF hdd is de gemiddelde tijd tot falen van één schijf; NHDD is de nummerschijven).

    Er is dus een behoefte om de fouttolerantie van schijfarrays te verbeteren. Om de fouttolerantie van de arrays te vergroten, wordt redundante codering gebruikt. Er zijn twee hoofdtypen codering die worden gebruikt in redundante schijfarrays: duplicatie en pariteit.

    Duplicatie, of spiegeling, wordt het meest gebruikt in schijfarrays. Eenvoudige gespiegelde systemen gebruiken twee kopieën van de gegevens, elk op afzonderlijke schijven. Dit schema is vrij eenvoudig en vereist geen extra hardwarekosten, maar het heeft één belangrijk nadeel: het gebruikt 50% van de schijfruimte om een ​​kopie van informatie op te slaan.

    De tweede manier om redundante schijfarrays te implementeren, is door redundante codering te gebruiken door pariteit te berekenen. Pariteit wordt berekend als een XOR-bewerking van alle tekens in het datawoord. Het gebruik van pariteit in redundante schijfarrays reduceert de overhead tot een waarde die wordt berekend met de formule: HP hdd = 1 / N hdd (HP hdd is de overhead; N hdd is het aantal schijven in de array).

    Geschiedenis en ontwikkeling van RAID

    Hoewel opslagsystemen voor magnetische schijven al 40 jaar in productie zijn, is de massaproductie van fouttolerante systemen pas onlangs begonnen. Redundante arrays, gewoonlijk RAID (redundante arrays of goedkope schijven) genoemd, werden in 1987 geïntroduceerd door onderzoekers (Petterson, Gibson en Katz) aan de University of California, Berkeley. Maar RAID-systemen werden pas wijdverbreid toen schijven die geschikt zijn voor gebruik in redundante arrays beschikbaar kwamen en voldoende presteerden. Sinds RAID officieel werd gerapporteerd in 1988, is het onderzoek naar redundante schijfarrays explosief gestegen in een poging om een ​​breed scala aan compromissen tussen kosten, prestaties en betrouwbaarheid te bieden.

    Er is een keer een incident geweest met de afkorting RAID. Feit is dat op het moment van schrijven goedkope schijven alle schijven werden genoemd die in een pc werden gebruikt, in tegenstelling tot dure schijven voor een mainframe (mainframe). Maar voor gebruik in RAID-arrays was het nodig om vrij dure hardware te gebruiken in vergelijking met andere pc-configuraties, dus begonnen ze RAID te decoderen als een redundante array van onafhankelijke schijven 2 - een redundante array van onafhankelijke schijven.

    2 - RAID-adviesraad definitie

    RAID 0 werd in de industrie geïntroduceerd als de definitie van een niet-fouttolerante schijfarray. Bij Berkeley werd RAID 1 gedefinieerd als een gespiegelde schijfarray. RAID 2 is gereserveerd voor arrays die Hamming-code gebruiken. RAID-niveaus 3, 4, 5 gebruiken pariteit om gegevens te beschermen tegen afzonderlijke fouten. Het zijn deze niveaus, tot en met 5, die op Berkeley werden gepresenteerd, en deze RAID-systematiek werd als de facto standaard aangenomen.

    RAID-niveaus 3,4,5 zijn behoorlijk populair en hebben een goed gebruik van de schijfruimte, maar ze hebben één belangrijk nadeel: ze zijn alleen bestand tegen afzonderlijke fouten. Dit is vooral het geval bij het gebruik van een groot aantal schijven, wanneer de kans op gelijktijdige uitval van meer dan één apparaat toeneemt. Bovendien worden ze gekenmerkt door een lange hersteltijd, die ook enkele beperkingen oplegt aan het gebruik ervan.

    Tot op heden is er een vrij groot aantal architecturen ontwikkeld die de werking van een array garanderen in het geval van een gelijktijdige storing van twee willekeurige schijven zonder gegevensverlies. Onder de set zijn tweedimensionale pariteit (tweedimensionale pariteit) en EVENODD, die pariteit gebruiken voor codering, en RAID 6, die Reed-Solomon-codering gebruikt, het vermelden waard.

    In een pariteitsschema met twee ruimtes neemt elk gegevensblok deel aan de constructie van twee onafhankelijke codewoorden. Dus als een tweede schijf faalt in hetzelfde codewoord, wordt een ander codewoord gebruikt om de gegevens te reconstrueren.

    De minimale redundantie in zo'n array wordt bereikt met een gelijk aantal kolommen en rijen. En gelijk aan: 2 x Vierkant (N Schijf) (in "vierkant").

    Als de tweedimensionale array niet in een "vierkant" is georganiseerd, zal de redundantie hoger zijn wanneer het bovenstaande schema wordt geïmplementeerd.

    De EVENODD-architectuur heeft een fouttolerantieschema dat vergelijkbaar is met tweedimensionale pariteit, maar met een andere lay-out van informatieblokken, wat zorgt voor een minimaal gebruik van overcapaciteit. Naast tweedimensionale pariteit neemt elk gegevensblok deel aan de constructie van twee onafhankelijke codewoorden, maar de woorden zijn zo gerangschikt dat de redundantiefactor constant is (in tegenstelling tot het vorige schema) en gelijk is aan: 2 x Vierkant (N-schijf).

    Met behulp van twee controletekens, pariteit en niet-binaire codes, kan het datawoord worden ontworpen om fouttolerantie te bieden in het geval van een dubbele fout. Dit staat bekend als RAID 6. Niet-binaire code op basis van Reed-Solomon-codering wordt meestal berekend met behulp van tabellen of een iteratief proces met behulp van lineaire gesloten-lusregisters, wat een relatief complexe operatie is waarvoor gespecialiseerde hardware nodig is.

    Aangezien het gebruik van klassieke RAID-opties, die voor veel toepassingen voldoende fouttolerantie bieden, vaak onaanvaardbaar lage prestaties levert, voeren onderzoekers van tijd tot tijd verschillende maatregelen uit die de prestaties van RAID-systemen helpen verbeteren.

    In 1996 stelden Savage en Wilks AFRAID voor, een A Frequent Redundant Array of Independent Disks. Deze architectuur offert tot op zekere hoogte fouttolerantie op voor prestaties. In een poging om het kleine schrijfprobleem in RAID 5-arrays te compenseren, is het toegestaan ​​om gedurende een bepaalde periode zonder pariteit te strippen. Als de schijf die bedoeld is voor het schrijven van pariteit bezet is, wordt het schrijven uitgesteld. Het is theoretisch bewezen dat 25% vermindering van fouttolerantie de prestaties met 97% kan verhogen. AFRAID verandert effectief het fouttolerante model van arrays, omdat een codewoord dat geen bijgewerkte pariteit heeft, vatbaar is voor schijfstoringen.

    In plaats van fouttolerantie op te offeren, kunt u traditionele methoden gebruiken om de prestaties te verbeteren, zoals caching. Aangezien het schijfverkeer bursty is, kunt u de terugschrijfcache gebruiken om gegevens op te slaan wanneer de schijven bezet zijn. En als het cachegeheugen wordt uitgevoerd in de vorm van niet-vluchtig geheugen, dan blijven de gegevens bij stroomuitval bewaard. Bovendien maken luie schijfbewerkingen het mogelijk om kleine blokken in willekeurige volgorde te combineren om efficiëntere schijfbewerkingen uit te voeren.

    Er zijn ook veel architecturen die prestatiewinst bieden door in te leveren op volume. Onder hen zijn uitgestelde wijziging van de logschijf en verschillende schema's voor het wijzigen van de logische plaatsing van gegevens in het fysieke, die het mogelijk maken om bewerkingen in de array efficiënter te verdelen.

    Een van de opties - pariteitsregistratie(pariteitsregistratie), waarmee het probleem van kleine schrijfacties wordt aangepakt en schijven efficiënter worden gebruikt. Pariteitsregistratie houdt in dat de wijziging van de pariteit in RAID 5 wordt uitgesteld door deze naar het FIFO-logboek te schrijven, dat zich gedeeltelijk in het geheugen van de controller en gedeeltelijk op schijf bevindt. Aangezien toegang tot een volledige track gemiddeld 10 keer efficiënter is dan toegang tot een sector, worden grote hoeveelheden gewijzigde pariteitsgegevens verzameld met behulp van pariteit, die vervolgens allemaal naar een schijf worden geschreven die is ontworpen om pariteit in de hele track op te slaan.

    architectuur zwevende gegevens en pariteit(floating data en pariteit), wat een hertoewijzing van de fysieke rangschikking van schijfblokken mogelijk maakt. Op elke cilinder worden vrije sectoren geplaatst om te verminderen roterende latentie(rotatievertragingen), data en pariteit worden op deze lege velden geplaatst. Om de werking in geval van stroomuitval te garanderen, moeten de pariteits- en datakaart in een niet-vluchtig geheugen worden opgeslagen. Als u de locatiekaart kwijtraakt, gaan alle gegevens in de array verloren.

    Virtueel strippen- is een zwevende data- en pariteitsarchitectuur die gebruikmaakt van een terugschrijfcache. Natuurlijk de positieve aspecten van beide realiserend.

    Daarnaast zijn er andere manieren om de prestaties te verbeteren, zoals striping RAID-bewerkingen. Ooit bouwde Seagate ondersteuning voor RAID-bewerkingen in zijn Fiber Chanel- en SCSI-schijven. Dit maakte het mogelijk om het verkeer tussen de centrale controller en schijven in de array voor RAID 5-systemen te verminderen. Fiber Chanel- en SCSI-standaarden verzwakken het storingsmodel voor disk-arrays.

    Voor dezelfde RAID 5 werd de TickerTAIP-architectuur gepresenteerd. Het ziet er als volgt uit: het oorspronkelijke knooppunt van het centrale besturingsmechanisme (initiatorknooppunt) ontvangt gebruikersverzoeken, kiest een verwerkingsalgoritme en draagt ​​vervolgens het werk met de schijf en pariteit over naar het werkknooppunt (werkknooppunt). Elk werkknooppunt verwerkt een subset van de schijven in de array. Net als in het Seagate-model, dragen werkknooppunten onderling gegevens over zonder de deelname van het initiërende knooppunt. In het geval van een storing van een worker-knoop punt, worden de schijven die het onderhoudt niet meer beschikbaar. Maar als het codewoord zo is geconstrueerd dat elk van zijn karakters wordt verwerkt door een afzonderlijk werkknooppunt, herhaalt het fouttolerantieschema RAID 5. Om storingen van het initiatorknooppunt te voorkomen, wordt het gedupliceerd, dus we krijgen een architectuur die is bestand tegen storingen van een van zijn knooppunten. Ondanks al zijn positieve eigenschappen, lijdt deze architectuur aan een "schrijfgat"-probleem. Dit impliceert het optreden van een fout wanneer meerdere gebruikers het codewoord tegelijkertijd wijzigen en het knooppunt faalt.

    Ook het vermelden waard is een redelijk populaire manier om RAID snel te herstellen - met een reserveschijf. Als een van de schijven in de array uitvalt, kan de RAID opnieuw worden opgebouwd met een vrije schijf in plaats van de defecte schijf. Het belangrijkste kenmerk van deze implementatie is dat het systeem teruggaat naar de vorige (fail-safe status zonder tussenkomst van buitenaf). Met een gedistribueerde spaararchitectuur worden logische reserveblokken van een schijf fysiek verdeeld over alle schijven in een array, waardoor het niet meer nodig is om de array opnieuw op te bouwen als een schijf uitvalt.

    Een architectuur genaamd pariteit declustering(pariteitsverdeling). Het houdt in dat er minder logische schijfeenheden met meer capaciteit op kleinere, maar grotere fysieke schijfeenheden worden geplaatst. Met deze technologie wordt de responstijd van het systeem op een verzoek tijdens de reconstructie meer dan verdubbeld en wordt de reconstructietijd aanzienlijk verkort.

    Basis RAID-laagarchitectuur

    Laten we nu eens in meer detail kijken naar de architectuur van de basisniveaus van RAID. Laten we, alvorens te overwegen, enkele aannames doen. Om de principes van het bouwen van RAID-systemen te demonstreren, kunt u een set van N schijven overwegen (voor de eenvoud wordt N als een even getal beschouwd), die elk uit M blokken bestaan.

    De gegevens worden aangegeven met - Dm, n, waarbij m het aantal gegevensblokken is, n het aantal subblokken waarin het gegevensblok D.

    Disks kunnen worden aangesloten op een of meerdere datatransmissiekanalen. Het gebruik van meer kanalen verhoogt de doorvoer van het systeem.

    RAID 0. Striped Disk Array zonder fouttolerantie

    Het is een schijfarray waarin gegevens in blokken worden verdeeld en elk blok wordt geschreven (of gelezen) naar een afzonderlijke schijf. Zo kunnen meerdere I/O-bewerkingen tegelijkertijd worden uitgevoerd.

    Voordelen::

    • Hoogste prestaties voor toepassingen die intensieve verwerking van I/O-verzoeken en grote datavolumes vereisen;
    • Gemak van implementatie;
    • lage kosten per volume-eenheid.

    nadelen:

    • geen fouttolerante oplossing;
    • een enkele schijffout zal resulteren in het verlies van alle gegevens in de array.

    RAID 1. Schijf-array met duplicaat of spiegeling (mirroring)

    Mirroring is een traditionele methode om de betrouwbaarheid van een kleine schijfarray te verbeteren. In de eenvoudigste versie worden twee schijven gebruikt waarop dezelfde informatie is vastgelegd, en in het geval van een storing van een van hen, blijft het duplicaat ervan over, dat in dezelfde modus blijft werken.

    Voordelen::

    • Gemak van implementatie;
    • eenvoud van arrayherstel in geval van storing (kopiëren);
    • redelijk hoge prestaties voor veeleisende toepassingen.

    nadelen:

    • hoge kosten per volume-eenheid - 100% redundantie;
    • lage gegevensoverdrachtsnelheid.

    RAID 2. Fouttolerante schijfarray met Hamming Code ECC.

    De redundante codering die in RAID 2 wordt gebruikt, wordt Hamming-code genoemd. Met de Hamming-code kunt u enkele en dubbele fouten corrigeren. Tegenwoordig wordt het actief gebruikt in de technologie van gegevenscodering in RAM, zoals ECC. En het coderen van gegevens op magnetische schijven.

    In dit geval wordt een voorbeeld getoond met een vast aantal schijven vanwege de omslachtige beschrijving (een datawoord bestaat respectievelijk uit 4 bits, een ECC-code van 3).

    Voordelen::

    • snelle foutcorrectie ("on the fly");
    • zeer hoge snelheid van gegevensoverdracht van grote volumes;
    • met een toename van het aantal schijven worden overheadkosten verlaagd;
    • vrij eenvoudige uitvoering.

    nadelen:

    • hoge kosten met een klein aantal schijven;
    • lage snelheid van verzoekverwerking (niet geschikt voor systemen gericht op transactieverwerking).

    RAID 3. Parallelle overdrachtschijven met pariteit

    De gegevens worden opgesplitst in subblokken op byteniveau en gelijktijdig naar alle schijven in de array geschreven, behalve één, die wordt gebruikt voor pariteit. Het gebruik van RAID 3 lost het probleem van hoge redundantie in RAID 2 op. De meeste controleschijven die in RAID-niveau 2 worden gebruikt, zijn nodig om het defecte bit te lokaliseren. Maar dit is niet nodig, aangezien de meeste controllers kunnen bepalen wanneer een schijf defect is geraakt met behulp van speciale signalen of aanvullende codering van informatie die naar de schijf is geschreven en wordt gebruikt om willekeurige fouten te corrigeren.

    Voordelen::

    • zeer hoge gegevensoverdrachtsnelheid;
    • schijfstoring heeft weinig effect op de snelheid van de array;

    nadelen:

    • moeilijke implementatie;
    • lage prestaties met een hoge intensiteit van verzoeken om kleine gegevens.

    RAID 4. Onafhankelijke gegevensschijven met gedeelde pariteitsschijf

    De gegevens worden uitgesplitst op blokniveau. Elk gegevensblok wordt naar een afzonderlijke schijf geschreven en kan afzonderlijk worden gelezen. Pariteit voor een groep blokken wordt gegenereerd bij schrijven en gecontroleerd bij lezen. RAID-niveau 4 verbetert de prestaties van kleine gegevensoverdrachten door parallellisme, waardoor meer dan één I/O gelijktijdig kan worden uitgevoerd. Het belangrijkste verschil tussen RAID 3 en 4 is dat bij de laatste datastriping wordt uitgevoerd op sectorniveau, niet op bit- of byteniveau.

    Voordelen::

    • zeer hoge leessnelheid van grote datavolumes;
    • hoge prestaties met een hoge intensiteit van gegevensleesverzoeken;
    • lage overhead voor het implementeren van redundantie.

    nadelen:

    • zeer lage prestaties bij het schrijven van gegevens;
    • lage snelheid van het lezen van kleine gegevens met enkele verzoeken;
    • asymmetrie van prestaties met betrekking tot lezen en schrijven.

    RAID 5. Onafhankelijke gegevensschijven met gedistribueerde pariteitsblokken

    Dit niveau is vergelijkbaar met RAID 4, maar in tegenstelling tot het vorige wordt pariteit cyclisch verdeeld over alle schijven in de array. Deze wijziging verbetert de prestaties van het schrijven van kleine hoeveelheden gegevens op multitasking-systemen. Als de schrijfbewerkingen goed zijn gepland, is het mogelijk om tot N/2 blokken parallel te verwerken, waarbij N het aantal schijven in de groep is.

    Voordelen::

    • hoge snelheid van gegevensregistratie;
    • voldoende hoge snelheid van het lezen van gegevens;
    • hoge prestaties met een hoge intensiteit van lees-/schrijfverzoeken voor gegevens;
    • lage overhead voor het implementeren van redundantie.

    nadelen:

    • de leessnelheid van gegevens is lager dan in RAID 4;
    • lage lees- / schrijfsnelheid van kleine gegevens met enkele verzoeken;
    • vrij complexe implementatie;
    • complexe gegevensherstel.

    RAID 6. Onafhankelijke gegevensschijven met twee onafhankelijke gedistribueerde pariteitsschema's

    Gegevens worden op blokniveau gepartitioneerd, vergelijkbaar met RAID 5, maar naast de vorige architectuur wordt een tweede schema gebruikt om de fouttolerantie te verbeteren. Deze architectuur is dubbel fouttolerant. Bij het uitvoeren van een logische schrijfbewerking zijn er echter in feite zes schijftoegangen, wat de verwerkingstijd van één verzoek aanzienlijk verhoogt.

    Voordelen::

    • hoge veerkracht;
    • voldoende hoge snelheid van de verwerking van verzoeken;
    • relatief lage overhead voor het implementeren van redundantie.

    nadelen:

    • zeer complexe uitvoering;
    • complexe gegevensherstel;
    • zeer lage schrijfsnelheid van gegevens.

    Met moderne RAID-controllers kunt u verschillende RAID-niveaus combineren. Het is dus mogelijk om systemen te implementeren die de voordelen van verschillende niveaus combineren, evenals systemen met een groot aantal schijven. Dit is meestal een combinatie van strippen en een bepaald fouttolerantieniveau.

    RAID 10. Fouttolerante dubbele en parallelle array

    Deze architectuur is een RAID 0-array waarvan de segmenten RAID 1-arrays zijn en combineert een zeer hoge fouttolerantie en prestaties.

    Voordelen::

    • hoge veerkracht;
    • hoge performantie.

    nadelen:

    • zeer hoge kosten;
    • beperkte schaal.

    RAID 30. Fouttolerante array met parallelle gegevensoverdracht en verbeterde prestaties.

    Het is een RAID 0-array, waarvan de segmenten RAID 3-arrays zijn. Het combineert fouttolerantie en hoge prestaties. Meestal gebruikt voor toepassingen die grote seriële gegevensoverdracht vereisen.

    Voordelen::

    • hoge veerkracht;
    • hoge performantie.

    nadelen:

    • hoge prijs;
    • beperkte schaal.

    RAID 50. Fouttolerante gedistribueerde pariteitsarray met verbeterde prestaties

    Het is een RAID 0-array met segmenten van RAID 5. Het combineert fouttolerantie en hoge prestaties voor veeleisende toepassingen en hoge gegevensoverdrachtsnelheden.

    Voordelen::

    • hoge veerkracht;
    • hoge gegevensoverdrachtsnelheid;
    • hoge snelheid van aanvraagverwerking.

    nadelen:

    • hoge prijs;
    • beperkte schaal.

    RAID 7. Veerkrachtige array geoptimaliseerd voor prestaties. (Geoptimaliseerde asynchronie voor hoge I/O-snelheden en hoge gegevensoverdrachtsnelheden). RAID 7® is een gedeponeerd handelsmerk van Storage Computer Corporation (SCC)

    Laten we, om de architectuur van RAID 7 te begrijpen, eens kijken naar de kenmerken ervan:

    1. Alle verzoeken om gegevensoverdracht worden asynchroon en onafhankelijk verwerkt.
    2. Alle lees-/schrijfbewerkingen worden via de snelle x-bus in de cache opgeslagen.
    3. De pariteitsschijf kan op elk kanaal worden geplaatst.
    4. De microprocessor van de arraycontroller maakt gebruik van een realtime procesgericht besturingssysteem.
    5. Het systeem is goed schaalbaar: tot 12 hostinterfaces en tot 48 schijven.
    6. Het besturingssysteem regelt de communicatiekanalen.
    7. Er wordt gebruik gemaakt van standaard SCSI-schijven, bussen, moederborden en geheugenmodules.
    8. De high-speed X-bus wordt gebruikt om met het interne cachegeheugen te werken.
    9. De pariteitsgeneratieroutine is geïntegreerd in de cache.
    10. Schijven die op het systeem zijn aangesloten, kunnen als vrijstaand worden aangemerkt.
    11. Een SNMP-agent kan worden gebruikt om het systeem te beheren en te bewaken.

    Voordelen::

    • hoge gegevensoverdrachtsnelheid en hoge verwerkingssnelheid van query's (1,5 - 6 keer hoger dan andere standaard RAID-niveaus);
    • hoge schaalbaarheid van hostinterfaces;
    • de schrijfsnelheid van gegevens neemt toe met het aantal schijven in de array;
    • er is geen extra gegevensoverdracht nodig om de pariteit te berekenen.

    nadelen:

    • eigendom van één fabrikant;
    • zeer hoge kosten per volume-eenheid;
    • korte garantieperiode;
    • kan niet door de gebruiker worden onderhouden;
    • u moet een ononderbroken stroomvoorziening gebruiken om gegevensverlies uit het cachegeheugen te voorkomen.

    Laten we nu samen naar de standaardniveaus kijken om hun kenmerken te vergelijken. De vergelijking is gemaakt in het kader van de in de tabel genoemde architecturen.

    INVALMinimum
    schijven
    Nodig hebben
    op schijven
    Mislukking
    standvastigheid
    Snelheid
    dataoverdracht
    Intensiteit
    verwerken
    verzoeken
    praktisch
    gebruik
    0 2 N heel hoog
    tot N x 1 schijf
    Grafisch, video
    1 2 2N * R> 1 schijf
    W = 1 schijf
    tot 2 x 1 schijf
    W = 1 schijf
    kleine bestandsservers
    2 7 2N ~ RAID 3Laagmainframes
    3 3 N + 1 LaagGrafisch, video
    4 3 N + 1 R WR = RAID 0
    W
    bestandsservers
    5 3 N + 1 R WR = RAID 0
    W
    databaseservers
    6 4 N + 2de langstelaagR> 1 schijf
    W
    extreem zelden gebruikt
    7 12 N + 1 de langstede langsteverschillende soorten toepassingen

    verduidelijkingen:

    • * - de veelgebruikte optie wordt overwogen;
    • k is het aantal subsegmenten;
    • R - lees;
    • W - opnemen.

    Enkele aspecten van de implementatie van RAID-systemen

    Laten we eens kijken naar drie hoofdopties voor het implementeren van RAID-systemen:

    • software (op software gebaseerd);
    • hardwarekamer - busgebaseerd;
    • hardware - een autonoom subsysteem (gebaseerd op een subsysteem).

    Het kan niet ondubbelzinnig worden gezegd dat de ene implementatie beter is dan de andere. Elke optie voor het organiseren van de array voldoet aan de behoeften van een of andere gebruiker, afhankelijk van de financiële mogelijkheden, het aantal gebruikers en de gebruikte applicaties.

    Elk van de bovenstaande implementaties is gebaseerd op code-uitvoering. Ze verschillen eigenlijk in waar deze code wordt uitgevoerd: in de centrale processor van de computer (software-implementatie) of in een gespecialiseerde processor op de RAID-controller (hardware-implementatie).

    Het belangrijkste voordeel van software-implementatie is de lage kostprijs. Maar tegelijkertijd heeft het veel nadelen: lage prestaties, belasting met extra werk aan de centrale processor, meer busverkeer. Eenvoudige RAID-niveaus 0 en 1 worden meestal in software geïmplementeerd, omdat er geen noemenswaardige berekening voor nodig is. Met deze eigenschappen in gedachten worden op instapniveau servers op software gebaseerde RAID-systemen gebruikt.

    Hardware-RAID-implementaties kosten meer dan software-RAID, omdat ze extra hardware gebruiken om I/O-bewerkingen uit te voeren. Tegelijkertijd ontlasten of maken ze de centrale processor en de systeembus vrij en zorgen ze voor hogere prestaties.

    Bus-georiënteerde implementaties zijn RAID-controllers die de high-speed bus gebruiken van de computer waarin ze zijn geïnstalleerd (recentelijk wordt meestal de PCI-bus gebruikt). Op hun beurt kunnen busgeoriënteerde implementaties worden onderverdeeld in low-level en high-level. De eerstgenoemde hebben meestal geen SCSI-chips en gebruiken de zogenaamde RAID-poort op een moederbord met een ingebouwde SCSI-controller. In dit geval worden de verwerkingsfuncties van RAID-code en I/O-bewerkingen verdeeld tussen de processor op de RAID-controller en de SCSI-chips op het moederbord. Zo is de centrale processor verlost van het verwerken van extra code en wordt het busverkeer verminderd in vergelijking met de softwareversie. De kosten van dergelijke kaarten zijn meestal laag, vooral als ze zijn gericht op RAID - 0 of 1-systemen (er zijn ook implementaties van RAID 3, 5, 10, 30, 50, maar deze zijn duurder), waardoor ze geleidelijk verdringen software-implementaties van de servermarkt op instapniveau. Buscontrollers op hoog niveau hebben een iets andere structuur dan hun kleine broertjes. Ze nemen alle functies over die verband houden met I / O- en RAID-code-uitvoering. Bovendien zijn ze niet zo afhankelijk van de implementatie van het moederbord en hebben ze in de regel meer mogelijkheden (bijvoorbeeld de mogelijkheid om een ​​module aan te sluiten om informatie in de cache op te slaan in het geval van een moederbordstoring of stroomuitval) . Deze controllers zijn meestal duurder dan low-level controllers en worden gebruikt in mid-range en high-end servers. Ze implementeren in de regel RAID-niveaus 0,1, 3, 5, 10, 30, 50. Aangezien busgeoriënteerde implementaties rechtstreeks zijn aangesloten op de interne PCI-bus van de computer, zijn ze het meest productief van de systemen onder overweging (bij het organiseren van systemen met één host). De maximale prestaties van dergelijke systemen kunnen oplopen tot 132 MB/s (32bit PCI) of 264 MB/s (64bit PCI) bij een busfrequentie van 33MHz.

    Samen met de genoemde voordelen heeft de busgeoriënteerde architectuur de volgende nadelen:

    • afhankelijkheid van het besturingssysteem en platform;
    • beperkte schaalbaarheid;
    • beperkte mogelijkheden voor de organisatie van fouttolerante systemen.

    Al deze nadelen kunnen worden vermeden door stand-alone subsystemen te gebruiken. Deze systemen hebben een volledig autonome externe organisatie en zijn in principe een aparte computer die wordt gebruikt om informatieopslagsystemen in te richten. Bovendien zal bij een succesvolle ontwikkeling van de technologie van glasvezelkanalen de snelheid van autonome systemen geenszins onderdoen voor busgeoriënteerde systemen.

    Meestal wordt de externe controller in een apart rack geplaatst en kan deze, in tegenstelling tot systemen met een busorganisatie, een groot aantal I / O-kanalen hebben, inclusief hostkanalen, waardoor het mogelijk is om meerdere hostcomputers op het systeem aan te sluiten en te organiseren clustersystemen. In systemen met een stand-alone controller kunnen hot spare-controllers worden geïmplementeerd.

    Een van de nadelen van autonome systemen zijn de hoge kosten.

    Gezien het bovenstaande merken we op dat stand-alone controllers meestal worden gebruikt om datawarehouses met hoge capaciteit en clustersystemen te implementeren.