PLYNDRINGSTOKT - RAID

RAID ( / r d / ; " Redundant Array of Inexpensive Disks " eller " Redundant Array of Independent Disks ") er en datalagringsvirtualiseringsteknologi som kombinerer flere fysiske diskstasjonskomponenter til en eller flere logiske enheter for dataredundans , ytelsesforbedring, eller begge deler. Dette var i motsetning til det forrige konseptet med svært pålitelige hoveddiskstasjoner referert til som "single large expensive disk" (SLED).

Data distribueres over stasjonene på en av flere måter, referert til som RAID-nivåer, avhengig av det nødvendige redundansnivået og ytelsen. De forskjellige ordningene, eller datadistribusjonsoppsettene, er navngitt av ordet "RAID" etterfulgt av et tall, for eksempel RAID 0 eller RAID 1. Hvert skjema, eller RAID-nivå, gir en annen balanse mellom hovedmålene: pålitelighet , tilgjengelighet , ytelse og kapasitet . RAID-nivåer større enn RAID 0 gir beskyttelse mot uopprettelige sektorfeil i sektoren , samt mot feil på hele fysiske stasjoner.

Historie

Begrepet "RAID" ble oppfunnet av David Patterson , Garth A. Gibson og Randy Katz ved University of California, Berkeley i 1987. I deres avis fra juni 1988 "A Case for Redundant Arrays of Inexpensive Disks (RAID)", presentert kl. den SIGMOD konferansen, hevdet de at de beste resultatene stormaskindisker på den tiden kunne bli slått på ytelse ved en rekke av de rimelige stasjoner som hadde blitt utviklet for den voksende PC -markedet. Selv om feil vil øke proporsjonalt med antall stasjoner, kan påliteligheten til en matrise ved å konfigurere for redundans langt overstige den for enhver stor enkeltstasjon.

Selv om den foreløpig ikke brukte denne terminologien, ble teknologiene til de fem nivåene av RAID som ble oppkalt i papiret fra juni 1988 brukt i forskjellige produkter før papirets utgivelse, inkludert følgende:

  • Mirroring (RAID 1) var godt etablert på 1970-tallet, inkludert for eksempel Tandem NonStop Systems .
  • I 1977 arkiverte Norman Ken Ouchi hos IBM et patent som avslørte det som senere ble kalt RAID 4.
  • Rundt 1983 begynte DEC å sende delsystem-speilvendte RA8X-diskstasjoner (nå kjent som RAID 1) som en del av HSC50-delsystemet.
  • I 1986, Clark et al. hos IBM innleverte et patent som avslørte det som senere ble kalt RAID 5.
  • Rundt 1988 brukte Thinking Machines ' DataVault feilkorreksjonskoder (nå kjent som RAID 2) i en rekke diskstasjoner. En lignende tilnærming ble brukt tidlig på 1960-tallet på IBM 353 .

Industriprodusenter omdefinerte senere RAID-forkortelsen til å stå for "Redundant Array of Independent Disks".

Oversikt

Mange RAID-nivåer benytter en feilbeskyttelsesordning som kalles " paritet ", en mye brukt metode i informasjonsteknologi for å gi feiltoleranse i et gitt datasett. De fleste bruker enkel XOR , men RAID 6 bruker to separate pariteter basert på henholdsvis addisjon og multiplikasjon i et bestemt Galois-felt eller feilkorreksjon av Reed – Solomon .

RAID kan også tilby datasikkerhet med SSD-stasjoner (SSD-er) uten bekostning av et SSD-system. For eksempel kan en rask SSD speiles med en mekanisk stasjon. For at denne konfigurasjonen skal gi en betydelig hastighetsfordel, er det nødvendig med en passende kontroller som bruker rask SSD for alle leseoperasjoner. Adaptec kaller dette "hybrid RAID".

Standard nivåer

Lagringsservere med 24 harddiskstasjoner hver og innebygd RAID-kontrollere for maskinvare som støtter forskjellige RAID-nivåer

Opprinnelig var det fem standardnivåer av RAID, men mange variasjoner har utviklet seg, inkludert flere nestede nivåer og mange ikke-standardiserte nivåer (for det meste proprietære ). RAID-nivåer og tilhørende dataformater er standardisert av Storage Networking Industry Association (SNIA) i Common RAID Disk Drive Format (DDF) -standarden:

RAID 0 består av striping , men ingen speiling eller paritet . Sammenlignet med et spennvolum er kapasiteten til et RAID 0-volum det samme; det er summen av kapasitetene til stasjonene i settet. Men fordi striping distribuerer innholdet i hver fil blant alle stasjoner i settet, forårsaker feilen på en hvilken som helst stasjon hele RAID 0-volumet og alle filene går tapt. Til sammenligning bevarer et spant volum filene på de sviktende stasjonene. Fordelen med RAID 0 er at gjennomstrømningen av lese- og skriveoperasjoner til en hvilken som helst fil multipliseres med antall stasjoner fordi, i motsetning til spannede volumer, leses og skrives ut samtidig . Kostnaden er økt sårbarhet for stasjonsfeil - siden enhver stasjon i et RAID 0-oppsett som mislykkes, fører til at hele volumet går tapt, øker den gjennomsnittlige feilfrekvensen for volumet med antall tilkoblede stasjoner.

RAID 1 består av dataspeiling, uten paritet eller striping. Data skrives identisk med to eller flere stasjoner, og produserer dermed et "speilet sett" av stasjoner. Dermed kan enhver leseforespørsel betjenes av hvilken som helst stasjon i settet. Hvis en forespørsel sendes til hver stasjon i settet, kan den betjenes av stasjonen som først får tilgang til dataene (avhengig av søketid og rotasjonsforsinkelse ), og forbedrer ytelsen. Vedvarende lesegjennomstrømning, hvis kontrolleren eller programvaren er optimalisert for det, nærmer seg summen av gjennomstrømningene til hver stasjon i settet, akkurat som for RAID 0. Den faktiske leseeffekten for de fleste RAID 1-implementeringer er tregere enn den raskeste stasjonen. Skrivegjennomstrømningen er alltid tregere fordi hver stasjon må oppdateres, og den tregeste stasjonen begrenser skriveytelsen. Matrisen fortsetter å fungere så lenge minst en stasjon fungerer.

RAID 2 består av bit-level striping med dedikert Hamming- kodeparitet. All rotasjon av diskspindelen er synkronisert og data blir stripet slik at hver sekvensiell bit er på en annen stasjon. Hamming-kodeparitet beregnes på tvers av tilsvarende biter og lagres på minst en paritetsstasjon. Dette nivået er bare av historisk betydning; Selv om den ble brukt på noen tidlige maskiner (for eksempel Thinking Machines CM-2), blir den ikke brukt av noe kommersielt tilgjengelig system fra 2014.

RAID 3 består av striping på byte-nivå med dedikert paritet. All rotasjon av diskspindelen er synkronisert og data blir stripet slik at hver sekvensiell byte er på en annen stasjon. Paritet beregnes på tvers av tilsvarende byte og lagres på en dedikert paritetsstasjon. Selv om det finnes implementeringer, brukes ikke RAID 3 ofte i praksis.

RAID 4 består av striping på blokknivå med dedikert paritet. Dette nivået ble tidligere brukt av NetApp , men har nå i stor grad blitt erstattet av en proprietær implementering av RAID 4 med to paritetsskiver, kalt RAID-DP . Den største fordelen med RAID 4 over RAID 2 og 3 er I / O-parallellitet: i RAID 2 og 3 krever en enkeltleset I / O-operasjon å lese hele gruppen datastasjoner, mens det i RAID 4 en I / O-lesing gjør slipper å spre seg over alle datastasjoner. Som et resultat kan flere I / O-operasjoner utføres parallelt, noe som forbedrer ytelsen til små overføringer.

RAID 5 består av striping på blokknivå med distribuert paritet. I motsetning til RAID 4 distribueres paritetsinformasjon mellom stasjonene, og krever at alle stasjonene, bortsett fra en, skal være til stede for å fungere. Ved feil på en enkelt stasjon kan påfølgende lesinger beregnes fra den distribuerte pariteten slik at ingen data går tapt. RAID 5 krever minst tre disker. Som alle enkeltparitetskonsepter er store RAID 5-implementeringer utsatt for systemfeil på grunn av trender angående gjenoppbyggingstid for arrayet og sjansen for stasjonsfeil under ombygging (se avsnittet " Øker gjenoppbyggingstid og feilsannsynlighet " nedenfor). Å gjenoppbygge en matrise krever å lese alle data fra alle diskene, åpne en sjanse for en annen stasjonsfeil og tap av hele matrisen.

RAID 6 består av striping på blokknivå med dobbel fordelt paritet. Dobbel paritet gir feiltoleranse opptil to mislykkede stasjoner. Dette gjør større RAID-grupper mer praktiske, spesielt for høy tilgjengelighetssystemer, da stasjoner med stor kapasitet tar lengre tid å gjenopprette. RAID 6 krever minst fire disker. Som med RAID 5, resulterer en enkelt stasjonsfeil i redusert ytelse for hele matrisen til den mislykkede stasjonen er byttet ut. Med et RAID 6-array, ved hjelp av stasjoner fra flere kilder og produsenter, er det mulig å redusere de fleste av problemene knyttet til RAID 5. Jo større stasjonskapasiteter og jo større matrisestørrelse, jo viktigere blir det å velge RAID 6 i stedet av RAID 5. RAID 10 minimerer også disse problemene.

Nestet (hybrid) RAID

I det som opprinnelig ble kalt hybrid RAID , tillater mange lagringskontrollere at RAID-nivåer kan nestes. Elementene i en RAID kan enten være individuelle stasjoner eller matriser selv. Arrays er sjelden nestet mer enn ett nivå dypt.

Den endelige matrisen er kjent som den øverste matrisen. Når toppmatrisen er RAID 0 (for eksempel i RAID 1 + 0 og RAID 5 + 0), utelater de fleste leverandører "+" (gir henholdsvis RAID 10 og RAID 50).

  • RAID 0 + 1: lager to striper og speiler dem. Hvis det oppstår en enkelt stasjonsfeil, mislyktes et av speilene. På dette tidspunktet kjører det effektivt som RAID 0 uten redundans. Betydelig høyere risiko innføres under en gjenoppbygging enn RAID 1 + 0, da alle dataene fra alle stasjonene i den gjenværende stripen må leses i stedet for bare fra en stasjon, noe som øker sjansen for en uopprettelig lesefeil (URE) og utvider betydelig gjenoppbyggingsvinduet.
  • RAID 1 + 0: (se: RAID 10 ) lager et stripet sett fra en serie speilvendte stasjoner. Matrisen kan opprettholde flere stasjonstap så lenge ingen speil mister alle stasjonene.
  • JBOD RAID N + N: Med JBOD ( bare en haug med disker ) er det mulig å sammenkoble disker, men også volumer som RAID-sett. Med større stasjonskapasitet øker skriveforsinkelsen og gjenoppbyggingstiden dramatisk (spesielt som beskrevet ovenfor, med RAID 5 og RAID 6). Ved å dele et større RAID N-sett i mindre delmengder og sammenkoble dem med lineær JBOD, vil skrive- og gjenoppbyggingstiden reduseres. Hvis en hardware RAID-kontroller ikke er i stand til å hekke lineær JBOD med RAID N, kan lineær JBOD oppnås med OS-nivå programvare RAID i kombinasjon med separate RAID N-delmengder som er opprettet i en eller flere, hardware RAID-kontroller (r). Foruten en drastisk hastighetsøkning, gir dette også en betydelig fordel: muligheten til å starte en lineær JBOD med et lite sett med disker og å kunne utvide det totale settet med disker av forskjellig størrelse senere (med tiden, disker med større størrelse blir tilgjengelig på markedet). Det er en annen fordel i form av katastrofegjenoppretting (hvis en RAID N-undersett tilfeldigvis mislykkes, går ikke dataene på de andre RAID N-undergruppene tapt, noe som reduserer gjenopprettingstiden).

Ikke-standard nivåer

Mange andre konfigurasjoner enn de grunnleggende nummererte RAID-nivåene er mulige, og mange selskaper, organisasjoner og grupper har laget egne ikke-standardkonfigurasjoner, i mange tilfeller designet for å møte de spesielle behovene til en liten nisjegruppe. Slike konfigurasjoner inkluderer følgende:

  • Linux MD RAID 10 gir en generell RAID-driver som i sitt "nær" oppsett er standard RAID 1 med to stasjoner, og en standard RAID 1 + 0 med fire stasjoner; det kan imidlertid inneholde et hvilket som helst antall stasjoner, inkludert oddetall. Med sin "fjerne" layout kan MD RAID 10 kjøre både stripete og speilet, selv med bare to stasjoner i f2layout; dette kjører speiling med stripete avlesninger, noe som gir leseytelsen til RAID 0. Vanlig RAID 1, som levert av Linux-programvaren RAID , striper ikke avlesninger, men kan utføre avlesninger parallelt.
  • Hadoop har et RAID-system som genererer en paritetsfil ved å xorere en stripe med blokker i en enkelt HDFS-fil.
  • BeeGFS , det parallelle filsystemet, har intern striping (sammenlignbar med filbasert RAID0) og replikering (sammenlignbar med filbasert RAID10) for å samle gjennomstrømning og kapasitet til flere servere og er vanligvis basert på toppen av en underliggende RAID for å lage disk feil gjennomsiktig.
  • Declustered RAID sprer dobbelt (eller flere) kopier av dataene på tvers av alle diskene (muligens hundrevis) i et lagringsundersystem, mens du holder tilbake nok ledig kapasitet til at noen få disker kan mislykkes. Spredningen er basert på algoritmer som gir utseende av vilkårlighet. Når en eller flere disker mislykkes, blir de manglende kopiene ombygd til den ledige kapasiteten, igjen vilkårlig. Fordi gjenoppbyggingen gjøres fra og til alle gjenværende disker, fungerer den mye raskere enn med tradisjonell RAID, noe som reduserer den totale innvirkningen på klientene til lagringssystemet.

Implementeringer

Distribusjonen av data på flere stasjoner kan styres enten av dedikert maskinvare eller av programvare . En programvareløsning kan være en del av operativsystemet, en del av fastvaren og driverne som leveres med en standard stasjonskontroller (såkalt "hardware-assistert software RAID"), eller den kan ligge helt innenfor hardware RAID-kontrolleren.

Maskinvarebasert

Konfigurasjon av hardware RAID

Maskinvare-RAID-kontrollere kan konfigureres via kort- BIOS eller Option ROM før et operativsystem startes opp, og etter at operativsystemet er startet opp, er proprietære konfigurasjonsverktøy tilgjengelige fra produsenten av hver kontroller. I motsetning til nettverksgrensesnittkontrollere for Ethernet , som vanligvis kan konfigureres og betjenes helt gjennom vanlige operativsystemparadigmer som ifconfig i Unix , uten behov for tredjepartsverktøy, gir hver produsent av hver RAID-kontroller vanligvis sitt eget programvareverktøy. for hvert operativsystem som de anser for å støtte, sikre en låsning av leverandører og bidra til pålitelighetsproblemer.

For eksempel, i FreeBSD , for å få tilgang til konfigurasjonen av Adaptec RAID-kontrollere, er brukerne pålagt å aktivere Linux-kompatibilitetslag , og bruke Linux-verktøy fra Adaptec, noe som potensielt kompromitterer stabiliteten, påliteligheten og sikkerheten til oppsettet, spesielt når de tar langsiktig utsikt.

Noen andre operativsystemer har implementert sine egne generiske rammer for grensesnitt med hvilken som helst RAID-kontroller, og gir verktøy for overvåking av RAID-volumstatus, samt forenkling av stasjonsidentifikasjon gjennom LED-blinking, alarmadministrasjon og hot spare diskbetegnelser fra operativsystemet uten må starte på nytt i kort-BIOS. For eksempel var dette tilnærmingen som ble tatt av OpenBSD i 2005 med sin bio (4) pseudo-enhet og bioctl- verktøyet, som gir volumstatus, og tillater kontroll av LED / alarm / hotspare, samt sensorene (inkludert stasjonsføleren ) for helseovervåking; Denne tilnærmingen er senere blitt vedtatt og utvidet av NetBSD også i 2007.

Programvarebasert

RAID-implementeringer av programvare leveres av mange moderne operativsystemer . Programvare RAID kan implementeres som:

  • Et lag som abstracts flere enheter, for derved å tilveiebringe en enkelt virtuell enhet (for eksempel Linux-kjerne 's md og OpenBSDs softraid)
  • En mer generisk logisk volumbehandling (utstyrt med de fleste operativsystemer i serverklassen som Veritas eller LVM )
  • En komponent i filsystemet (for eksempel ZFS , Spectrum Scale eller Btrfs )
  • Et lag som sitter over ethvert filsystem og gir paritetsbeskyttelse til brukerdata (for eksempel RAID-F)

Noen avanserte filsystemer er designet for å organisere data på tvers av flere lagringsenheter direkte, uten behov for hjelp fra en tredjeparts logisk volumbehandling:

  • ZFS støtter ekvivalenter RAID 0, RAID 1, RAID 5 (RAID-Z1) single-parity, RAID 6 (RAID-Z2) double-parity, og en trippel-paritetsversjon (RAID-Z3) også referert til som RAID 7 Siden den alltid striper over toppnivå-vdevs, støtter den ekvivalenter av 1 + 0, 5 + 0 og 6 + 0 nestede RAID-nivåer (samt stripete trippelparitetssett), men ikke andre nestede kombinasjoner. ZFS er det opprinnelige filsystemet på Solaris og illumos , og er også tilgjengelig på FreeBSD og Linux. Åpen kildekode-ZFS-implementeringer er aktivt utviklet under OpenZFS- paraplyprosjektet.
  • Spectrum Scale , opprinnelig utviklet av IBM for mediestreaming og skalerbar analyse, støtter declustered RAID- beskyttelsesordninger opp til n + 3. En særegenhet er den dynamiske gjenoppbyggingsprioriteten som går med lav innvirkning i bakgrunnen til en dataklump treffer n + 0 redundans, i så fall blir denne klumpen raskt gjenoppbygd til minst n + 1. På toppen støtter Spectrum Scale metro-avstand RAID 1.
  • Btrfs støtter RAID 0, RAID 1 og RAID 10 (RAID 5 og 6 er under utvikling).
  • XFS ble opprinnelig designet for å gi en integrert volumbehandling som støtter sammenkobling, speiling og striping av flere fysiske lagringsenheter. Imidlertid mangler implementeringen av XFS i Linux-kjernen den integrerte volumbehandleren.

Mange operativsystemer gir RAID-implementeringer, inkludert følgende:

  • Hewlett-Packard er OpenVMS operativsystemet støtter RAID 1. speilet disker, kalt en 'skygge set', kan være på forskjellige steder for å bistå i katastrofegjenoppretting.
  • Apples macOS og macOS Server støtter RAID 0, RAID 1 og RAID 1 + 0.
  • FreeBSD støtter RAID 0, RAID 1, RAID 3 og RAID 5, og alle nestinger via GEOM- moduler og ccd.
  • Linux 's md støtter RAID 0, RAID 1, RAID 4, RAID 5, RAID 6, og alle nestings. Visse omforming / endring / utvidelsesoperasjoner støttes også.
  • Microsoft Windows støtter RAID 0, RAID 1 og RAID 5 ved hjelp av forskjellige programvareimplementeringer. Logical Disk Manager , introdusert med Windows 2000 , tillater oppretting av RAID 0, RAID 1 og RAID 5-volumer ved hjelp av dynamiske disker , men dette var bare begrenset til profesjonelle og serverutgaver av Windows til utgivelsen av Windows 8 . Windows XP kan endres for å låse opp støtte for RAID 0, 1 og 5. Windows 8 og Windows Server 2012 introduserte en RAID-lignende funksjon kjent som Storage Spaces , som også lar brukerne spesifisere speiling, paritet eller ingen redundans i en mappe -basis-mappebasis. Disse alternativene ligner på RAID 1 og RAID 5, men er implementert på et høyere abstraksjonsnivå.
  • NetBSD støtter RAID 0, 1, 4 og 5 via programvareimplementeringen, kalt RAIDframe.
  • OpenBSD støtter RAID 0, 1 og 5 via programvareimplementering, kalt softraid.

Hvis en oppstartsstasjon mislykkes, må systemet være sofistikert nok til å kunne starte fra den eller de gjenværende stasjonene. Tenk for eksempel på en datamaskin hvis disk er konfigurert som RAID 1 (speilvendte stasjoner); Hvis den første stasjonen i matrisen mislykkes, kan det hende at en første-trinns oppstartslaster ikke er sofistikert nok til å prøve å laste opp den andre trinnets oppstartslaster fra den andre stasjonen som en reserve. Andre trinns oppstartslaster for FreeBSD er i stand til å laste en kjerne fra en slik matrise.

Firmware- og driverbasert

En SATA 3.0- kontroller som gir RAID-funksjonalitet gjennom proprietær firmware og drivere

Programvareimplementert RAID er ikke alltid kompatibel med systemets oppstartsprosess, og det er generelt upraktisk for stasjonære versjoner av Windows. Imidlertid er RAID-kontrollere for maskinvare dyre og proprietære. For å fylle dette gapet ble billige "RAID-kontrollere" introdusert som ikke inneholder en dedikert RAID-kontrollerbrikke, men bare en standard driverkontrollbrikke med proprietær firmware og drivere. Under tidlig oppstart implementeres RAID av fastvaren, og når operativsystemet er fullstendig lastet inn, tar driverne over kontrollen. Følgelig kan slike kontrollere ikke fungere når driverstøtte ikke er tilgjengelig for vertsoperativsystemet. Et eksempel er Intel Rapid Storage Technology , implementert på mange hovedkort på forbrukernivå.

Fordi noe minimal maskinvarestøtte er involvert, kalles denne implementeringen også "maskinvareassistert programvare RAID", "hybridmodell" RAID eller til og med "falsk RAID". Hvis RAID 5 støttes, kan maskinvaren gi en XOR-akselerator for maskinvaren. En fordel med denne modellen fremfor den rene programvaren RAID er at - hvis du bruker en redundansmodus - er oppstartsstasjonen beskyttet mot feil (på grunn av fastvaren) under oppstartsprosessen, selv før driverne til operativsystemet tar over.

Integritet

Dataskrubbing (referert til i noen miljøer som patruljelesing ) innebærer periodisk lesing og kontroll av RAID-kontrolleren av alle blokkene i en matrise, inkludert de som ellers ikke er tilgjengelig. Dette oppdager dårlige blokker før bruk. Dataskrubbing sjekker for dårlige blokkeringer på hver lagringsenhet i en matrise, men bruker også arrayets redundans til å gjenopprette dårlige blokker på en enkelt stasjon og til å tilordne de gjenopprettede dataene til reserveblokker andre steder på stasjonen.

Ofte er en RAID-kontroller konfigurert til å "slippe" en komponentstasjon (det vil si å anta at en komponentstasjon mislyktes) hvis stasjonen ikke har svart i åtte sekunder eller så; Dette kan føre til at array-kontrolleren mister en god stasjon fordi den ikke har fått nok tid til å fullføre den interne feilgjenopprettingsprosedyren. Derfor kan bruk av forbrukermarkedsførte stasjoner med RAID være risikabelt, og såkalte "enterprise class" -stasjoner begrenser denne feilgjenopprettingstiden for å redusere risikoen. Western Digital's stasjonære stasjoner pleide å ha en spesifikk løsning. Et verktøy kalt WDTLER.exe begrenset stasjonens feilgjenopprettingstid. Verktøyet aktiverte TLER (tidsbegrenset feilgjenoppretting) , som begrenser feilgjenopprettingstiden til syv sekunder. Rundt september 2009 deaktiverte Western Digital denne funksjonen på stasjonære stasjoner (for eksempel Caviar Black-linjen), noe som gjorde slike stasjoner uegnet for bruk i RAID-konfigurasjoner. Western Digital Enterprise Class-stasjoner sendes imidlertid fra fabrikken med TLER aktivert. Lignende teknologier brukes av Seagate, Samsung og Hitachi. For ikke-RAID-bruk er en bedriftsklassestasjon med kort tidsavbrudd for feilgjenoppretting som ikke kan endres, derfor mindre egnet enn en stasjonær stasjon. På slutten av 2010 begynte Smartmontools- programmet å støtte konfigurasjonen av ATA Error Recovery Control, slik at verktøyet kunne konfigurere mange stasjonære harddisker for bruk i RAID-oppsett.

Mens RAID kan beskytte mot fysisk stasjonsfeil, blir dataene fortsatt utsatt for ødeleggelse av operatør, programvare, maskinvare og virus. Mange studier nevner operatørfeil som en vanlig kilde til funksjonsfeil, for eksempel at en serveroperatør bytter ut feil stasjon i en feil RAID, og ​​deaktiverer systemet (til og med midlertidig) i prosessen.

En matrise kan bli overveldet av katastrofal feil som overstiger gjenopprettingskapasiteten, og hele matrisen er i fare for fysisk skade av brann, naturkatastrofer og menneskelige krefter, men sikkerhetskopier kan lagres utenfor stedet. En matrise er også sårbar for kontrollerfeil fordi det ikke alltid er mulig å migrere den til en ny, annen kontroller uten tap av data.

Svakheter

Korrelerte feil

I praksis er stasjonene ofte i samme alder (med lignende slitasje) og underlagt samme miljø. Siden mange stasjonsfeil skyldes mekaniske problemer (som er mer sannsynlig på eldre stasjoner), bryter dette antagelsene om uavhengig identisk feilfrekvens blant stasjoner. feil er faktisk statistisk korrelert. I praksis er sjansene for en ny feil før den første er gjenopprettet (forårsaker tap av data) større enn sjansene for tilfeldige feil. I en undersøkelse av rundt 100 000 stasjoner var sannsynligheten for at to stasjoner i samme klynge skulle mislykkes innen en time fire ganger større enn den eksponentielle statistiske fordelingen forutslo - som karakteriserer prosesser der hendelser skjer kontinuerlig og uavhengig med en konstant gjennomsnittshastighet. Sannsynligheten for to feil i den samme 10-timersperioden var dobbelt så stor som en eksponentiell fordeling spådde.

Uopprettelige lesefeil under ombygging

Uopprettelige lesefeil (URE) som er sektorfeil, også kjent som latente sektorfeil (LSE). Det tilknyttede medievurderingsmål, UBE-frekvens (Unrecoverable Bit Error (UBE), er vanligvis garantert å være mindre enn en bit i 10 15 for stasjoner i bedriftens klasse ( SCSI , FC , SAS eller SATA), og mindre enn en bit i 10 14 for stasjonære stasjonsklasser (IDE / ATA / PATA eller SATA). Økende stasjonskapasitet og store RAID 5-forekomster har ført til at de maksimale feilratene ikke er tilstrekkelige til å garantere en vellykket gjenoppretting, på grunn av den høye sannsynligheten for at en slik feil oppstår på en eller flere gjenværende stasjoner under en ombygging av RAID-sett. Ved ombygging er paritetsbaserte ordninger som RAID 5 spesielt utsatt for effektene av URE, da de ikke bare påvirker sektoren der de forekommer, men også rekonstruerte blokker som bruker den sektoren for paritetsberegning.

Dobbeltbeskyttelsesparitetsbaserte ordninger, for eksempel RAID 6, forsøker å løse dette problemet ved å tilby redundans som muliggjør feil med dobbeltstasjon; som en ulempe, slike ordninger lider av forhøyet skrivestraf - det antall ganger lagringsmediet må nås under en enkelt skriveoperasjon. Ordninger som dupliserer (speil) data på en stasjon-til-stasjon-måte, for eksempel RAID 1 og RAID 10, har en lavere risiko fra URE enn de som bruker paritetsberegning eller speiling mellom stripete sett. Dataskrubbing , som en bakgrunnsprosess, kan brukes til å oppdage og gjenopprette fra urene, noe som effektivt reduserer risikoen for at de skjer under RAID-gjenoppbygging og forårsaker feil på dobbeltstasjonen. Gjenoppretting av UREs innebærer kartlegging av berørte underliggende disksektorer, ved bruk av stasjonens sektorom kartlegging; i tilfelle URE-er oppdaget under skrubbing i bakgrunnen, gjør dataredundans som tilbys av et fullt operativt RAID-sett, at de manglende dataene kan rekonstrueres og skrives om til en omlagt sektor.

Øker ombyggingstid og sannsynlighet for feil

Kjørekapasiteten har vokst mye raskere enn overføringshastigheten, og feilraten har bare falt litt i sammenligning. Derfor kan stasjoner med større kapasitet ta timer hvis ikke dager å gjenoppbygge, i løpet av hvilken tid andre stasjoner kan mislykkes, eller uoppdagede lesefeil kan dukke opp. Ombyggingstiden er også begrenset hvis hele matrisen fortsatt er i drift med redusert kapasitet. Gitt en matrise med bare en overflødig stasjon (som gjelder RAID-nivå 3, 4 og 5, og for "klassisk" to-stasjon RAID 1), vil en andre stasjonsfeil føre til fullstendig feil i matrisen. Selv om gjennomsnittlig tid mellom feil (MTBF) for individuelle stasjoner har økt over tid, har ikke denne økningen fulgt med den økte lagringskapasiteten til stasjonene. Tiden for å gjenoppbygge matrisen etter en enkelt stasjonsfeil, samt sjansen for en ny feil under en ombygging, har økt over tid.

Noen kommentatorer har erklært at RAID 6 bare er et "båndhjelpemiddel" i denne forbindelse, fordi det bare sparker problemet litt lenger nede i veien. I følge NetApp- studien fra 2006 av Berriman et al., Reduseres imidlertid sjansen for feil med en faktor på rundt 3800 (i forhold til RAID 5) for en riktig implementering av RAID 6, selv når du bruker råvaredrev. Likevel, hvis de nåværende observerte teknologitrendene forblir uendret, vil en RAID 6-array i 2019 ha samme sjanse for feil som RAID 5-motparten hadde i 2010.

Speilingsskjemaer som RAID 10 har en begrenset gjenopprettingstid ettersom de krever kopi av en enkelt mislykket stasjon, sammenlignet med paritetsskjemaer som RAID 6, som krever kopi av alle blokker av stasjonene i et array-sett. Triple parity ordninger, eller trippel speiling, er blitt foreslått som en tilnærming for å forbedre motstandsdyktigheten mot en ekstra stasjonsfeil i løpet av denne store ombyggingstiden.

Atomisitet

En systemkrasj eller annen avbrudd i en skriveoperasjon kan resultere i tilstander der pariteten er uforenlig med dataene på grunn av ikke-atomiciteten i skriveprosessen, slik at pariteten ikke kan brukes til gjenoppretting i tilfelle diskfeil. Dette kalles ofte RAID 5 skrivehull. RAID-skrivehullet er et kjent problem med datakorrupsjon i eldre og avanserte RAID-er, forårsaket av avbrutt ødeleggelse av skriver til disk. Skrivehullet kan adresseres med skrivelogglogging . Dette ble løst i mdadm ved å innføre en dedikert journalføringsenhet (for å unngå ytelsesstraff, vanligvis foretrekkes SSD-er og NVM- er) for det formålet.

Dette er litt forstått og sjelden nevnt feilmodus for overflødige lagringssystemer som ikke bruker transaksjonsfunksjoner. Databaseforsker Jim Gray skrev "Update in Place is a Poison Apple" i løpet av de første dagene av relasjonell databasekommersialisering.

Pålitelighet for skrivebuffer

Det er bekymringer for påliteligheten for skrivebuffer, spesielt når det gjelder enheter utstyrt med en tilbakekoblingsbuffer , som er et hurtigbufringssystem som rapporterer dataene som er skrevet så snart de er skrevet til hurtigbufferen, i motsetning til når de skrives til ikke -flyktig medium. Hvis systemet opplever et strømbrudd eller andre store feil, kan dataene gå tapt fra cachen før de når den ikke-flyktige lagringen. Av denne grunn inkluderer gode tilbakskrivingscache-implementeringer mekanismer, for eksempel overflødig batteristrøm, for å bevare cacheinnholdet på tvers av systemfeil (inkludert strømbrudd) og for å tømme hurtigbufferen ved systemstart.

Se også

Referanser

Eksterne linker