RAID - RAID

RAID ( / r d / ; " Redundant Array of Inexpensive Disks " eller " Redundant Array of Independent Disks ") är en datalagringsvirtualiseringsteknik som kombinerar flera fysiska hårddiskkomponenter till en eller flera logiska enheter för dataredundans , prestandaförbättring, eller båda. Detta var i motsats till det tidigare konceptet med mycket tillförlitliga hårddiskar för hårddiskar som kallas "enstaka stora dyra skivor" (SLED).

Data distribueras över enheterna på ett av flera sätt, så kallade RAID-nivåer, beroende på vilken nivå av redundans och prestanda som krävs . De olika scheman, eller datadistributionslayouter, namnges av ordet "RAID" följt av ett nummer, till exempel RAID 0 eller RAID 1. Varje schema eller RAID-nivå ger en annan balans mellan de viktigaste målen: tillförlitlighet , tillgänglighet , prestanda och kapacitet . RAID-nivåer högre än RAID 0 ger skydd mot oåterkalleligt sektor läsfel, liksom mot fel av hela fysiska enheter.

Historia

Uttrycket "RAID" uppfanns av David Patterson , Garth A. Gibson och Randy Katz vid University of California, Berkeley 1987. I deras tidning från juni 1988 "A Case for Redundant Arrays of Inexpensive Disks (RAID)", presenterad vid på SIGMOD- konferensen hävdade de att de högpresterande mainframe- hårddiskarna för tiden kunde bli slagna på prestanda av en rad billiga enheter som utvecklats för den växande marknaden för persondatorer . Även om fel skulle öka i proportion till antalet enheter, kan konfigurationen för redundans, tillförlitligheten för en array långt överstiga den för alla stora enskilda enheter.

Även om den terminologin ännu inte använts användes teknologierna för de fem nivåerna av RAID som nämndes i tidningen från juni 1988 i olika produkter innan tidningen publicerades, inklusive följande:

  • Mirroring (RAID 1) var väl etablerat på 1970-talet, inklusive till exempel Tandem NonStop Systems .
  • 1977 lämnade Norman Ken Ouchi på IBM in patent som avslöjade vad som därefter hette RAID 4.
  • Cirka 1983 började DEC leverera speglade RA8X-hårddiskar (nu känd som RAID 1) som en del av sitt HSC50-delsystem.
  • 1986, Clark et al. hos IBM lämnade in ett patent som avslöjade vad som därefter hette RAID 5.
  • Omkring 1988 använde Thinking Machines ' DataVault felkorrigeringskoder (nu känd som RAID 2) i en uppsättning hårddiskar. Ett liknande tillvägagångssätt användes i början av 1960-talet på IBM 353 .

Industritillverkare omdefinierade senare RAID-förkortningen för att stå för "Redundant Array of Independent Disks".

Översikt

Många RAID-nivåer använder ett felskyddsschema som kallas " paritet ", en allmänt använd metod inom informationsteknik för att tillhandahålla feltolerans i en viss uppsättning data. De flesta använder enkel XOR , men RAID 6 använder två separata pariteter baserade på respektive tillägg och multiplikation i ett visst Galois-fält eller Reed – Solomon-felkorrigering .

RAID kan också tillhandahålla datasäkerhet med SSD -enheter (SSD) utan kostnad för ett helt SSD-system. Till exempel kan en snabb SSD speglas med en mekanisk enhet. För att denna konfiguration ska ge en betydande hastighetsfördel behövs en lämplig styrenhet som använder snabb SSD för alla läsoperationer. Adaptec kallar detta "hybrid RAID".

Standardnivåer

Lagringsservrar med 24 hårddiskar vardera och inbyggd RAID-kontroller för hårdvara som stöder olika RAID-nivåer

Ursprungligen fanns det fem standardnivåer av RAID, men många variationer har utvecklats, inklusive flera kapslade nivåer och många icke-standardnivåer (mestadels proprietära ). RAID-nivåer och tillhörande dataformat standardiseras av Storage Networking Industry Association (SNIA) i Common RAID Disk Drive Format (DDF) -standarden:

RAID 0 består av striping , men ingen spegling eller paritet . Jämfört med en spänd volym är kapaciteten för en RAID 0-volym densamma; det är summan av drivenheternas kapacitet i satsen. Men eftersom striping distribuerar innehållet i varje fil mellan alla enheter i uppsättningen, orsakar fel på någon enhet att hela RAID 0-volymen och alla filer går förlorade. Som jämförelse bevarar en spänd volym filerna på de felaktiga enheterna. Fördelen med RAID 0 är att genomströmningen av läs- och skrivoperationer till valfri fil multipliceras med antalet enheter eftersom läsningar och skrivningar, till skillnad från spända volymer, görs samtidigt . Kostnaden är ökad sårbarhet för enhetsfel - eftersom alla enheter i en RAID 0-installation som misslyckas orsakar att hela volymen går förlorad, stiger volymens genomsnittliga felfrekvens med antalet anslutna enheter.

RAID 1 består av dataspegling, utan paritet eller striping. Data skrivs identiskt till två eller flera enheter, vilket ger en "speglad uppsättning" enheter. Således kan varje läsförfrågan servas av vilken enhet som helst i satsen. Om en begäran sänds till varje enhet i uppsättningen kan den servas av den enhet som först får åtkomst till data (beroende på dess söktid och rotationsfördröjning ), vilket förbättrar prestandan. Hållbar läsgenomströmning, om styrenheten eller mjukvaran är optimerad för den, närmar sig summan av genomströmningar för varje enhet i uppsättningen, precis som för RAID 0. Den faktiska läsgenomströmningen för de flesta RAID 1-implementationer är långsammare än den snabbaste enheten. Skrivgenomströmningen är alltid långsammare eftersom varje enhet måste uppdateras och den långsammaste enheten begränsar skrivprestandan. Array fortsätter att fungera så länge som minst en enhet fungerar.

RAID 2 består av bitnivåband med dedikerad Hamming- kodparitet. All skivspindelrotation synkroniseras och data stripas så att varje sekventiell bit finns på en annan enhet. Hamming-kodparitet beräknas över motsvarande bitar och lagras på minst en paritetsenhet. Denna nivå är endast av historisk betydelse; även om det användes på vissa tidiga maskiner (till exempel Thinking Machines CM-2), används det från 2014 inte av något kommersiellt tillgängligt system.

RAID 3 består av byte-nivå striping med dedikerad paritet. All skivspindelrotation synkroniseras och data stripas så att varje sekventiell byte finns på en annan enhet. Paritet beräknas över motsvarande byte och lagras på en dedikerad paritetsenhet. Även om det finns implementeringar används RAID 3 inte i praktiken.

RAID 4 består av blocknivå striping med dedikerad paritet. Denna nivå användes tidigare av NetApp , men har nu till stor del ersatts av en egenutvecklad implementering av RAID 4 med två paritetsskivor, kallad RAID-DP . Den största fördelen med RAID 4 jämfört med RAID 2 och 3 är I / O-parallellitet: i RAID 2 och 3 kräver en enda läsbar I / O-operation att läsa hela gruppen datadrev, medan i RAID 4 gör en I / O-läsning behöver inte spridas över alla datadiskar. Som ett resultat kan fler I / O-operationer utföras parallellt, vilket förbättrar prestandan för små överföringar.

RAID 5 består av blocknivå striping med distribuerad paritet. Till skillnad från RAID 4 distribueras paritetsinformation mellan enheterna, vilket kräver att alla enheter utom en vara närvarande för att fungera. Vid fel på en enda enhet kan efterföljande läsningar beräknas från den distribuerade pariteten så att inga data går förlorade. RAID 5 kräver minst tre diskar. Liksom alla koncept med en enda paritet är stora RAID 5-implementeringar mottagliga för systemfel på grund av trender när det gäller array-ombyggnadstid och risken för enhetsfel under ombyggnad (se avsnittet " Öka ombyggnadstid och felsannolikhet " nedan). Om du vill bygga om en array krävs att du läser all data från alla diskar, vilket öppnar en chans för ett andra enhetsfel och förlusten av hela arrayen.

RAID 6 består av blocknivå striping med dubbel distribuerad paritet. Dubbel paritet ger feltolerans upp till två felaktiga enheter. Detta gör större RAID-grupper mer praktiska, särskilt för system med hög tillgänglighet, eftersom det tar längre tid att återställa stora enheter. RAID 6 kräver minst fyra diskar. Som med RAID 5 resulterar ett enda enhetsfel i minskad prestanda för hela arrayen tills den misslyckade enheten har bytts ut. Med en RAID 6-array, med enheter från flera källor och tillverkare, är det möjligt att mildra de flesta problemen i samband med RAID 5. Ju större enhetskapacitet och ju större arraystorlek, desto viktigare blir det att välja RAID 6 istället av RAID 5. RAID 10 minimerar också dessa problem.

Kapslad (hybrid) RAID

I det som ursprungligen kallades hybrid RAID tillåter många lagringskontroller att RAID-nivåer kan kapslas. Elementen i en RAID kan vara antingen enskilda enheter eller arrays själva. Arrays är sällan kapslade mer än en nivå djup.

Den slutliga matrisen är känd som den översta matrisen. När den översta matrisen är RAID 0 (som i RAID 1 + 0 och RAID 5 + 0), utelämnar de flesta leverantörerna "+" (ger RAID 10 respektive RAID 50).

  • RAID 0 + 1: skapar två ränder och speglar dem. Om ett enda enhetsfel inträffar misslyckades en av speglarna, just nu körs den effektivt som RAID 0 utan redundans. Signifikant högre risk införs under en ombyggnad än RAID 1 + 0 eftersom all data från alla enheter i den återstående randen måste läsas snarare än bara från en enhet, vilket ökar risken för ett oåterkalleligt läsfel (URE) och avsevärt utvidgar återuppbyggnadsfönstret.
  • RAID 1 + 0: (se: RAID 10 ) skapar en randig uppsättning från en serie speglade enheter. Matrisen kan upprätthålla flera enhetsförluster så länge ingen spegel tappar alla sina enheter.
  • JBOD RAID N + N: Med JBOD ( bara ett gäng diskar ) är det möjligt att sammanfoga skivor, men också volymer som RAID-uppsättningar. Med större enhetskapacitet ökar skrivfördröjningen och återuppbyggnadstiden dramatiskt (särskilt som beskrivs ovan med RAID 5 och RAID 6). Genom att dela upp en större RAID N-uppsättning i mindre delmängder och sammanfoga dem med linjär JBOD kommer skriv- och ombyggnadstiden att reduceras. Om en hårdvaru-RAID-kontroller inte kan kapa linjär JBOD med RAID N, kan linjär JBOD uppnås med OS-nivå-programvara RAID i kombination med separata RAID N-underuppsättningsvolymer skapade inom en eller flera hårdvaru-RAID-styrenheter. Förutom en drastisk hastighetsökning ger detta också en väsentlig fördel: möjligheten att starta en linjär JBOD med en liten uppsättning skivor och att kunna utöka den totala uppsättningen med skivor av olika storlek, senare (med tiden, skivor med större storlek blir tillgänglig på marknaden). Det finns en annan fördel i form av katastrofåterställning (om en RAID N-delmängd råkar misslyckas, går inte data på de andra RAID N-undergrupperna förlorade, vilket minskar återställningstiden).

Icke-standardiserade nivåer

Många konfigurationer än de grundläggande numrerade RAID-nivåerna är möjliga, och många företag, organisationer och grupper har skapat sina egna icke-standardkonfigurationer, i många fall utformade för att möta de specialbehov som en liten nischgrupp har. Sådana konfigurationer inkluderar följande:

  • Linux MD RAID 10 tillhandahåller en allmän RAID-drivrutin som i sin "nära" layout är standard RAID 1 med två enheter och en standard RAID 1 + 0 med fyra enheter; det kan dock inkludera valfritt antal enheter, inklusive udda siffror. Med sin "långa" layout kan MD RAID 10 köras både randigt och speglat, även med bara två enheter i f2layout; detta kör spegling med randiga läsningar, vilket ger läsprestanda för RAID 0. Regelbunden RAID 1, som tillhandahålls av Linux-programvaran RAID , gör inte stripläsningar utan kan utföra läsningar parallellt.
  • Hadoop har ett RAID-system som genererar en paritetsfil genom att xorera en remsa i en enda HDFS-fil.
  • BeeGFS , det parallella filsystemet, har interna remsor (jämförbar med filbaserad RAID0) och replikering (jämförbar med filbaserad RAID10) för att samla genomströmning och kapacitet hos flera servrar och är vanligtvis baserad på en underliggande RAID för att skapa disk misslyckanden transparent.
  • Declustered RAID sprider dubbla (eller fler) kopior av data över alla skivor (möjligen hundratals) i ett lagringsundersystem, samtidigt som man håller tillbaka tillräckligt med ledig kapacitet för att möjliggöra att några skivor misslyckas. Spridningen baseras på algoritmer som ger upphov till godtycklighet. När en eller flera skivor misslyckas byggs de saknade kopiorna om till den lediga kapaciteten, igen godtyckligt. Eftersom ombyggnaden sker från och till alla återstående skivor fungerar den mycket snabbare än med traditionell RAID, vilket minskar den totala effekten på lagringssystemets klienter.

Implementeringar

Fördelningen av data över flera enheter kan hanteras antingen av dedikerad datorhårdvara eller av programvara . En mjukvarulösning kan vara en del av operativsystemet, en del av den fasta programvaran och de drivrutiner som levereras med en standarddrivkontroll (så kallad "hårdvaruassisterad programvara RAID"), eller så kan den finnas helt i hårdvaru-RAID-styrenheten.

Hårdvarubaserad

Konfiguration av hårdvaru-RAID

RAID-styrenheter för hårdvara kan konfigureras via kort- BIOS eller Option ROM innan ett operativsystem startas, och efter att operativsystemet har startats finns egna konfigurationsverktyg tillgängliga från tillverkaren av varje styrenhet. Till skillnad från nätverksgränssnittskontrollerna för Ethernet , som vanligtvis kan konfigureras och servas helt genom de vanliga operativsystemsparadigmerna som ifconfig i Unix , utan behov av några tredjepartsverktyg, tillhandahåller varje tillverkare av varje RAID-styrenhet vanligtvis sitt eget programvara. för varje operativsystem som de anser stödja, säkerställa en låsning av leverantören och bidra till tillförlitlighetsproblem.

I FreeBSD , till exempel, för att få åtkomst till konfigurationen av Adaptec RAID-kontroller, måste användarna aktivera Linux-kompatibilitetslager och använda Linux-verktyget från Adaptec, vilket eventuellt äventyrar stabiliteten, tillförlitligheten och säkerheten för deras installation, särskilt när man tar långsiktig vy.

Vissa andra operativsystem har implementerat sina egna generiska ramar för gränssnitt med vilken RAID-styrenhet som helst och tillhandahåller verktyg för övervakning av RAID-volymstatus, samt underlättar enhetsidentifiering genom LED-blinkning, larmhantering och hot reservdiskbeteckningar inifrån operativsystemet utan måste starta om till kort-BIOS. Detta var till exempel metoden som OpenBSD använde 2005 med dess bio (4) pseudo-enhet och bioctl- verktyget, som ger volymstatus och möjliggör kontroll av LED / larm / hotspare, samt sensorerna (inklusive drivsensorn ) för hälsoövervakning, detta tillvägagångssätt har sedan antagits och utökats av NetBSD också under 2007.

Programvarubaserad

RAID-implementeringar av programvara tillhandahålls av många moderna operativsystem . Software RAID kan implementeras som:

  • Ett skikt som abstraherar flera enheter, varigenom en enda virtuell enhet (såsom Linux-kärnan är md och OpenBSD s Softraid)
  • En mer generisk logisk volymhanterare (försedd med de flesta operativsystem i serverklasser som Veritas eller LVM )
  • En komponent i filsystemet (som ZFS , Spectrum Scale eller Btrfs )
  • Ett lager som sitter ovanför vilket filsystem som helst och ger paritetsskydd till användardata (t.ex. RAID-F)

Vissa avancerade filsystem är utformade för att organisera data över flera lagringsenheter direkt, utan att behöva hjälp från en tredje parts logiska volymhanterare:

  • ZFS stöder motsvarigheterna RAID 0, RAID 1, RAID 5 (RAID-Z1) singelparitet, RAID 6 (RAID-Z2) dubbelparitet och en trippelparitetsversion (RAID-Z3) kallas även RAID 7 Eftersom den alltid ränder över vdevs på toppnivå stöder den ekvivalenterna för 1 + 0, 5 + 0 och 6 + 0 kapslade RAID-nivåer (liksom randiga trippelparitetsuppsättningar) men inte andra kapslade kombinationer. ZFS är det ursprungliga filsystemet på Solaris och illumos , och finns också på FreeBSD och Linux. Öppen källkod ZFS implementationer aktivt utvecklats under OpenZFS paraplyprojekt.
  • Spectrum Scale , som ursprungligen utvecklades av IBM för mediastreaming och skalbar analys, stöder declusterade RAID- skyddssystem upp till n + 3. En särskildhet är den dynamiska återuppbyggnadsprioriteten som körs med låg påverkan i bakgrunden tills en dataklump träffar n + 0-redundans, i vilket fall denna bit snabbt byggs om till minst n + 1. Ovanpå stöder Spectrum Scale tunnelbana RAID 1.
  • Btrfs stöder RAID 0, RAID 1 och RAID 10 (RAID 5 och 6 är under utveckling).
  • XFS designades ursprungligen för att tillhandahålla en integrerad volymhanterare som stöder sammanfogning, spegling och stripning av flera fysiska lagringsenheter. Implementeringen av XFS i Linux-kärnan saknar dock den integrerade volymhanteraren.

Många operativsystem erbjuder RAID-implementeringar, inklusive följande:

  • Hewlett-Packard : s OpenVMS operativsystemet stöder RAID 1. De speglade diskar, en så kallad 'skugg set', kan vara på olika platser för att underlätta katastrofåterställning.
  • Apples macOS och macOS Server stöder RAID 0, RAID 1 och RAID 1 + 0.
  • FreeBSD stöder RAID 0, RAID 1, RAID 3 och RAID 5, och alla häckar via GEOM- moduler och ccd.
  • Linux 's md bärare RAID 0, RAID 1, RAID 4, RAID 5, RAID 6, och alla häck. Vissa omformnings- / storleksändrings- / utökningsoperationer stöds också.
  • Microsoft Windows stöder RAID 0, RAID 1 och RAID 5 med olika programvaruimplementeringar. Logical Disk Manager , som introducerades med Windows 2000 , möjliggör skapandet av RAID 0, RAID 1 och RAID 5-volymer med hjälp av dynamiska diskar , men detta var endast begränsat till professionella och serverversioner av Windows fram till lanseringen av Windows 8 . Windows XP kan modifieras för att låsa upp stöd för RAID 0, 1 och 5. Windows 8 och Windows Server 2012 introducerade en RAID-liknande funktion som kallas Storage Spaces , som också tillåter användare att specificera spegling, paritet eller ingen redundans i en mapp -baserad mapp. Dessa alternativ liknar RAID 1 och RAID 5, men implementeras på en högre abstraktionsnivå.
  • NetBSD stöder RAID 0, 1, 4 och 5 via dess programvaruimplementering, med namnet RAIDframe.
  • OpenBSD stöder RAID 0, 1 och 5 via dess programvaruimplementering, namngiven softraid.

Om en startdrift misslyckas måste systemet vara tillräckligt sofistikerat för att kunna starta från den eller de återstående enheterna. Tänk till exempel på en dator vars disk är konfigurerad som RAID 1 (speglade enheter); om den första enheten i matrisen misslyckas kan det hända att en första stegs startladdare inte är tillräckligt sofistikerad för att försöka ladda den andra stegets startladdare från den andra enheten som reserv. Startladdaren i andra etappen för FreeBSD kan ladda en kärna från en sådan matris.

Firmware- och drivrutinsbaserad

En SATA 3.0- kontroller som tillhandahåller RAID-funktionalitet genom egen firmware och drivrutiner

Programvaruimplementerad RAID är inte alltid kompatibel med systemets startprocess, och det är i allmänhet opraktiskt för skrivbordsversioner av Windows. RAID-styrenheter för hårdvara är dock dyra och proprietära. För att fylla detta gap introducerades billiga "RAID-kontroller" som inte innehåller ett dedikerat RAID-kontrollchip utan bara ett standarddrivkontrollchip med egen firmware och drivrutiner. Under tidig uppstart implementeras RAID av den inbyggda programvaran och när operativsystemet har laddats mer fullständigt tar drivrutinerna över kontrollen. Följaktligen kanske sådana styrenheter inte fungerar när drivrutinssupport inte är tillgängligt för värdoperativsystemet. Ett exempel är Intel Rapid Storage Technology , implementerat på många moderkort på konsumentnivå.

Eftersom vissa minimala hårdvarusupport är inblandade kallas denna implementering också "hårdvarustödad programvara RAID", "hybridmodell" RAID eller till och med "falsk RAID". Om RAID 5 stöds kan maskinvaran tillhandahålla en XOR-accelerator för hårdvara. En fördel med den här modellen i förhållande till den rena programvaran RAID är att - om du använder ett redundansläge - är boot-enheten skyddad från fel (på grund av firmware) under startprocessen redan innan operativsystemets drivrutiner tar över.

Integritet

Dataskrubbning (kallas i vissa miljöer för patrullläsning ) innebär periodisk läsning och kontroll av RAID-styrenheten av alla block i en matris, inklusive de som annars inte nås. Detta upptäcker dåliga block före användning. Dataskurning kontrollerar om det finns dåliga block på varje lagringsenhet i en matris, men använder också arrayens redundans för att återställa dåliga block på en enda enhet och för att omfördela de återställda data till reservblock någon annanstans på enheten.

Ofta är en RAID-kontroller konfigurerad att "släppa" en komponentenhet (det vill säga att anta att en komponentenhet har misslyckats) om enheten inte svarar i åtta sekunder eller så; detta kan orsaka att arraykontrollen tappar en bra enhet eftersom den enheten inte har fått tillräckligt med tid för att slutföra sitt interna felåterställningsförfarande. Följaktligen kan användning av konsumentmarknadsförda enheter med RAID vara riskabelt, och så kallade "enterprise class" -enheter begränsar denna felåterställningstid för att minska risken. Western Digital's stationära enheter hade tidigare en specifik fix. Ett verktyg som heter WDTLER.exe begränsade en enhets felåterställningstid. Verktyget aktiverade TLER (tidsbegränsad felåterställning) , vilket begränsar felåterställningstiden till sju sekunder. Cirka september 2009 inaktiverade Western Digital den här funktionen i sina stationära enheter (som Caviar Black-linjen), vilket gör sådana enheter olämpliga för användning i RAID-konfigurationer. Western Digital-företagsklassenheter levereras dock från fabriken med TLER aktiverat. Liknande tekniker används av Seagate, Samsung och Hitachi. För icke-RAID-användning är en enhet i företagsklass med en kort timeout för felåterställning som inte kan ändras därför mindre lämplig än en stationär enhet. I slutet av 2010 började Smartmontools- programmet att stödja konfigurationen av ATA Error Recovery Control, vilket gör att verktyget kan konfigurera många hårddiskar på skrivbordsklassen för användning i RAID-inställningar.

Även om RAID kan skydda mot fysiska enhetsfel, utsätts data fortfarande för förstöring av operatör, programvara, hårdvara och virus. Många studier citerar operatörsfel som en vanlig källa till fel, till exempel att en serveroperatör byter ut fel enhet i en felaktig RAID och inaktiverar systemet (även tillfälligt) under processen.

En array kan överväldigas av katastrofalt fel som överstiger dess återhämtningskapacitet och hela arrayen riskerar fysisk skada genom brand, naturkatastrofer och mänskliga krafter, men säkerhetskopior kan lagras utanför anläggningen. En array är också sårbar för kontrollerfel eftersom det inte alltid är möjligt att migrera den till en ny, annan controller utan dataförlust.

Svagheter

Korrelerade fel

I praktiken är enheterna ofta i samma ålder (med liknande slitage) och utsätts för samma miljö. Eftersom många enhetsfel beror på mekaniska problem (vilket är mer sannolikt på äldre enheter), bryter detta mot antagandena om oberoende, identisk felnivå bland enheter; misslyckanden är faktiskt statistiskt korrelerade. I praktiken är chanserna för ett andra fel innan det första har återställts (orsakar dataförlust) högre än chanserna för slumpmässiga fel. I en studie av cirka 100 000 enheter var sannolikheten för att två enheter i samma kluster skulle misslyckas inom en timme fyra gånger större än den exponentiella statistiska fördelningen förutsagde - vilket kännetecknar processer där händelser inträffar kontinuerligt och oberoende med en konstant genomsnittlig hastighet. Sannolikheten för två fel under samma 10-timmarsperiod var dubbelt så stor som en exponentiell fördelning förutsagde.

Oåtervinnbara läsfel under ombyggnaden

Unrecoverable read error (URE) read as sector read failures, även känt som latent sector error (LSE). Det associerade mediebedömningsmåttet, UBE-frekvens (unrecoverable bit error), garanteras vanligtvis att vara mindre än en bit i 10 15 för enheter i företagsklass ( SCSI , FC , SAS eller SATA) och mindre än en bit i 10 14 för stationära datorer (IDE / ATA / PATA eller SATA). Ökande enhetskapacitet och stora RAID 5-instanser har lett till att de maximala felnivåerna är otillräckliga för att garantera en lyckad återställning på grund av den höga sannolikheten för att ett sådant fel inträffar på en eller flera återstående enheter under en ombyggnad av RAID-set. Vid ombyggnad är paritetsbaserade system som RAID 5 särskilt utsatta för effekterna av URE eftersom de inte bara påverkar den sektor där de förekommer utan rekonstruerade block som använder den sektorn för paritetsberäkning.

Paritetsbaserade system med dubbla skydd, som RAID 6, försöker lösa problemet genom att tillhandahålla redundans som möjliggör fel på dubbla enheter; som en nackdel drabbas sådana scheman av förhöjt skrivstraff - antalet gånger som lagringsmediet måste nås under en enda skrivoperation. Scheman som duplicerar (speglar) data på ett enhet-till-enhet-sätt, såsom RAID 1 och RAID 10, har en lägre risk från URE än de som använder paritetsberäkning eller spegling mellan randiga uppsättningar. Dataskrubbning , som en bakgrundsprocess, kan användas för att upptäcka och återhämta sig från URE, vilket effektivt minskar risken för att de händer under RAID-ombyggnader och orsakar fel med dubbla enheter. Återhämtningen av URE: er innebär att kartläggning av berörda underliggande disksektorer omformas, med användning av enhetens sektormappningspool; om URE upptäcks under bakgrundsskrubbning, möjliggör dataredundans som tillhandahålls av en fullt fungerande RAID-uppsättning att de saknade uppgifterna kan rekonstrueras och skrivas om till en ombildad sektor.

Ökar ombyggnadstiden och sannolikheten för fel

Drivkapaciteten har ökat mycket snabbare än överföringshastigheten, och felfrekvensen har bara sjunkit lite i jämförelse. Därför kan enheter med större kapacitet ta timmar om inte några dagar att bygga om, under vilken tid andra enheter kan misslyckas eller ännu oupptäckta läsfel kan dyka upp. Ombyggnadstiden är också begränsad om hela matrisen fortfarande är i drift med reducerad kapacitet. Med tanke på en array med endast en redundant enhet (som gäller RAID-nivå 3, 4 och 5 och för "klassisk" två-enhet RAID 1) skulle ett andra enhetsfel orsaka fullständigt fel i arrayen. Även om enskilda enhets genomsnittliga tid mellan fel (MTBF) har ökat över tiden har denna ökning inte hållit jämna steg med enheternas ökade lagringskapacitet. Tiden att bygga om arrayen efter ett enda enhetsfel, liksom chansen för ett andra fel under en ombyggnad, har ökat över tiden.

Vissa kommentatorer har förklarat att RAID 6 bara är ett "bandhjälpmedel" i detta avseende, eftersom det bara sparkar problemet lite längre ner på vägen. Enligt Netrim- studien från 2006 av Berriman et al. Minskar dock risken för misslyckande med en faktor på cirka 3 800 (relativt RAID 5) för en korrekt implementering av RAID 6, även vid användning av råvaruenheter. Ändå, om de nu observerade teknologitrenderna förblir oförändrade, kommer en RAID 6-array under 2019 att ha samma chans att misslyckas som RAID 5-motsvarigheten 2010.

Speglingsscheman som RAID 10 har en begränsad återställningstid eftersom de kräver kopiering av en enda misslyckad enhet jämfört med paritetsscheman som RAID 6, som kräver kopiering av alla block av enheter i en arrayuppsättning. Trippelparitetsscheman, eller trippel spegling, har föreslagits som ett tillvägagångssätt för att förbättra motståndskraften mot ett ytterligare enhetsfel under denna stora ombyggnadstid.

Atomicitet

En systemkrasch eller annat avbrott i en skrivoperation kan leda till tillstånd där pariteten är oförenlig med data på grund av skrivprocessens icke-atomicitet, så att pariteten inte kan användas för återställning i händelse av ett diskfel. Detta kallas vanligtvis RAID 5-skrivhålet. RAID-skrivhålet är ett känt problem med datakorruption i äldre och low-end RAID, orsakat av avbruten destaging av skrivningar till disk. Skrivhålet kan hanteras med loggning inför skrivning . Detta fixades i mdadm genom att införa en dedikerad journalanordning (för att undvika prestationsstraff föredras vanligtvis SSD och NVM ) för det ändamålet.

Detta är lite förstått och sällan nämnt felfunktion för redundanta lagringssystem som inte använder transaktionsfunktioner. Databasforskaren Jim Gray skrev "Update in Place is a Poison Apple" under de tidiga dagarna av relationsdatabasekommercialisering.

Tillförlitlighet för skrivcache

Det finns farhågor om tillförlitlighet för skrivcache, särskilt när det gäller enheter utrustade med en återskrivningscache , vilket är ett cachingsystem som rapporterar data som skrivna så snart de skrivs till cache, i motsats till när de skrivs till icke -flyktigt medium. Om systemet upplever strömavbrott eller annat allvarligt fel kan data förloras oåterkalleligt från cachen innan de når det icke-flyktiga lagringsutrymmet. Av denna anledning inkluderar bra återkopplingscacheimplementeringar mekanismer, såsom redundant batteriström, för att bevara cacheinnehåll över systemfel (inklusive strömavbrott) och för att spola cache vid systemstart.

Se även

Referenser

externa länkar