Praktiska RAID-val för Spindelbaserade Arrayer
En verkligt monumental mängd information finns att tillgå om RAID-lagringssystem och utforskar ämnen som risk, prestanda, kapacitet, trender, tillvägagångssätt och mer. Även om arbetet inom detta område är närmast överväldigande kan informationen destilleras till en handfull vanliga, praktiska lagringsansatser som täcker nästan alla användningsfall. Mitt mål här är att tillhandahålla en behändig guide som gör det möjligt för en yrkesman utan lagringsexpertis att närma sig RAID-beslut på ett praktiskt och, framför allt, säkert sätt.
För den här guidens syften utgår vi från lagringsprojekt med högst tjugofem traditionella diskar (diskar med roterande skivor, korrekt benämnda Winchester-diskar). Dessa diskar kan vanligen vara SFF (2,5″) eller LFF (3,5″), SATA eller SAS, av konsument- eller företagsklass. Vi kommer inte att ge oss på solid state-diskar eftersom dessa har mycket annorlunda egenskaper och kräver sin egen vägledning. Lagringssystem större än ungefär tjugofem spindlar bör inte utgå från standardvägledning, utan i stället fördjupa sig i specifika lagringsbehov för att säkerställa korrekt planering.
Vägledningen här är skriven för standardsystem år 2015. Under de senaste två decennierna har de vanliga tillvägagångssätten för RAID-lagring förändrats dramatiskt, och även om det inte förväntas att de nyckelfaktorer som påverkar dessa beslut kommer att förändras tillräckligt i framtiden för att ändra dessa rekommendationer, är det fullt möjligt att de kommer att göra det. Bra RAID-design från 1998 är mycket dålig RAID-design idag. Förändringstakten i branschen har minskat avsevärt sedan dess, och dessa rekommendationer kommer sannolikt att stå sig mycket länge, mycket möjligt ända tills spindelbaserad disklagring inte längre är tillgänglig eller åtminstone populär, men liksom allt annat är förutsägelser föremål för stora förändringar.
I allmänhet använder vi det som kallas ett “One Big Array”-tillvägagångssätt. Det vill säga en enda RAID-array på vilken alla system- och datapartitioner skapas. Behovet eller önskan att dela upp vår lagring i flera fysiska arrayer är till största delen borta idag och bör endast göras under icke-allmänna omständigheter. Endast i situationer där noggranna studier av lagringsbehoven och omfattande analyser genomförs bör vi överväga uppdelning av arrayer. Uppdelning av arrayer är långt mer sannolikt att orsaka skada än nytta. När du är tveksam, undvik uppdelade arrayer. Målet med denna guide är allmänna tumregler som gör det möjligt för vilken IT-proffs som helst att bygga ett säkert och tillförlitligt lagringssystem. Tumregler täcker inte och kan inte täcka varje tänkbart scenario; undantag finns alltid. Men tanken här är att täcka den stora majoriteten av fall med beprövade tillvägagångssätt som är utformade kring modern utrustning, moderna användningsfall och behov, samtidigt som man är noga med att fela på säkerhetens sida – när ett val är mindre än idealiskt är det fortfarande säkert. Inget av dessa val är på något sätt vårdslöst; i värsta fall är de alltför konservativa.
Det första scenariot vi bör överväga är om din data inte spelar någon roll. Detta kan låta som en märklig sak att överväga, men det är ett mycket viktigt scenario. Det finns många tillfällen då data som sparas till disk betraktas som flyktiga och inte behöver skyddas. Detta är vanligt för rekonstruerbara data såsom arbetsytor för rendering, mellanlagringsytor för beräkningar eller cacher – situationer där det är slöseri att lägga pengar på att skydda data och där det skulle vara acceptabelt att helt enkelt återskapa förlorad data i stället för att skydda den. Detta skulle kunna vara ett fall där stillestånd inte är ett problem och data är statisk eller nästan statisk, och där vi i stället för att lägga pengar på att minska stilleståndet endast bekymrar oss om att skydda data via backupmekanismer, så att om en array fallerar återställer vi helt enkelt arrayen i sin helhet. I dessa fall är det självklara valet RAID 0. Det är mycket snabbt, mycket enkelt och ger den mest kostnadseffektiva kapaciteten. Den enda nackdelen med RAID 0 är att det är skört och inte ger något skydd mot dataförlust vid diskfel eller ens ett URE (vilket skulle orsaka datakorruption på samma sätt som en stationär disk drabbas av).
Det bör noteras att ett undantag från “One Big Array”-tillvägagångssättet som skulle vara vanligt är i system som använder RAID 0 för data. Det skulle finnas ett mycket gott argument för en liten diskarray dedikerad till OS och applikationsdata, vilka skulle vara omständliga att installera om vid förlust av arrayen, som hålls på RAID 1, medan RAID 0-dataarrayen hålls separat från den. På så sätt skulle återställning kunna ske mycket snabbt i stället för att man behöver bygga om hela systemet från grunden, snarare än att bara återskapa data.
Förutsatt att vi har eliminerat de fall där data inte kräver skydd, kommer vi för alla återstående fall att anta att data är tämligen viktig och att vi vill skydda den till någon kostnad. Vi kommer att anta att det är viktigt att skydda data så som den existerar på den aktiva lagringen, i allmänhet eftersom vi vill undvika stillestånd eller eftersom vi vill säkerställa dataintegritet, då data på disk inte är statisk och ett arrayfel också skulle utgöra dataförlust. Med detta antagande fortsätter vi.
Om vi har en array med endast två diskar är svaret mycket enkelt: vi väljer RAID 1. Det finns inget annat alternativ vid denna storlek, så det finns inget beslut att fatta. I teorin bör vi planera våra arrayer holistiskt och inte efter att antalet diskar har fastställts; antalet diskar och vilken typ av array som väljs bör bestämmas tillsammans, inte så att diskar köps in och användningen sedan bestäms utifrån det godtyckliga antalet, men chassin för två diskar är så vanliga att det är värt att nämna som ett fall.
På samma sätt är det enda verkliga valet att överväga vid en array med fyra diskar RAID 10. Det finns inget behov av ytterligare utvärdering. Välj helt enkelt RAID 10 och fortsätt.
Ett besvärligt fall är en array med tre diskar. Det är ytterst, ytterst sällsynt att vi är begränsade till tre diskar, eftersom det enda vanliga chassit som var begränsat till tre diskar var Apple Xserve, och denna har varit borta från marknaden under en längre tid, så behovet av att hantera beslutsfattande kring spindelarrayer med tre diskar bör vara extremt osannolikt. I fall där vi har tre diskar är det ofta bäst att söka vägledning, men de vanligaste tillvägagångssätten är att lägga till en fjärde disk och därmed välja RAID 10 eller, om kapacitet utöver en enda disks utrymme inte behövs, att placera alla tre diskarna i en enda trippelspeglad RAID 1.
För alla övriga fall har vi alltså att göra med fem till tjugofem diskar. Eftersom vi har eliminerat de situationer där RAID 0 och RAID 1 skulle vara tillämpliga, återstår alla vanliga scenarier ned till RAID 6 och RAID 10, och dessa utgör den stora majoriteten av fallen. Att välja mellan RAID 6 och RAID 10 blir den största utmaning vi kommer att ställas inför, eftersom vi enbart måste se till våra “mjuka” behov av tillförlitlighet, prestanda och kapacitet.
Att välja mellan RAID 6 och RAID 10 bör inte vara oerhört svårt. RAID 10 är idealiskt för situationer där prestanda och säkerhet är prioriterade. RAID 10 har mycket snabbare skrivprestanda och är säkert oavsett vilken disktyp som används (billiga konsumentdiskar kan fortfarande vara extremt säkra, även i stora arrayer). RAID 10 skalar väl till extremt stora storlekar, mycket större än vad som bör implementeras med hjälp av tumregler! RAID 10 är det säkraste av alla val; det är snabbt och säkert. De uppenbara nackdelarna är att RAID 10 har mindre lagringskapacitet från samma diskar och är dyrare räknat per kapacitet. Det måste nämnas att RAID 10 endast kan utnyttja ett jämnt antal diskar; diskar läggs till parvis.
RAID 6 är i allmänhet säkert och snabbt men aldrig lika säkert eller lika snabbt som RAID 10. RAID 6 lider särskilt av bristande skrivprestanda och är därför mycket dåligt lämpat för arbetslaster såsom databaser och kraftigt blandade laster som i stora virtualiseringssystem. RAID 6 är kostnadseffektivt och ger ett starkt fokus på tillgänglig kapacitet jämfört med RAID 10. När budgetarna är knappa eller kapacitetsbehoven dominerar över prestanda är RAID 6 ett idealiskt val. Sällan är skillnaden i säkerhet mellan RAID 10 och RAID 6 ett bekymmer, utom i mycket stora system med diskar av konsumentklass. RAID 6 är föremål för ytterligare risk med diskar av konsumentklass som RAID 10 inte påverkas av, vilket skulle kunna motivera viss oro kring tillförlitligheten i större RAID 6-system, såsom de över ungefär 40 TB när konsumentdiskar används.
Särskilt i småföretagssegmentet kommer majoriteten av systemen att använda RAID 10, helt enkelt eftersom arrayer sällan behöver vara större än fyra diskar. När arrayer är större är RAID 6 det vanligare valet på grund av något knappa budgetar och i allmänhet låg oro kring prestanda. Både RAID 6 och RAID 10 är säkra och effektiva lösningar för nästan alla användningsscenarier, där RAID 10 dominerar när prestanda eller extrem tillförlitlighet är avgörande och RAID 6 dominerar när kostnad och kapacitet är avgörande. Och, naturligtvis, när lagringsbehoven är mycket unika eller mycket stora, såsom större än tjugofem spindlar i en array, kom ihåg att anlita en lagringskonsult, eftersom scenariot lätt kan bli mycket komplext. Lagring är ett område där det lönar sig att vara extra noggrann, eftersom så många saker är beroende av den, misstag är så lätta att göra och flexibiliteten att förändra den i efterhand är så låg.
