RAID ( Redundant Array of Independent Disks - en redundant array av oberoende (oberoende) diskar ) är en datavirtualiseringsteknik för att kombinera flera fysiska diskenheter till en logisk modul för att förbättra feltoleransen och (eller) prestanda.
Termen "RAID" föreslogs 1987 av Patterson ( David A. Patterson ), Gibson ( Garth A. Gibson ) och Katz ( Randy H. Katz ) som en förkortning för engelska. Redundant Array of Inexpensive Disks ("redundant Array of Inexpensive Disks"). I sin presentation argumenterade de för sin uppfinning för den relativt låga kostnaden för en rad billiga diskar designade för persondatorer , jämfört med högkapacitetsdiskar, som de kallade "SLED" ( Single Large Expensive Drive ) [1] .
Senare ändrades avkodningen av termen till Redundant Array of Independent Disks (en redundant array av oberoende (oberoende) diskar), eftersom dyra serverdiskar ofta användes i arrayer.
Petterson och kollegor på Berkeley presenterade specifikationer för fem nivåer av RAID som har blivit de facto-standarden [1] :
Bland moderna implementeringar av RAID-matriser finns ytterligare specifikationsnivåer:
En hårdvaru-RAID-styrenhet kan ha ytterligare funktioner och stödja flera RAID-arrayer på olika nivåer samtidigt. Samtidigt har många RAID-kontroller inbyggda i moderkortet bara två tillstånd i BIOS-inställningarna (aktiverad eller inaktiverad), så en ny hårddisk som är ansluten till en oanvänd kontrollerplats med RAID-läge aktiverat kan ignoreras av systemet tills den är associerad som en annan (spand)JBOD bestående av en disk.
RAID-nivåer implementerade med hjälp av ZFS -filsystemet :
RAID 0 (striping - "striping") är en diskuppsättning av två eller flera hårddiskar utan redundans. Informationen är uppdelad i datablock ( ) med fast längd och skrivs till båda/flera skivor i tur och ordning, det vill säga ett block ( ) till den första skivan, respektive det andra blocket ( ) till den andra skivan.
Fördelar:
Brister:
RAID 1 (spegling - "spegling") - en uppsättning av två (eller flera) diskar som är fullständiga kopior av varandra. Ej att förväxla med RAID 1+0 (RAID 10), RAID 0+1 (RAID 01), som använder mer sofistikerade speglingsmekanismer.
Fördelar:
Brister:
Matriser av denna typ är baserade på användningen av Hamming-koden . Diskar är indelade i två grupper: för data och för felkorrigeringskoder, och om data lagras på diskar behövs diskar för att lagra korrigeringskoder . Det totala antalet diskar i detta fall kommer att vara lika med . Data fördelas över diskar avsedda för lagring av information på samma sätt som i RAID 0, det vill säga de är uppdelade i små block efter antalet diskar. De återstående diskarna lagrar felkorrigeringskoder, enligt vilka det är möjligt att återställa information i händelse av ett hårddiskfel. Hammingmetoden har länge använts i ECC- minnet och låter dig korrigera enstaka fel och upptäcka dubbla fel i farten.
Fördelen med en RAID 2-array är att diskoperationer är snabbare än en enda disk.
Nackdelen med en RAID 2-array är att det minsta antalet diskar där det är vettigt att använda det är 7, bara från detta antal kräver det färre diskar än RAID 1 (4 diskar med data, 3 diskar med felkorrigeringskoder) , minskar ytterligare redundans exponentiellt.
I en RAID 3-array av diskar delas data upp i bitar som är mindre än en sektor (delade i byte) och fördelas över diskarna. En annan disk används för att lagra paritetsblock. I RAID 2 användes diskar för detta ändamål , men det mesta av informationen på kontrolldiskarna användes för snabbfelkorrigering, medan de flesta användare är nöjda med enkel dataåterställning i händelse av skada (med XOR-operationen) , för vilken det finns tillräckligt med data som får plats på en dedikerad hårddisk.
Skillnader mellan RAID 3 och RAID 2: omöjligheten att korrigera fel i farten.
Fördelar:
Brister:
RAID 4 liknar RAID 3, men skiljer sig genom att data delas upp i block snarare än byte. Således var det möjligt att delvis "vinna" problemet med låg dataöverföringshastighet av en liten mängd. Skrivningar är långsamma på grund av att paritet för ett block genereras under skrivning och skrivs till en enda disk.
Av de mycket använda lagringssystemen används RAID-4 på NetApp -enheter (NetApp FAS), där dess brister framgångsrikt har eliminerats genom att driva diskar i ett speciellt gruppskrivläge, bestämt av det interna WAFL -filsystemet som används på enheter .
RAID 5 är en diskarray med datablockstriping och paritet [3] .
Den största nackdelen med RAID-nivåerna 2 till 4 är oförmågan att utföra parallella skrivoperationer, eftersom en separat paritetsdisk används för att lagra paritetsinformation. RAID 5 har inte denna nackdel. Datablock och kontrollsummor skrivs cykliskt till alla diskar i arrayen, det finns ingen asymmetri i diskkonfigurationen. Kontrollsummor är resultatet av en XOR- operation (exklusiv eller). Xor har en funktion som gör det möjligt att ersätta valfri operand med resultatet och, med hjälp av xor-algoritmen, få den saknade operanden som ett resultat. Till exempel: a xor b = c (där a , b , c är tre diskar i raid-arrayen), om a misslyckas kan vi få det genom att sätta c på dess plats och rita xor mellan c och b : c xor b = a . Detta gäller oavsett antalet operander: a xor b xor c xor d = e . Om c misslyckas , så tar e dess plats och efter xor får vi c som ett resultat : a xor b xor e xor d = c . Denna metod ger i huvudsak version 5 feltolerans. Det tar bara en disk för att lagra xor- resultatet , vars storlek är lika stor som storleken på någon annan disk i RAID.
Minsta antal använda diskar är tre.
Fördelar:
Brister:
När en disk misslyckas, minskar volymens tillförlitlighet omedelbart till RAID 0-nivån med motsvarande antal diskar n-1, det vill säga n-1 gånger lägre än tillförlitligheten för en disk - detta tillstånd kallas kritisk (degradera eller kritisk). Att återställa en array till normal drift kräver en långvarig återställningsprocess som kommer med en betydande prestandaförlust och ökad risk. Under återställning (ombyggnad eller rekonstruktion) utför styrenheten en lång intensiv läsning, vilket kan orsaka fel på en eller flera diskar i arrayen. Dessutom kan läsningar upptäcka tidigare oupptäckta läsfel i kalla datamatriser (data som inte nås under normal matrisdrift, arkiverade och inaktiva data), vilket förhindrar återställning. Om ett fel inträffar innan arrayen är fullständigt återställd, eller ett oåterställbart läsfel inträffar på åtminstone ytterligare en disk, så förstörs arrayen och data på den kan inte återställas med konventionella metoder. RAID-kontroller kan använda SMART- attributanalys för att förhindra sådana situationer.
RAID 6 är en array med fyra eller fler enheter med P+Q- eller DP-paritet, designad för att skydda mot dataförlust om två hårddiskar i arrayen misslyckas samtidigt. Sådan tillförlitlighet uppnås på bekostnad av prestanda och kapacitetsminskning - för att återställa information krävs två beräkningsoperationer, och två diskar i arrayen används inte för att lagra data, utan för att övervaka deras integritet och återställa från fel. På grund av de två redundansskivorna har den en högre grad av tillförlitlighet. Bland diskarrayer är RAID 6 den mest pålitliga, men också den långsammaste. Dataskrivhastigheten i en RAID 6-array är märkbart, upp till 50 % lägre än i RAID 5 även på en hel RAID 6-array, medan läshastigheten för RAID 6 P + Q inte skiljer sig mycket från den för RAID 5 och RAID 10 [3] .
RAID 6 kräver minst fyra diskar - två eller fler datadiskar och två paritetsdiskar [3] .
Situation | RAID 5 | RAID 6 P+Q | RAID 6DP |
---|---|---|---|
Valfritt inträde | 100 % | femtio % | femtio % |
Seriell åtkomst | 100 % | 90 % | 60 % |
Återställning av en enda disk i en array | 100 % | ~100 % | långsammare |
RAID 6-alternativ [3] :
Beroende på implementeringen kan RAID 6 DP-arrayer ha olika gränser för antalet diskar som krävs. I många implementeringar måste antalet diskar i en array vara ett primtal (till exempel 5, varav 3 dataskivor och 2 paritetsdiskar; 7, varav 5 datadiskar och 2 paritetsdiskar; 11, varav 9 data diskar och 2 paritetsdiskar, och etc.), har vissa implementeringar ett annat krav - antalet arraydiskar måste vara en mindre än ett primtal (4, 6, 10, etc.). Sådana begränsningar minskar flexibiliteten i att bygga datamatriser [3] .
Begränsningarna i alternativen för antalet diskar i en RAID 6 DP-array är relaterade till komplexiteten i att beräkna den dubbla pariteten för den "vertikala remsan" av data på ett godtyckligt antal diskar. Implementeringar med ett antal diskar som är en multipel av ett primtal tillåter användning av enkla algoritmer för att kontrollera dataintegritet, medan implementeringar utan sådana begränsningar använder komplexa algoritmer, vilket ytterligare saktar ner diskarrayen [3] .
Fördelen med RAID 6 är dess tillförlitlighet - den är den högsta av alla RAID-datamatriser, detta bestämmer omfattningen av RAID 6-arrayer - datormiljöer som kräver en hög nivå av kontinuerlig datatillgänglighet [3] .
Nackdelarna med RAID 6 är relativt höga kostnader och prestandaförluster jämfört med RAID 5. RAID 6-prestandan är den lägsta bland alla RAID-arrayer [3] .
Matematiska principerDe flesta RAID 6 P+Q-implementeringar använder ett Galois- polynom ( polynom ) , där den första polynomtermen är den exklusiva "eller" som används i RAID 5 (dess värde skrivs till "P"-disken), den andra polynomtermen är mer komplex , vanligtvis representerar det ett exklusivt "eller" med en multiplikator [3] . RAID 6 DP-implementeringar använder XOR-beräkning för både horisontella och vertikala bitränder i diskarrayen, varje paritetsdisk lagrar sin egen paritet (horisontell eller vertikal) [3] .
Utöver de grundläggande RAID-nivåerna från 0 till 6, som beskrivs i standarden "Common RAID Disk Drive Format (DEF)", finns det kombinerade nivåer med namn som "RAID α+β" eller "RAID αβ", vilket vanligtvis betyder " En RAID β som består av flera RAID α' (ibland tolkar leverantörer detta på sitt eget sätt), ibland kallad hybrid RAID [4] .
Till exempel:
Kombinerade nivåer ärver både fördelarna och nackdelarna med sina "föräldrar": utseendet på striping i RAID 5 + 0-nivån ger ingen tillförlitlighet till det, men det har en positiv effekt på prestandan. RAID 1+5-nivån är förmodligen mycket pålitlig, men inte den snabbaste och dessutom extremt oekonomisk: volymens användbara kapacitet är mindre än hälften av diskarnas totala kapacitet.
En RAID 01 (RAID 0+1)-array kallas en stripe-spegel [5] . Det är en RAID 1-array som består av två kapslade RAID 0-arrayer. Antalet diskar i båda kapslade RAID 0-arrayer måste vara detsamma, på grund av denna funktion kan denna typ bara fungera med ett jämnt antal diskar.
Beroende på tillverkaren av RAID-kontrollern kan RAID 0+1 betyda en annan konfiguration, dessutom erbjuder vissa modeller skapandet av RAID 0+1 på ett udda antal enheter [6] , faktiskt implementerar RAID 1E under detta namn .
Som i "ren" RAID 1 är den användbara volymen för arrayen hälften av den totala volymen av alla diskar (om de är diskar med samma kapacitet).
Feltoleransen för RAID 01 är lägre än den för RAID 10 med ungefär samma prestanda och lika volym, så denna typ av RAID används praktiskt taget inte.
RAID 10 (RAID 1 + 0) är en speglad array där data skrivs sekventiellt till flera diskar, som i RAID 0. Denna arkitektur är en RAID 0-array, vars segment är RAID 1-arrayer istället för individuella diskar. , måste en array på denna nivå innehålla minst 4 diskar (och alltid ett jämnt nummer). RAID 10 kombinerar hög feltolerans och prestanda.
RAID 10 är ett ganska tillförlitligt alternativ för datalagring på grund av att hela RAID 10-arrayen bara kommer att misslyckas om alla enheter i samma RAID 1-array misslyckas. I en total array av 4 enheter, med en defekt enhet, är chansen fel på den andra i samma array är 1/3×100=33%.
Som jämförelse kommer RAID 0+1 att misslyckas om två enheter misslyckas i olika arrayer. Risken för fel på en enhet i en angränsande array är 2/3×100=66%. Men eftersom RAID 0-arrayen med den trasiga enheten inte längre används, kan den återstående friska enheten i denna array exkluderas från beräkningen, och vi får en chans att nästa enhet kommer att inaktivera arrayen - 2/2 × 100 = 100 %.
Vissa tillverkare, som HP, använder beteckningen RAID 1+0 i sina RAID-kontroller (HP Smart Array P400) inte bara för RAID 10. Typen av RAID beror på antalet diskar som används i konfigurationen. Om du väljer RAID 1+0 i en konfiguration med 2 enheter kommer det att resultera i RAID 1, och för 4 enheter, RAID 10.
RAID 1E (förbättrad) är en spegel som kan köras på ett udda antal enheter.
Det finns minst två olika RAID 1E-algoritmer:
Handboken för din RAID-kontroller kanske inte anger vilken typ av RAID 1E (nära eller interfolierad) den stöder [9] . Gemensamt för dem är att de är väl lämpade för att skapa en uppsättning av tre diskenheter.
I RAID 1E nära skrivs det första datablocket till disk #1 och till disk #2 (full kopia, som i RAID 1). Nästa block går till disk nr 3 och disk nr 4 (om det inte finns fler diskar, till exempel, finns det ingen disk nr 4 i arrayen, den 3:e disken är den sista - styrenheten återgår till disk nr. 1 och går till nästa remsa).
I RAID 1E interleaved interfolieras data i remsor: själva data skrivs i den första remsan och en kopia av den skrivs i den andra remsan. När du flyttar från en stapel till en annan ökar indexet för enheten från vilken inspelningen börjar. Således skrivs det första datablocket till disk #1 i den första remsan och till disk #2 i den andra remsan, det andra datablocket skrivs till disk #2 i den första remsan och till disk #3 i den andra remsa och så vidare.
Den resulterande arraykapaciteten med RAID 1E är , där N är antalet diskar i arrayen och S är kapaciteten på den minsta disken.
Fördelar:
Brister:
Minsta antal diskar är tre (med två går det inte att skilja från RAID 1).
RAID 7 är ett registrerat varumärke som tillhör Storage Computer Corporation och är inte en separat RAID-nivå. Arraystrukturen är som följer: data lagras på diskar, en disk används för att lagra paritetsblock. Diskskrivningar cachelagras med RAM, själva arrayen kräver en obligatorisk UPS ; vid strömavbrott är data skadad.
Siffran 7 i namnet ger intrycket att systemet på något sätt är överlägset sina "småbröder" RAID 5 och 6, men matematiken i RAID 7 skiljer sig inte från RAID 4, och cache och batterier används i alla RAID-kontroller nivåer (ju dyrare regulatorn är, desto mer sannolikt att ha dessa komponenter). Därför, även om ingen förnekar att RAID 7 har hög tillförlitlighet och hastighet, är det inte en industristandard, utan snarare ett marknadsföringsknep av den enda tillverkaren av sådana enheter, och endast detta företag tillhandahåller teknisk support för dem [10] .
Det finns en modifiering av NetApps RAID-4 - RAID-DP (Dual Parity). Skillnaden från en traditionell array ligger i allokeringen av två separata diskar för kontrollsummor. På grund av interaktionen mellan RAID-DP och WAFL -filsystemet (alla skrivoperationer är sekventiella och utförs på ledigt utrymme), elimineras prestandafallet både i jämförelse med RAID-5 och i jämförelse med RAID-6.
De representerar ett expansionskort, eller placeras utanför servern (till exempel som en del av ett externt diskundersystem eller NAS ) [11] . De har en egen processor, många har cacheminne för att påskynda arbetet. Batterier installeras valfritt i dyrare enheter (Battery Backup Unit, förkortning BBU, kemikalie eller kondensator ) för att spara data i cachen vid ett nödläges strömavbrott. Kondensatorbatterier är modernare, men dyrare, eftersom de dessutom kräver en icke-flyktig FLASH-minnesmodul, där cachen kommer att kopieras i händelse av en olycka. Sådana batterier försämras inte med tiden och, till skillnad från kemiska, behöver de inte bytas ut under serverns livstid [12] .
För att ansluta diskar kan styrenheten ha interna eller externa portar, eller båda. Portar kan göras enligt olika standarder (se listan över interna och externa SAS-kontakter , samt SFF-8639 för ett exempel ).
Styrenheter från olika tillverkare är som regel inte kompatibla och inte utbytbara med varandra - detta bör komma ihåg i händelse av fel på styrkortet. Information om RAID-arraykonfigurationen lagras på diskar, men bara en styrenhet från samma tillverkare kan läsa den, även från fullt fungerande diskar, och återskapa matrisen [13] . För att förhindra sådana problem finns det klusterdisksystem [14] . Programvaru-RAID-arrayer har inte heller denna nackdel.
Många RAID-kontroller är utrustade med en uppsättning ytterligare funktioner:
Nivå | Antal diskar | Effektiv kapacitans [15] [16] [17] [18] [19] | Tillåtet antal felaktiga diskar | Pålitlighet | Läshastighet | Inspelningshastighet | Notera |
---|---|---|---|---|---|---|---|
0 | från 2 | S×N | Nej | väldigt låg | hög | hög | Förlust av data vid fel på någon av diskarna! |
ett | från 2 | S | N−1-skivor | väldigt högt | medel | medel | N gånger kostnaden för diskutrymme; högsta möjliga tillförlitlighet; minsta möjliga storlek, läs/skrivhastighet för en enda disk |
1E | från 3 | S×N/2 | 1 till N/2−1 skivor | hög | hög | låg | Förlust av data om två närliggande diskar misslyckas samtidigt, eller den första med den sista |
tio | från 4, till och med | S×N/2 | 1 till N/2 diskar [20] | hög | hög | hög | dubbla kostnaden för diskutrymme, dataförlust när en spegelgrupp (RAID 1) misslyckas, drift är möjlig om minst en av någon disk från en spegelgrupp (RAID 1) överlever i varje spegelgrupp (RAID 1). |
01 | från 4, till och med | S×N/2 | 1 till N/2 diskar [20] | låg | hög | hög | dubbla kostnaden för diskutrymme, dataförlust när en spegelgrupp misslyckas (RAID 1), drift är endast möjlig om alla diskar i en stripe-grupp (RAID 0) överlever. |
5 | från 3 | S×(N−1) | 1 skiva | medel | hög | medel | |
femtio | från 6, till och med | S×(N−2) | 1 till 2 skivor [21] | medel | hög | hög | |
51 | från 6, till och med | S×(N−2)/2 | från 2 till N/2+1 diskar [22] | hög | hög | låg | dubbla kostnaden för diskutrymme |
5E | från 4 | S×(N−2) | 1 skiva | medel | hög | hög | backup-enheten går på tomgång och kontrolleras inte |
5EE | från 4 | S×(N−2) | 1 skiva | medel | hög | hög | backup-enheten går på tomgång och kontrolleras inte |
6 | från 4 | S×(N−2) | 2 skivor | hög | hög | låg eller medium | skrivhastighet beroende på implementering (kan matcha RAID 5-skrivhastighet) |
60 | från 8, till och med | S×(N−4) | 2 till 4 skivor [21] | medel | hög | medel | |
61 | från 8, till och med | S×(N−2)/2 | från 4 till N/2+2 diskar [22] | hög | hög | låg | dubbla kostnaden för diskutrymme |
För att implementera RAID kan du använda inte bara hårdvara utan också helt mjukvarukomponenter ( drivrutiner ). Till exempel, på Linux-kärnsystem, finns stöd direkt på kärnnivån . Linux RAID-enheter kan hanteras med hjälp av mdadm- verktyget . Software RAID har sina fördelar och nackdelar. Å ena sidan kostar det ingenting (till skillnad från hårdvaru -RAID-kontroller ). Å andra sidan använder programvara RAID vissa CPU- resurser .
Linuxkärnan 2.6.28 stöder mjukvaru-RAID-nivåerna 0, 1, 4, 5, 6 och 10. Implementeringen gör att RAID kan skapas på individuella diskpartitioner, vilket liknar Matrix RAID som beskrivs nedan. Uppstart från RAID stöds.
OS i Windows NT- familjen , som Windows NT 3.1/3.5/3.51/ NT4 / 2000 / XP / 2003 , har stöd för programvaran RAID 0, RAID 1 och RAID 5 sedan den här familjen designades (se Dynamic Disk ). Windows XP Home stöder inte RAID. Windows XP Pro stöder RAID 0, och stöd för RAID 1 och RAID 5 blockeras av utvecklarna, men kan ändå aktiveras genom att redigera OS-systembinärfilerna, vilket är förbjudet enligt licensavtalet [23] . Windows 7 stöder programvara RAID 0 och RAID 1, Windows Server 2003 stöder 0, 1 och 5.
FreeBSD har flera mjukvaru-RAID-implementationer. Till exempel kan atacontrol antingen bygga komplett mjukvaru-RAID eller stödja semi-hårdvaru-RAID på chips som ICH5R. I FreeBSD, sedan version 5.0, styrs diskundersystemet av GEOM-mekanismen inbyggd i kärnan. GEOM tillhandahåller en modulär diskstruktur, tack vare vilken sådana moduler som gstripe (RAID 0), gmirror (RAID 1), graid3 (RAID 3), gconcat (som kombinerar flera diskar till en enda diskpartition) föddes. Det finns också äldre ccd (RAID 0, RAID 1) och gvinum (vinum logical volume manager) klasser. Från och med FreeBSD 7.2 stöds ZFS -filsystemet , som kan bygga nivåerna 0, 1, 5 och 6, såväl som kombinerbara nivåer.
OpenSolaris och Solaris 10 använder Solaris Volume Manager som stöder RAID 0, RAID 1, RAID 5 och valfri kombination av dem som 1+0. RAID 6 stöds i ZFS -filsystemet .
Matrix RAID är en teknik som implementerats av Intel i södra broarna av dess styrkretsar , med början i ICH6R. Denna teknik är inte en ny nivå av RAID och har inget hårdvarustöd. BIOS-verktyg låter dig organisera flera enheter i en logisk array, vars vidare bearbetning är precis som en RAID-array, tilldelas föraren. Tekniken gör det möjligt att organisera flera arrayer av RAID 1-, RAID 0- och RAID 5-nivåer samtidigt på olika diskpartitioner [24] . Detta låter dig välja ökad tillförlitlighet för vissa partitioner och hög prestanda för andra.
Senare tillkännagav Intel bytet av Matrix RAID-teknik till Intel Rapid Storage Technology (Intel RST) [25] .
Lista över Intel-kontroller som stöder Intel RST [26] :
Tanken med RAID-arrayer är att kombinera diskar, som var och en betraktas som en uppsättning sektorer, och som ett resultat "ser" filsystemdrivrutinen som om en enda disk och arbetar med den, utan att vara uppmärksam på dess inre struktur. Du kan dock uppnå en betydande ökning av disksystemets prestanda och tillförlitlighet om filsystemdrivrutinen "vet" att den inte fungerar med en disk, utan med en uppsättning diskar.
Dessutom, om någon av diskarna i RAID 0 förstörs, kommer all information i arrayen att gå förlorad. Men om filsystemdrivrutinen har placerat varje fil på en disk, och katalogstrukturen är korrekt organiserad, kommer endast filerna som fanns på denna disk att gå förlorade när någon av diskarna förstörs; och filer som helt finns på de bevarade diskarna kommer att förbli tillgängliga. En liknande idé om att "öka tillförlitligheten" är implementerad i JBOD- matriser .
Att placera filer i ett tillvägagångssätt "varje fil finns helt på en disk" har en komplex/tvetydig effekt på disksystemets prestanda. För små filer är latens (tid för att placera huvudet över det önskade spåret + väntetid för den önskade sektorn att anlända under huvudet) viktigare än den faktiska tiden för läsning/skrivning; Därför, om en liten fil är helt på en disk, kommer åtkomsten till den att gå snabbare än om den är spridd över två diskar (strukturen hos RAID-arrayer är sådan att en liten fil inte kan finnas på tre eller flera diskar). För stora filer kan det vara värre att placera enbart på en disk än att lokalisera den på flera diskar; detta kommer dock bara att inträffa om data utbyts i stora block; eller om många små åtkomster görs till filen i ett asynkront läge, vilket gör att du kan arbeta med alla diskar som denna fil finns på samtidigt.
Drivsystem i en array, med undantag för reservdelar ("reservdelar"), är ofta i samma ålder till en början, utsatta för samma belastning och miljöpåverkan, detta bryter mot antagandena om den oberoende sannolikheten för drivfel; misslyckanden är faktiskt statistiskt korrelerade. I praktiken är chansen för ett andra fel före den första återhämtningen högre än chansen för slumpmässiga misslyckanden.
Även om arraykonfigurationen lagras direkt på de fysiska diskarna, finns det ingen allmänt accepterad standard för kodning och lagring av den. När en styrenhet misslyckas, tvingas användaren köpa en kompatibel styrenhet för att återställa åtkomst till data, snarare än att återskapa en tom array.