Vad är RAID 100?
RAID 10 är en av de viktigaste och mest använda RAID-nivåerna i bruk idag. RAID 10 är förstås det som kallas sammansatt eller nästlad RAID där en RAID-nivå är nästlad inuti en annan. I fallet med RAID 10 är den “lägsta” RAID-nivån, den som berör de fysiska enheterna, RAID 1. Nomenklaturen för nästlad RAID är att numret till vänster är det som berör de fysiska enheterna och varje nummer till höger är den RAID som berör dessa arrayer.
Så RAID 10 är ett antal RAID 1-uppsättningar (spegel) som tillsammans ingår i en RAID 0-uppsättning (paritetsfri stripe). Det finns en viss vanlig terminologi som ibland tillämpas, främst förespråkad av HP, för att hänvisa till även RAID 1 som helt enkelt en delmängd av RAID 10 – en RAID 10-array där RAID 0-längden är ett. Ett egendomligt sätt att tänka på RAID 1, helt visst, men det gör faktiskt många diskussioner och jämförande beräkningar enklare och är vettigt på ett praktiskt sätt för de flesta lagringsutövare. Att tänka på RAID 1 som ett “specialnamn” för minsta möjliga RAID 10-stripestorlek och därmed låta alla RAID 10-permutationer existera som ett beräkningskontinuum är vettigt.
På samma sätt hänvisar HP också till ensamma enheter anslutna till en RAID-styrenhet som RAID 0-uppsättningar med en stripe på ett. Så tillämpningen av den terminologin på RAID 10-världen är faktiskt mer uppenbar och vettig när den betraktas i det ljuset. Dock tillämpar varken HP eller någon annan leverantör idag denna samma namnegendomlighet på andra arraytyper såsom att RAID 5 är en delmängd av RAID 50 eller att RAID 6 är en delmängd av RAID 60 även om de kan tänkas på det sättet exakt på samma vis som RAID 1 kan i förhållande till RAID 10.
Om vi tar samma logik och tar den till nästa nivå, bildligt och bokstavligt, kan vi ta flera RAID 10-arrayer och stripa dem tillsammans i ytterligare en RAID 0. Detta verkar egendomligt men kan vara vettigt. Resultatet är en stripe av RAID 10-uppsättningar, eller, för att skriva ut det, en stripe av striper av speglar (vi anger i allmänhet RAID uppifrån och ned men nomenklaturen är nedifrån och upp.) Så eftersom detta är RAID 1 på de fysiska enheterna, en stripe av dessa speglar och sedan en stripe av dessa resulterande arrayer, får vi RAID 100 (R100.)
RAID 100 är förstås sällsynt och egendomligt. Dock använder en extremt viktig tillverkare av RAID-styrenheter R100 och följaktligen gör även deras nedströms integrationsleverantör det: nämligen LSI och Dell.
Lyckligtvis, eftersom paritetsfria striper tillför få beteendemässiga egendomligheter och har nära noll administrativ börda eller latens, är detta tillvägagångssätt egentligen inget problem även om det kan leda till en hel del förvirring. I alla praktiska avseenden beter sig RAID 100 exakt som RAID 10 när varje RAID 10-delmängd är identisk med varandra.
I teorin skulle en RAID 100 kunna vara uppbyggd av många olikartade RAID 10-uppsättningar med varierande enhetstyper, spindelantal och hastigheter. I teorin skulle en RAID 10 kunna vara uppbyggd av olikartade RAID 1-uppsättningar men detta är långt mer begränsat i potentiell eller sannolik variation. RAID 100 skulle teoretiskt sett kunna göra en del ganska bisarra saker om den lämnades okontrollerad. I praktiken kommer dock varje RAID 100-implementation sannolikt, precis som LSI:s implementation gör, att framtvinga standardisering och kräva att varje RAID 10-delmängd är så identisk som en styrenhet är kapabel att framtvinga. Så var och en kommer i praktiken att vara enhetlig, vilket håller det övergripande beteendet detsamma som om samma enheter hade satts upp som RAID 10.
Eftersom beteendet förblir identiskt med RAID 10 finns det en extremt stark tendens att undvika förvirringen med att kalla arrayen RAID 100 och helt enkelt hänvisa till den som RAID 10. Detta skulle fungera bra om det inte vore för den halvt nödvändiga egendomligheten att behöva kunna ange geometrin hos de underliggande RAID 10-uppsättningarna när man bygger en RAID 100. LSI, och därmed Dell, kräver att man vid tidpunkten för uppsättning av en RAID 100-uppsättning måste ange den underliggande RAID 10-geometrin, men eftersom arrayen är etiketterad som RAID 10 är detta meningslöst. En sannerligen bisarr situation.
För att ytterligare komplicera saken, på grund av önskan att upprätthålla en fasad av att använda RAID 10 snarare än RAID 100, undviks korrekt terminologi och i stället för att hänvisa till de underliggande RAID 10-medlemmarna som “RAID 10-arrayer” eller “RAID 10-delmängder” kallas de helt enkelt “spann.”” Spann är dock en term som används för något annat inom lagring som inte är tillämpligt på ett korrekt sätt här. Spann är på intet sätt en korrekt beskrivning av en RAID 10-uppsättning under några omständigheter.
Men om vi enas om att använda termen spann för att hänvisa till en RAID 10-delmängd av en RAID 100-array kan vi gå vidare ganska enkelt. När det är möjligt vill vi då ha så många spann som möjligt för att hålla de underliggande RAID 10-delmängderna så små som möjligt. Om vi gör dem tillräckligt små kollapsar de faktiskt till RAID 1-uppsättningar (HPE:s egendomliga RAID 10 med en stripestorlek på ett) och vår RAID 100 kollapsar till en RAID 10 där den mellersta stripen, snarare än den yttre stripen, är den som försvinner! Bisarrt, ja, men praktiskt.
Så hur tillämpar vi detta i verkligheten? Ganska enkelt. I en RAID 100-array måste vi ange ett antal spann som ska användas. Eftersom vi önskar att varje spann ska innehålla två fysiska enheter så att varje spann är en enkel RAID 1, behöver vi helt enkelt ta det totala antalet enheter i vår RAID 100-array, som vi kallar N, och dividera det med två. Så det önskade antalet spann för en normal RAID 100-array är helt enkelt N/2. Detta innebär att om du har en array med två enheter vill du ha ett spann. Fyra enheter, två spann. Sex enheter, tre spann. Tjugofyra enheter, tolv spann. Och så vidare.
Var inte rädd för RAID 100. För normala användare kräver det helt enkelt en viss ytterligare kunskap om hur man väljer rätt antal spann. Det vore idealiskt om detta beräknades automatiskt och hölls dolt så att slutanvändare kunde tänka på arrayerna i termer av RAID 10. Eller annars att de etiketterades konsekvent som RAID 100 för att göra det tydligt vad spannet måste representera. Eller, naturligtvis, att man helt enkelt använder RAID 10 i stället för RAID 100. Men med tanke på verklighetens praktiska tillstånd är det enkelt att hantera RAID 100 när den väl är förstådd.
