Även om det har funnits i över 50 år är RAID fortfarande mycket populärt, särskilt i företagsmiljöer. Sammantaget är det en bra prestation för vilken teknik som helst att vara relevant så länge.
Om vi fokuserar på tillståndet för RAID idag, är vissa RAID-nivåer säkerligen mer relevanta än andra. RAID 5 har specifikt varit en av de mest populära RAID-versionerna under de senaste två decennierna.
Men eftersom diskstorlekarna har ökat exponentiellt uppstår frågan; Är RAID 5 fortfarande tillförlitlig? För att svara på denna fråga måste vi först prata om vad exakt RAID 5 är, dess arbetsmekanismer, applikationer och misslyckanden.
RAID-terminologi
RAID 5 använder blockinterfolierad distribuerad paritet. För att förstå detta måste vi börja med grunderna i RAID.
Rriklig TILLRay av Yooberoende disks (RAID) är i grunden en datalagringsteknik som används för att ge skydd mot diskfel genom dataredundans eller feltolerans, samtidigt som den övergripande diskprestandan förbättras.
RAID-system implementerar tekniker som striping, spegling och paritet. fodrad distribuerar logiskt sekventiella databitar över alla diskar i en array, vilket resulterar i bättre läs- och skrivprestanda.
Paritet, i RAID-sammanhang, är återställningsdata som skrivs till en dedikerad paritetsdisk eller sprids över alla diskar i arrayen. Om en disk i arrayen misslyckas kan dessa paritetsdata, tillsammans med data från de återstående fungerande enheterna, användas för att rekonstruera förlorad data.
Hur fungerar RAID 5?
Använder RAID 5-arrayer repa på blocknivå med fördelad paritet. Eftersom minst två diskar krävs för striping, och ytterligare ett diskutrymme behövs för paritet, behöver RAID 5-arrayer minst 3 diskar Låt oss ta en RAID 5-array med 4 diskar som ett exempel för att bättre förstå hur det fungerar.
När du skriver till arrayen, a blockstorlek data (A1) skrivs till den första disken. Denna del av data är också känd som band. Blockstorleken kallas Portions storlekoch dess värde varierar beroende på vad användaren har fastställt.
Fortsätter skrivoperationen, skrivs nästa logiskt på varandra följande dataklump (A2) till den andra skivan och samma till den tredje (A3). Eftersom datablock är fördelade över dessa tre remsor kallas de gemensamt för rand.
randstorlek, som namnet indikerar, hänvisar till summan av storleken på alla remsor eller bitar av remsan. Vanligtvis använder RAID-styrenheter för hårdvara randstorlek, men vissa RAID-implementationer använder också chunkstorlek.
Fortsätter igen, efter att data har distribuerats över skivorna (A1, A2, A3), beräknas paritetsdata och lagras som en blockstorlek på den återstående disken (Ap). Med detta har en komplett mängd data skrivits.
I vårt exempel upprepas samma process igen när data delas på tre diskar, medan den fjärde disken lagrar paritetsdata. Enkelt uttryckt fortsätter detta tills skrivoperationen är klar.
Men det finns några fler saker att täcka här, till exempel hur paritetsdata faktiskt beräknas och layouten av data och paritetsblock i arrayen. Så låt oss flytta fokus till de i nästa avsnitt.
Paritet i RAID 5
Olika RAID-nivåer använder olika algoritmer för att beräkna paritetsdata. RAID 5 använder specifikt Exklusiv ELLER (XOR) operatör för varje byte med data.
XOR returnerar en sann utdata när endast en av ingångarna är sann. Om båda ingångarna är sanna (1,1) eller falska (0,0), kommer utmatningen att vara falsk. Följande tabell och exemplet som följer bör illustrera detta bättre.
| Första inlägget | Andra posten | Produktion |
| 1 | 1 | |
| 1 | 1 | |
| 1 | 1 |
Låt oss gå tillbaka till vårt tidigare exempel och titta på den första remsan. Låt oss säga att den första byten med data i remsorna är följande:
A1-10111001
A2-11001010
A3-10011011
När vi utför en A1 XOR A2 operation får vi utgången 01110011. När vi utför en annan
Låt oss säga att en av diskarna i arrayen (till exempel Disk 2) misslyckas. Vi kan utföra en A1 XOR A3 operation för att få 00100010 som utdata. Om vi utför en annan XOR-operation med denna utdata och paritetsdata får vi följande utdata:
00100010
11101000
11001010
Med detta har vi rekonstruerat den första byten med data på Disk 2. Och det är i ett nötskal hur paritetsdata ger feltolerans och skyddar dina data i händelse av ett diskfel. Denna redundans har dock sina begränsningar, eftersom RAID 5 endast skyddar mot ett diskfel. Om två diskar misslyckas samtidigt, kommer all data att gå förlorad.
Slutligen är det också frågan om datalayout i arrayen. Till skillnad från RAID-nivåerna 2, 3 och 4, som använder en dedikerad paritetsdisk, använder RAID 5 distribuerad paritet. Detta innebär att paritetsblock distribueras över hela arrayen istället för att lagras på en enda enhet.
Vårt exempel ovan visar en asynkron layout från vänster till höger, men detta kan ändras beroende på vissa faktorer. Till exempel kan datablock skrivas från vänster till höger eller höger till vänster i arrayen. Följaktligen kan paritetsblocket placeras i början eller slutet av remsan.
I fallet med en synkron design, bestämmer platsen för paritetsblocket också var nästa remsa kommer att börja. Till exempel är följande array konfigurerad som vänstersynkron, vilket innebär att data skrivs från vänster till höger. Dessutom bestämmer paritetsblocket (Ap) var nästa remsa (B1) börjar, och så vidare.
Ska du använda RAID 5?
RAID 5 ger prestandavinster genom striping och feltolerans genom paritet. Och till skillnad från lägre nivåer av RAID behöver du inte ta itu med flaskhalsen med en dedikerad paritetsdisk. Detta gjorde den mycket populär på 2000-talet, särskilt i produktionsmiljöer.
Men RAID 5 har alltid haft en kritisk brist i att den bara skyddar mot enstaka diskfel. I teorin är två diskar som misslyckas i följd extremt osannolikt. Men under verkliga tillämpningar är saker annorlunda.
Till att börja med har HDD-storlekarna vuxit exponentiellt, medan läs-/skrivhastigheterna inte har sett någon större förbättring. På grund av denna skillnad tar det lång tid att återuppbygga arrayen när en disk går sönder. Beroende på arrayens storlek och specifikationer kan detta variera från timmar till dagar.
Därefter köper folk ofta skivor i spel. När du utsätter samma varumärkesdrifter för samma arbetsbelastning och miljö ökar chanserna att de misslyckas samtidigt.
Men låt oss säga att bara en disk misslyckades. Om du har rengjort diskar regelbundet är det förmodligen bra. Men om du inte har letat efter fel finns det en risk att stöta på URE under återuppbyggnadsprocessen, eftersom en av diskarna i arrayen just har misslyckats.
Oåterställbara läsfel (URE) är ett stort problem när man bygger om arrayer eftersom en enda MB oläsbar data kan göra hela arrayen oanvändbar. Detta beror på hur de flesta RAID-konfigurationer fungerar.
Vissa RAID-implementationer som ZFS RAID och Linux-programvara RAID och vissa hårdvarudrivrutiner markerar sektorn som dålig och fortsätter att byggas om. Men de flesta RAID-styrenheter för hårdvara stoppar helt enkelt ombyggnaden och markerar hela arrayen som misslyckad.
Anledningen till detta är att det är bättre att stoppa arrayen istället för att riskera att korrumpera data. Detta görs förutsatt att du kommer att återställa från en säkerhetskopia eller återställa data från varje enhet individuellt.
När du kombinerar alla dessa faktorer är det inte svårt att se varför RAID 5 har fallit i onåd under de senaste åren. Det är därför som andra versioner av RAID som RAID 6 eller ZFS RAID-Z2 för närvarande föredras, särskilt för större arrayer, där återuppbyggnadstiderna är längre och det finns risk för mer dataförlust.
Det betyder dock inte att RAID 5 är irrelevant längre. Hårddisktillverkare har tagit hänsyn till dessa problem och har förbättrat hårddiskarna genom att exponentiellt minska URE-förekomstfrekvensen de senaste åren. Vi rekommenderar att du i allmänhet väljer andra RAID-nivåer, men om du ändå vill välja RAID 5 bör du bara göra det för små arrayer.
Slutligen, här är några krav och saker värda att veta om du planerar att konfigurera en RAID 5-array:
- Som nämnts ovan kräver en RAID 5-array minst 3 enheter. Detta beror på att minst 2 enheter krävs för striping, och ytterligare ett diskutrymme behövs för att lagra paritetsdata.
- Användbar lagring i en RAID 5-konfiguration kan beräknas med (N – 1) x (Minsta diskstorlek). Du bör använda enheter av samma storlek eftersom om du använder en ojämlik konfiguration kommer den mindre disken att skapa en betydande flaskhals.
- RAID 5 erbjuder utmärkt läsprestanda, eftersom striping gör att data kan läsas från flera diskar samtidigt. Men på samma sätt är skrivprestanda inte lika bra som paritetsinformation för flera diskar också måste skrivas.
- RAID 5 kan konfigureras genom programvaruimplementationer, men det är bäst att använda hårdvaru-RAID-kontroller för en RAID 5-array eftersom prestanda påverkas av programvaruimplementationer.
- Slutligen är RAID-redundans inte detsamma som säkerhetskopiering. Syftet med RAID är helt enkelt att skydda mot diskfel. Det finns många anledningar till att ha separata säkerhetskopior utanför webbplatsen, från skadlig programvara till mänskliga fel och olyckor.
