Hårdvaru-RAID och mjukvaru-RAID
RAID-system, Redundant Array of Inexpensive Disks, implementeras på ett av två grundläggande sätt: med mjukvara eller med dedikerad hårdvara. Båda metoderna är fullt gångbara och har sina egna förtjänster.
Inom småföretagssfären, där system med Intel- och AMD-arkitektur och Windows-operativsystem dominerar, är hårdvaru-RAID så vanligt att en hel del förvirring har uppstått kring mjukvaru-RAID – vilket, som vi ska se, inte minst beror på det stora utbudet av bedrägliga mjukvaru-RAID-produkter som marknadsförs som dedikerad hårdvara och i dagligt tal kallas “Fake RAID”.
När RAID först utvecklades användes det, i mjukvara, på avancerade enterprise-servrar som körde sådant som proprietär UNIX, där systemen var ytterst stabila och hårdvaran mycket kraftfull och robust, vilket gjorde att mjukvaru-RAID fungerade mycket bra. Tidig RAID var i första hand inriktad på speglad RAID eller mycket enkel paritets-RAID (som RAID 2), som hade låg overhead.
När behovet av RAID började spilla över i den mindre serversfären, och när paritets-RAID började växa i popularitet och krävde större processorkraft för att kunna stödjas, blev det ett problem att de underdimensionerade processorerna i x86-sfären påverkades avsevärt av RAID-belastningen, särskilt RAID 5. Detta, i kombination med att nästan inga av de operativsystem som användes i någon större utsträckning på dessa plattformar hade implementeringar av mjukvaru-RAID, ledde till den naturliga utvecklingen av hårdvaru-RAID – ett avlastningskort med processor (likt en GPU för grafik) som hade en egen fullständig dator ombord med egen CPU, eget minne och egen firmware.
Hårdvaru-RAID fungerade mycket bra för att lösa problemet med RAID-overhead i x86-serversfären. När processorerna fick mer kraft och minne blev mindre av en bristvara började populära x86-operativsystem som Windows Server att erbjuda alternativ för mjukvaru-RAID. Windows mjukvaru-RAID var i synnerhet känt som en undermålig RAID-implementering och fanns enbart i serverversionerna av operativsystemet, vilket gav upphov till en bristande uppskattning för mjukvaru-RAID i kretsen av systemadministratörer som främst arbetade med Windows.
På grund av historiska implementeringar i enterprise-serversfären och i x86-standardsfären uppstod en naturlig uppdelning mellan de två marknaderna, som inledningsvis underbyggdes av tekniken och senare uteslutande av ideologi. Om du talar med en systemadministratör i standardsfären kommer du nästan undantagslöst att få höra att hårdvaru-RAID är det enda alternativet. Om du omvänt talar med en systemadministratör i sfären för stordatorer, RISC (Sparc, Power, ARM) eller EPIC (Itanium) (ibland kallad UNIX-serversfären) kommer du ofta att mötas av förvåning, eftersom hårdvaru-RAID inte finns tillgängligt för dessa systemklasser – mjukvaru-RAID är helt enkelt en självklarhet. Inget av lägren tycks ha någon verklig kunskap om situationen i det motsatta, och överlappningar i kompetens mellan de två har varit relativt sällsynta fram till nyligen, då enterprise-UNIX-plattformar som Linux, Solaris och FreeBSD har börjat bli mycket populära och välförstådda på standardhårdvaruplattformar.
För att göra saken ännu mer förvirrande för x86-standardsfären började ett stort antal leverantörer, i syfte att fylla det tomrum som den dominerande operativsystemsleverantörens avsaknad av mjukvaru-RAID för icke-server-marknaden lämnade efter sig samtidigt som de försökte marknadsföra sig mot en mindre tekniskt bevandrad målgrupp, att sälja icke-RAID-styrkort tillsammans med en “drivrutin” som i själva verket var mjukvaru-RAID och låtsas att den resulterande produkten faktiskt var hårdvaru-RAID. Detta skapade i bästa fall en stor mängd förvirring och i värsta fall ett oerhört förakt för mjukvaru-RAID, eftersom i stort sett varje system vars kärnfunktion är att skydda data och vars marknad är byggd på vilseledande och förvirring kommer att sluta i katastrof. Fake RAID-system har rutinmässigt problem med prestanda och tillförlitlighet. Även om ett mjukvaru-RAID-paket från tredje part i teorin är ett rimligt alternativ, är verkligheten på mjukvaru-RAID-marknaden att i princip alla mjukvaru-RAID-implementeringar av god kvalitet är inbyggda komponenter antingen i själva operativsystemet (Linux, Mac OSX, Solaris, Windows) eller i filsystemet (ZFS, VxFS, BtrFS) och tillhandahålls och underhålls av de huvudsakliga leverantörerna, vilket lämnar föga utrymme eller syfte för tredjepartsprodukter utanför Windows desktop-sfären, där ett fåtal små legitima mjukvaru-RAID-aktörer faktiskt finns men ofta överskuggas av Fake RAID-aktörerna.
I dag finns det i stort sett inget behov av hårdvaru-RAID, eftersom standardplattformar är otroligt kraftfulla och det nästan alltid finns ett dramatiskt överskott av både beräknings- och minnesresurser. I stället konkurrerar hårdvaru-RAID mestadels med funktioner snarare än med att minska resursbelastningen. Valet mellan hårdvaru-RAID och mjukvaru-RAID i standardserversfären är nästan helt och hållet en fråga om preferens och marknadssetröghet snarare än om specifik prestanda eller specifika funktioner – båda plattformarna är i grunden likvärdiga, där de enskilda implementeringarna är långt viktigare att beakta vid val av produktalternativ än hårdvaru- och mjukvarutillvägagångssätten är i sig själva.
I dag tenderar utbudet av hårdvaru-RAID att vara mer “generiskt” med tämligen alldagliga implementeringar av standard-RAID-nivåer. Hårdvaru-RAID tenderar att motivera sitt värde genom minskad resursanvändning (avlastning av CPU och minne), möjligheten att “blint byta” havererade diskar, förenklad lagringshantering, lagring på blocknivå som abstraheras agnostiskt från operativsystemet, snabb cache nära diskarna samt batteri- eller flashbackad cache. Mjukvaru-RAID tenderar att motivera sitt värde genom lägre strömförbrukning, lägre anskaffningskostnad, integrerad hantering med operativsystemet, unika eller avancerade RAID-funktioner (såsom ZFS RAIDZ, som inte lider av det vanliga skrivhålet i RAID 5) och generellt sett bättre prestanda överlag. Det är verkligen ingen diskussion om bättre eller sämre, utan om bättre eller sämre för en mycket specifik situation, där den viktigaste faktorn ofta är förtrogenhet och bekvämlighet och/eller leverantörens standardutbud.
En av de mest förbisedda men ändå viktiga skillnaderna mellan hårdvaru- och mjukvaru-RAID är förändringen i den arbetsroll som förknippas med hanteringen av RAID-arrayen. Hårdvaru-RAID flyttar hanteringen av arrayen till serveradministratören (den supportroll som arbetar med den fysiska servern och är stationerad i datacentret), medan mjukvaru-RAID flyttar hanteringen av arrayen till systemadministratören (den supportroll som arbetar med operativsystemet och uppåt och sällan sitter i datacentret). På SMB-marknaden kan denna faktor vara helt förbisedd, men i ett Fortune 500-företag kan skillnaden i arbetsroll vara mycket betydande. I många fall kan diskbyten och systeminstallation med hårdvaru-RAID göras utan att systemadministratören behöver gripa in. Serveradministratörer i datacentret kan upptäcka havererade diskar antingen via larm eller genom att leta efter “gula lampor” under sina ronder och utföra byten i farten utan att behöva kontakta någon eller ens veta vad servern kör. Mjukvaru-RAID skulle nästan alltid kräva att systemadministratören är inblandad i att hantera urkopplingen av en havererad disk, samordna utbytesprocessen med datacentret och koppla in den nya disken när utbytesprocessen är slutförd.
På grund av hur CPU-avlastning och prestanda fungerar, och på grund av vissa fördelar i hur icke-standardiserade RAID-implementeringar ofta hanterar återuppbyggnad av paritets-RAID, finns det en tendens att speglade RAID-nivåer gynnar hårdvaru-RAID och att paritets-RAID-nivåer gynnar mjukvaru-RAID. Paritets-RAID är drastiskt mycket mer CPU-intensiv, och därför kan tillgången till den kraftfulla centrala CPU-resursen vara en avgörande faktor för att snabba upp RAID-beräkningarna. Men med speglad RAID, där återuppbyggnad av RAID är långt säkrare än med paritets-RAID och där automatiserade ombyggnader är viktigare, för hårdvaru-RAID med sig fördelen att mycket enkelt möjliggöra blint diskbyte.
En aspekt av diskussionen om hårdvaru- och mjukvaru-RAID som är ytterst paradoxal är att samma marknad som ofta avfärdar mjukvaru-RAID rakt av som underlägset hårdvaru-RAID nästan helt överlappar (du kan föreställa dig Venn-diagrammet framför dig här) med den marknad som anser att filservrar är underlägsna NAS-standardapparater – trots att dessa NAS-apparater i SMB-segmentet nästan undantagslöst bygger på samma mjukvaru-RAID-implementeringar som så lättvindigt avfärdas. Så det betraktas ofta som både underlägset och överlägset samtidigt. Några NAS-enheter i SMB-segmentet, och NAS-apparatmjukvara, som bygger på mjukvaru-RAID inkluderar: Netgear ReadyNAS, Netgear ReadyData, Buffalo Terastation, QNAP, Synology, OpenFiler, FreeNAS, Nexenta och NAS4Free.
Det finns verkligen inget “använd alltid det ena eller det andra” med hårdvaru- och mjukvaru-RAID. Till och med gigantiska enterprise-NAS- och SAN-apparater i sexsiffrig prisklass är oense om vilket som ska användas, och en del av branschen drar åt vardera hållet. Det verkliga svaret är att det beror på din specifika situation – din uppdelning av arbetsroller, dina tekniska behov, din erfarenhet, din budget och så vidare. Båda alternativen är fullt gångbara i vilken organisation som helst.
