Het kan me aan me RAID roesten...
In de tachtiger jaren lagen de prijzen van harde schijven behoorlijk hoger dan nu het geval is, zeker 'grote' harddisks ( dan praat ik over jongens van een fikse 20 MB
) waren relatief een stuk duurder dan hun kleine broertjes. Met de kosten van grote harde schijven in het achterhoofd zijn een aantal mensen aan de slag gegaan om een array te maken van meerdere kleine schijven teneinde 1 grote virtuele schijf over te houden. Op deze manier zou een 20 MB harde schijf samengesteld uit 4 schijven van 5 MB aanzienlijk goedkoper zijn dan 1 jongen van 20 MB.
In 1988 kwamen een aantal onderzoekers van de Berkely Universiteit uit Californië met een publicatie: 'A case for Redundant Arrays of Inexpensive Disks' waarin zij richtlijnen voor het bouwen van zulke arrays beschreven. In de loop der jaren zijn er RAID vormen bijgekomen en ook de betekenis van de I in RAID is gewijzigd, de prijs per MB van een hedendaagse harddisk is aanzienlijk gedaald en zo is de I omgedoopt tot Independent. Hiermee wordt uiteraard gedoeld op de redundantie in RAID door het gebruik van meerdere ( onafhankelijke ) harde schijven.
Lange tijd hebben alleen SCSI configuraties profijt mogen hebben van de RAID technologie. Nog niet zo heel lang geleden heeft Promise met zijn FastTrak kaartjes voor de echte bekendheid van IDE-RAID gezorgd. Inmiddels is IDE-RAID algemeen geaccepteerd en implementeren diverse fabrikanten deze controllers op het moederbord.
Allemaal leuk en aardig, maar hoe werkt dat Redundant Array of Independent Disks nou eigenlijk ?
Met deze techniek is het mogelijk om data weg te schrijven ( en ook te lezen uiteraard
) op verschillende plaatsen op meerdere harde schijven. Met het wegschrijven van je data op verschillende plaatsen creëer je allereerst een stukje veiligheid ( Redundant ) en het gebruik van meerdere schijven voor opslag zorgt voor een gebalanceerde load van alle I/O operaties. Voordat je RAID kunt gebruiken moet je eerst een zogenaamde array bouwen. Hierin bepaal je welke schijven onderdeel zijn van een mirror- of stripeset(s) en waar de eventuele parity moet komen te staan. De functie van deze drie onderdelen in een array wordt bij de beschrijving van de diverse RAID configuraties duidelijk.
RAID configs
Er zijn vele soorten implementaties van RAID, elk aangeduid met een nummer. De vier bekendste soorten zijn RAID 5, RAID1, RAID0+1 en RAID0 al valt deze laatste eigenlijk niet echt onder de noemer RAID, omdat elke vorm van redundantie ontbreekt. Hoewel er nog veel meer RAID configuraties bestaan, zal ik hieronder de vier meest gebruikte nader toelichten.
Ik gebruik voor de leesbaarheid blauw voor de originele data op zowel gestriped als enkelvoudige schijven. Rood is voor data dat gemirrored staat en groen tenslotte is voor plaatsen waar parity staat.
RAID 0
RAID 0 maakt gebruik van een stripe-set die bestaat uit 2 of meerdere schijven. Wanneer je nu een bestand wegschrijft verdeelt je RAID controller dit bestand in een aantal blocks ( bepaalde RAID configuraties stripen op een Žper bitŽ basis ) verdeeld over de diverse schijven. Hoe meer schijven / kanalen ( of zelfs controllers ) je gaat gebruiken hoe groter je leessnelheid en hoe meer je de I/O load spreidt. Theoretisch is het mogelijk zo een performance boost van 100 % te genereren, dit en het volledige behoud van ingezette schijfruimte zijn de enige voordelen. Het grote nadeel van RAID 0 ligt, zoals al eerder vermeld, in het totaal ontbreken van redundantie. Wanneer er een schijf in je stripe-set faalt verlies je AL je data, de opgeslagen blocks op de falende schijf staan immers nergens anders.
Deze schematische weergave geeft aan hoe een bestand bij het opslaan wordt verdeeld over een stripeset van twee schijven.
RAID 1
In plaats van ieder bestand in blokken te hakken en die elk op een schijf wegschrijven zoals met RAID 0, gebruikt RAID 1 een schijf voor het originele bestand en een schijf voor het kopie van dat bestand. Het proces waarbij het origineel op de ene schijf geschreven wordt en automagisch een kopie op de ander noemen we mirroren. Wanneer er nu een schijf faalt bestaat er altijd een exacte kopie op een andere schijf. Het voordeel van deze configuratie is dat het restoren van data ( herstellen van verwijderde of beschadigde bestanden ) supersnel is omdat er een exacte kopie voor handen is. Er hoeft dus niets uitgerekend te worden zoals dat bijvoorbeeld bij restoren in een RAID 5 configuratie het geval is. Een groot nadeel is het hardeschijfvreetmonstertje wat bij deze configuratie tot leven komt, de tweede harddisk die je inzet bevat dezelfde data als de eerste, even snel uit het hoofd gerekend is dat 100 % verlies
.
Nog maar eens een plaatje ter verduidelijking.
RAID 0+1
De intelligente tweaker begrijpt al wat er met deze configuratie aan de hand is, dit is een combinatie van de twee bovenstaande configuraties. Je gebruikt dus zowel een mirror als een stripeset. Je pakt met deze configuratie eigenlijk het beste van de twee, performance door te stripen en redundantie door te mirroren. Er blijft echter nog een nadeel over en dat is weer je verlies van 100% diskruimte.
Ook hier een plaatje om het geheel te visualiseren.
RAID 5
In servers waar beschikbaarheid van data van vitaal belang is vinden we in 99% van de gevallen een RAID 5 configuratie. RAID 5 combineert alle voordelen van de RAID technologie en reduceert de nadelen ( extra harddisk ruimte ) tot het laagst mogelijke niveau. In plaats van het opslaan van een kopie zoals we bij RAID 1 en RAID 0+1 zagen berekent een RAID 5 controller bij het wegschrijven van data een checksum welke hij kriskras over de beschikbare schijven verdeelt. Mocht er ooit data verloren gaan of beschadigd raken kan de controller met behulp van de eerder gemaakte checksum dit volledig terug berekenen en restoren. Dit rekenen kost processorkracht en gaat daarom niet zo snel als het restoren van data in een RAID 1 configuratie, waarbij de controller alleen data van de mirrordisk naar de originele disk moet schrijven. Mocht je ooit eens voor een grote array staan met een stuk of vijftig 10.000rpm schijven en je wilt dat restoren wel eens ŽzienŽ. Trek er dan eens een paar lukraak uit en stop er een schone voor in de plaats ( bij zulke arrays liggen er altijd een paar zogenoemde ŽHotSparesŽ klaar in geval van nood ) pak een stoel, dim het licht en geniet van dat heerlijke geratel 
De voordelen van RAID 5 zijn uitstekende redundantie, hoge lees snelheid, gebalanceerde I/O's bij zowel lezen als schrijven en weinig verlies van bruikbare schijfruimte.
Als enig nadeel zou je de relatief trage schrijfsnelheid kunnen noemen wat veroorzaakt wordt door het berekenen van de parity, deze snelheid is uiteraard mede afhankelijk van de processor kracht op je controller.
Wederom is een grafische omlijsting op zijn plaats.
ABIT HotRod 100 Pro
Van www.hard-ware.nl ( aka Bolder Hardware ) uit Vlaardingen kreeg ik een ABIT HotRod 100 Pro en een viertal ATA-100 hardeschijven. Twee daarvan zijn IBM DTLA-307015 15 gieg 7200 rpm schijfjes, de andere twee zijn uit de 52049H4 serie van Maxtor elk met een inhoud van 20 gieg en doen eveneens 7200 rotaties in een minuut.
Het HotRod 100 Pro kaartje gebruikt de HPT370 chip van HighPoint, diezelfde chip die ook op een KT7-RAID bordje zit gesoldeerd. Eerder gebruikte ABIT deze chip al op de KA7-100 bordjes, waarbij je echter alleen ATA-100 ondersteuning hebt en geen RAID net zoals de KT7-nonRAID.
HighPoint is zeker niet de enige producent van IDE-RAID controllers, Promise, AMI en Adaptec bijvoorbeeld zijn ook bekende namen die eigen controllers produceren. Veel mobofabrikanten hebben inmiddels minimaal een bordje in het assortiment met een onboard controller, ik noem ASUS, MSI, IWILL en GigaByte. Een goeie zaak dat op een relatief goedkope manier IDE-RAID langzamerhand tot standaard mobouitrusting wordt verheven. Deze controllers ondersteunen alleen RAID 0, 1 en 0+1RAID. RAID 5 is voor je workstation niet echt interessant, RAID 0 daar in tegen heeft op papier een behoorlijke performance verbetering in petto.
Schiet je er nou ook echt iets mee op ?!? Of is het weer een nieuwe hype ?!? Voordat we naar de diverse getalletjes en grafiekjes gaan kijken eerst nog een blik op de accessoires;
Buiten de kaart zelf bevat de doos een CD met drivers en een RAID utility van HighPoint waar je wat informatie over het in gebruik zijnde array kunt aflezen. Verder een aparte flop met Windows NT4 & 2000 drivers voor verse install, nette duidelijke handleiding en als klap op de vuurpijl 2 IDE kabels met 80 adertjes. Met een paar schijfjes erbij kun je gelijk aan de slag
Voor de diverse tests gebruik ik een ABIT KT7 bordje ( die zonder onboard RAID dus ) met een AMD Tbird op 700 Mhz. Verder staat het testsysteem uit de volgende componenten :
Software :
- Windows 2000 Pro
- h2bench
- IO Meter
- Winbench 99
- ViaTech 4in1 versie 4.24
- HotRod driver 100622
Installatie en Raid Utility
Met het kaartje op de KT7 geprikt wordt het tijd om wat voltage door de controller te pompen. Na het laden van het moederbordbios springt het bios van de HotRod kaart op het scherm, ctrl+h geeft je toegang tot de diverse instellingen van de controller.
In het bios heb je een drietal mogelijkheden tot het bouwen van een RAID array, te weten RAID 0, RAID 1 en RAID 0+1. Zoals op de meeste IDE-RAID controllers wordt RAID 5 niet ondersteund, er was immers extra hardware nodig om de vereiste checksums uit te rekenen en dat kost poen. Met een prijs van 111 pietermannen kun je dit dan ook niet verwachten. Bij onder andere adaptec vind je wel IDE controllers die RAID 5 ondersteunen.
Omdat ik puur wil kijken naar de performance winst die je kunt behalen, kies ik alleen voor RAID 0. Het gebruik van schijven met verschillende omvang, zoals ik doe met twee 15 gieg IBMŽs en twee 20 gieg MaxtorŽs, is geen enkel probleem. Realiseer je echter wel dat bij het bouwen van een array de grootte van de kleinste schijf bepalend is voor de effectieve schijfruimte per hardeschijf. In mijn geval zijn de IBM schijven het kleinst, wat er voor zorgt dat mijn totale schijfruimte bij het gebruik van de vier schijven in RAID 0 60 GigaByte bedraagt ( 4 x 15 GB ). De 5 GB ruimte die ik nu op elk van de MaxtorŽs over heb is weg, raus, foetsie. Ook kun je in het BIOS kiezen om je schijven te spannen, zo maak je van een aantal schijven een groot virtueel volume zonder enig gestripe of gemirror. Tevens kun je de blocksize van je array in het BIOS instellen, voor deze test gebruikte ik blocks van 64k, dit gaf de beste prestaties. Mocht je met veel kleine bestanden werken dan kun je er eventueel voor kiezen de blokjes wat kleiner te maken, zo bespaar je ruimte en win je snelheid.
Het installeren van de kaart verliep vlekkeloos, bij de setup van Windows 2000 even op F6 drukken, driver laden van flop en draaien. Voor zowel IO meter als h2bench laat ik de schijven ongepartioneerd, alleen voor WinBench 99 wordt er een zo groot mogelijke partitie gemaakt afhankelijk van het aantal gebruikte schijven in de stripeset.
Op de meegeleverde CD staat een programma met de naam HPT RAID, een utility voor de HPT370 chip waar je niet echt schokkende informatie mee boven water haalt. Het hoofdscherm laat je je array zien met daarin aangegeven welke schijf welke taak heeft.
Het klikken op de schijven zelf levert je nog het desbetreffende type nummer op en de plaats aan de controller. Dit is helaas alles wat je met het proggie kunt doen, niet echt serieus te nemen dus...
H2BENCH
Voor de eerste test die ik draai gebruik ik h2bench, een proggie dat onder andere voor de schijvendans wordt gebruikt in het tijdschrift Computer Techniek. H2BENCH werkt onder DOS en tovert een aantal bruikbare getallen tevoorschijn.
Bij het bekijken van de rauwe data doorvoer zien we dat de IBM schijven oppermachtig zijn. Wanneer ik een stripeset van alle vier de schijven maak, beïnvloeden de Maxtor schijven het totaal behoorlijk. Het IBM duo voelt zich een stuk prettiger als er geen vreemden in de buurt zijn, je ziet duidelijk dat het combineren van verschillende schijfmerken en/of typen is af te raden, je beste schijf lijdt onder de prestaties van de "slechtste".
Een dikke 70 MB transferrate klinkt wel erg stoer, op een huis-tuin en keuken poeter zelden aan de orde. Mensen die aan beeldbewerking doen of sociale LAN-party bezoekers die met een Gigabit NIC zijn of haar mappen aan het overige volk beschikbaar stellen kunnen daar in tegen wel profijt hebben van zulke enorme prestaties.
Wat veel interessanter is voor je workstation performance is de toegangstijd, iets wat bij iedere benadering van je hardeschijf merkbaar is. Ga maar eens achter een oude 486 zitten met een schijfje van 540 MB, het bladeren door mappen en bestanden is een crime vergeleken met de snelheden van de huidige generatie harde schijven.
Het verschil tussen een enkelvoudig Maxtor of IBM ten opzichte van twee Maxtor of IBM schijven is een dikke milliseconde. Je "voelt" dit ook bij het werken met de verschillende configuraties, al is gevoel natuurlijk erg subjectief.
Weer zie je een lichte stijging in de toegangstijd bij het gebruik van de stripeset met alle vier de schijven ten opzichte van alleen de twee IBM's, al is 0,1 ms niet wereldschokkend.
WinBench 99
Disk Inspection TestDe Disk Inspection Test van Ziff Davis WinBench '99 bevestigt de voorgaande transferrate resultaten. Het IBM duo haalt een hogere transferrate dan wanneer ik er twee Maxtor's bij hang. Je ziet wel een minder sterke daling aan het einde van de array bij de stripe-set van vier schijven, die IBM schijven zitten hier dan al tegen het fysieke eind van de schijf (15 gieg) de Maxtor schijven hebben op dat punt nog vijf gieg te gaan. Omdat juist het einde van een schijf het slechts presteert halen de Maxtor's het totaal niet zo drastisch omlaag.
Disk WinMarksBuiten de Disk Inspection Test kent Winbench ook een reeks testen waar de prestaties bij het gebruik van een aantal bekende applicaties wordt gemeten. Hier wordt duidelijk waarom transferrates alleen niet bepalend zijn voor de algehele performance. De stripeset van vier schijven haalt, in tegenstelling tot voorgaande tests, een duidelijke hogere score dan de twee IBMetjes.
Aan de hand van deze resultaten poept Winbench een tweetal Disk WinMarks uit, high-end en business, waarvoor geldt : Hoe groter, hoe beter.
IOmeter
Eerder heb je al kunnen lezen dat RAID configuraties IO load kunnen spreiden, of dit ook tot gevolg heeft dat er meer IOs uitgevoerd kunnen worden kun je zien met IOmeter. Dit is een benchtooltje van Intel wat zowel schijf als netwerk kan benchen. Om een 'real-life' omgeving te simuleren van bijvoorbeeld een database- of webserver zijn er door StorageReview een aantal toegangspatronen gedefineerd, ik gebruik voor deze test de workstation settings.
Deze scores zijn, met de vorige twee tests in het achterhoofd, toch enigzinds verrassend te noemen. Een enkelvoudige IBM voert in de meeste gevallen het grootst aantal IO operaties per seconde uit. Zelfs twee van deze schijven, welke in de vorige tests bijna overal het snelste waren, kunnen geen betere resultaten neer zetten.
Het enige voordeel wat we nu nog zouden kunnen zien bij de RAID configuraties is een lagere processor belasting bij een gelijk aantal IO operaties in vergelijking met de enkelvoudige IBM. Eerst nog even twee ander belangrijke resultaten.
De toegangstijden zijn iets hoger als in de h2bench test, de onderlinge verhoudingen zijn echter zo goed als gelijk. Het forse verschil van meer dan 4 ms tussen de Maxtors en IBM's beinvloed het totaal van de RAID array met alle vier de schijven niet zo heel veel.
Wat CPU load betreft doen de Maxtor's het wel uitstekend in RAID 0, al is dit wel relatief. In vergelijking met de andere configuraties heeft een enkelvoudige Maxtor in bijna alle tests 50% meer cpu kracht nodig, maar met twee schijven in RAID 0 kan dit weer recht gezet worden. De IBM's doen het tegenover gestelde, wanneer daar twee schijven van in RAID 0 staan stijgt de CPU load juist.
Nu kunnen we de CPU load delen door het aantal IOs per seconde om te kijken of de RAID configuraties hier enigzinds verlichting in kunnen brengen. De load is met een max van 3,56% voor de Maxtor over de hele linie goed te noemen. De enkelvoudige IBM weet van alle configuraties toch het meest efficient met een procentje CPU kracht om te springen.
Conclusie
De grootste performance boost met twee of meer IDE schijfjes in RAID 0 ligt in de rauwe doorvoer van data. Of je hier in de dagelijkse praktijk ook echt iets van merkt hangt geheel af van de applicaties die je draait, zeker mensen die met videobeelden of grote (grafische) bestanden werken zullen hier echt iets van merken.
Games gaan echt niet sneller met een RAID 0 config, hooguit wordt je laadtijd iets verkort. Mede door de snellere toegangstijd ( zoals de twee IBM's ) merk je ook in het dagelijks gebruik dat je iets snels onder de motorkap hebt zitten, het systeem voelt lekker soepel reagerend aan.
Zoals je in de PriceWatch kunt zien is het verschil tussen een 'normale' KT7 en het KT7-RAID mobo van ABIT 57 pietermannen, mijn inziens het geld zeker waard voor de extra performance. Met een prijs van fl 111,- bij www.hard-ware.nl is de losse RAID controller van ABIT niet duur, de aanschaf van deze controller legt de echte die-hard tweaker dan ook zeker geen windeieren. Ik raad je wel aan goed te kijken welke schijven je gaat gebruiken voor je RAID array, in de tests komt duidelijk naar voren dat de performance ernstig geremd wordt door de traagste schijf ( in dit geval de Maxtor ).
Wanneer je toe bent aan wat extra schijfruimte is het zaak je af te vragen wat je wilt. Voor puur wat opslag voor je mp3 en divx collecties is een 75 GB IBM ( IBM om de vergelijking makkelijk te maken ) schijf voor fl 1350,- piek een prima oplossing, ben je daar in tegen op zoek naar de ultieme performance dan kun je ook kiezen voor een viertal IBM schijven ( de 15 gieg exemplaren uit deze test bv ) in combinatie met de HotRod. Met deze laatste optie verlies je wel 15 GB en betaal je fl 45,- extra, je hebt dan wel één van de snelste IDE configuraties die op dit moment te verkrijgen is.
Ik sluit af met een korte opsomming van zowel de positieve als de negatieve punten. Het eerste negatieve punt ligt niet zozeer aan de HotRod zelf, maar aan RAID 0 in het algemeen.
Positief+ Goedkoop
+ Makkelijk te configureren
+ Pittige prestatiewinst
Negatief- Door ontbreken van redundantie niet geschikt voor opslag van belangrijke data
- Bepaalde (combinaties van) soorten/merken schijven bevorderen de prestaties niet