Door Femme Taken

UX Designer

Hardware en software RAID 5 performance in Windows XP

01-04-2003 • 16:08

52

Multipage-opmaak

Inleiding

Harde schijven / RAID aankondigingWie wel eens wat gespeeld heeft met het aanmaken van partities in de Disk Manager van Windows XP Professional weet dat het nieuwste desktopbesturingsysteem van Microsoft naast ondersteuning voor simpele partities ook spanning en striping beheerst. Software striping (RAID 0) is een goed alternatief voor firmware RAID-oplossingen zoals de goedkope ATA RAID controllers van Promise en HighPoint. In beide gevallen wordt het verdelen van de gegevens over de aanwezige schijven afgehandeld door de CPU. Er zijn daardoor nauwelijks prestatieverschillen tussen software striping en firmware RAID 0. Het voornaamste nadeel van software striping is het feit dat niet geboot kan worden vanaf een software RAID 0 partitie. Veel mensen geven daarom de voorkeur aan firmware RAID controllers, die vanwege hun lage kosten dan ook zeer populair zijn onder het tweakend publiek.

De serverversies van Windows bieden naast striping en spanning ook de mogelijkheid om RAID 1 (mirroring) en RAID 5 (striping met distributed parity) partities aan te maken. Vooral de laatste mogelijkheid is interessant omdat hardwarematige RAID 5 ondersteuning alleen is terug te vinden op kostbare intelligente ATA en SCSI RAID controllers. De techneuten van het Duitse c't Magazine hebben een methode ontdekt waarmee software RAID 1 en RAID 5 ondersteuning middels een paar eenvoudige aanpassingen in Windows XP gehackt kan worden. De hack kan binnen 10 minuten geklaard zijn en maakt software RAID 1 en RAID 5 ook mogelijk in de gewone desktopversie van Windows! In dit artikel geven we je stap voor stap uitleg over het uitvoeren van de patch en vergelijken we de prestaties van software RAID 5 met de performance van een hardwarematige RAID 5 adapter.

Windows XP Disk Manager met RAID 5 regenererende RAID 5 partities
Windows XP Disk Management met software RAID 5 partitie

Wat is RAID 5?

Striping, Mirroring, RAID 0 en RAID 1 zullen ongetwijfeld geen onbekende begrippen meer zijn voor de gemiddelde tweaker. RAID 5 geniet daarentegen minder bekendheid, vooral vanwege het feit dat deze technologie voor een veel kleinere groep bereikbaar is. RAID 5 is een methode om de voordelen van redundancy en striping te combineren met een lage overhead. RAID 1 en RAID 10 (striping + mirroring) hebben weliswaar een hoge betrouwbaarheid en - zeker in het tweede geval - een hoge performance, maar daar tegenover staat een zeer hoge overhead van 50 procent. Voor elke gigabyte effectieve opslagcapaciteit moet de dubbele hoeveelheid fysieke opslagcapaciteit ingezet worden. Om het kostenpatroon van continue systemen onder controle te houden, is er gezocht naar een manier om te besparen op het aantal drives ten opzichte van RAID 1 en RAID 10, maar met behoudt van de hoge beschikbaarheidsgraad. Bij RAID 5 wordt er met behulp van een XOR algoritme uit de aangeboden data een zogeheten pariteit (parity) berekend. De parity wordt verdeeld over de aanwezige schijven. Bij een crash van één van de schijven kan uit de data van de defecte drive gereconstrueerd worden uit de pariteitsgegevens die zijn verdeeld over de overige schijven. Het opslagsysteem blijft beschikbaar, hoewel de performance wel sterk zal afnemen zolang er geen rebuild heeft plaatsgevonden op een vervangende schijf.

Door het toepassen van block striping en verdeling van parity ontstaat een systeem dat zowel hoge betrouwbaarheid als goede prestaties kan bieden. RAID 5 is daarom goed toe te passen in multi-user omgevingen met veel I/O requests en is tegelijkertijd goed in staat performance te leveren voor leesopdrachten. De prestaties bij het wegschrijven van gegevens is lager dan bij RAID 0, 1 en 3 (parity op een fixed disk), maar omdat bij veel servertoepassingen het merendeel van de I/O operaties wordt vertegenwoordigd door leesopdrachten hoeft de lagere schrijfperformance van RAID 5 geen groot probleem te zijn.

Hardware vs Software RAID 5 - parity verdeling
RAID 5 striping en distributed parity

De lagere schrijfperformance van RAID 5 wordt veroorzaakt door het feit dat voor elke schrijfoperatie twee extra leesoperaties nodig zijn. Voordat de nieuwe parity berekend kan worden, moeten eerst de oude data en de oude parity ingelezen worden van het blok dat wordt herschreven. Omdat zelfs de snelste 15.000 toeren harde schijven een relatief hoge gemiddelde toegangstijd van 5,5 tot 6 milliseconden hebben, zal er door de extra leesoperaties een aanzienlijke vertraging optreden. Het nadelige effect is het grootst bij het wegschrijven van kleine stukjes data. Het gebruik van een intelligente I/O processor, die de CPU ontlast van de parityberekening, en het gebruik van een groot cachegeheugen op de RAID controller kan de schrijfperformance van een RAID 5 opstelling aanzienlijk verbeteren.

Het verdelen van de parity over de aanwezige drivers levert uiteraard verlies op van de beschikbare opslagcapaciteit. Bij een configuratie met drie schijven bedraagt de overhead 33 procent, bij vijf schijven is de overhead 20 procent en bij zeven schijven is de overhead 14 procent. Vooral bij de grotere arrays is RAID 5 veel efficiënter dan RAID 1 en RAID 10. Dankzij de hoge betrouwbaarheid, goede performance en lage overhead is RAID 5 heden ten dage de meest toegepaste RAID-implementatie in professionele systemen.

Uitvoering van de patch

Het uitvoeren van de Windows XP RAID 5 patch is tamelijk eenvoudig. Het benodige gereedschap bestaat enkel uit een hexeditor. Het idee achter de patch is om Windows XP te laten geloven dat de RAID partitioneringsmogelijkheden van de serverversies toebehoren aan de desktopversies en vice versa. Daartoe moet in een aantal bestanden de string 'SERVERNT' vervangen worden door 'WINNT' en de originele verschijningen van 'WINNT' vervangen worden door 'SERVERNT'. Het stappenplan is als volgt:

1) Kopieer de volgende bestanden uit de Windows subdirectories naar een andere plaats om ze daar vervolgens met een hexeditor te lijf te gaan:

\system32\drivers\dmboot.sys
\system32\dmconfig.dll
\system32\dmadmin.exe

Verzeker je jezelf ervan dat je een backup hebt van de bovenstaande drie bestanden, voor het geval de wet van Murphy toeslaat.

2) Open de bestanden in een hexeditor en vervang 'SERVERNT' of 'servernt' door 'WINNT' / 'winnt' en vice versa ('WINNT' vervangen door 'SERVERNT'). Zorg ervoor dat de lengte van de files niet verandert. Het verschil in lengte tussen de string SERVERNT en WINNT moet opgevuld worden met nulbytes.

3) Kopieer de drie aangepaste bestanden naar hun oorspronkelijke locatie. Dit kun je doen vanuit de recovery console, maar admins mogen het ook direct vanuit Windows doen. Zorg er in dat geval voor dat de installatie cd van Windows XP zich niet in de CD-ROM speler bevindt. Geef niet toe aan het geklaag van Windows dat een paar gewijzigde systeembestanden vervangen moeten worden door hun originelen.

copy dmboot.sys system32\drivers
copy dmboot.sys system32\dllcache
copy dmconfig.dll system32
copy dmconfig.dll system32\dllcache
copy dmadmin.exe system32
copy dmadmin.exe system32\dllcache

4) Reboot de computer.

Na het uitvoeren van de patch zul je in Disk Management de mogelijkheid aantreffen om RAID 1 en RAID 5 partities te bouwen. RAID partities kunnen uitsluitend aangemaakt worden op schijven die zijn geconfigureerd als Dynamic Disk. Basic Disks kunnen geconverteerd worden naar Dynamic Disks door in het schijfoverzicht met de rechtermuisknop op de naam van de betreffende schijf te klikken.

Windows XP Disk Manager met RAID 5 support

Testconfiguratie

De RAID 5 prestatietests werden uitgevoerd op de configuratie die in de
Tekram DC-390U4B Ultra320 SCSI adapter

Low-level performance

We binnen onze benchmarkparade met een paar low-level benchmarks van de sequentiële transfer rates en de gemiddelde toegangstijden. De software RAID 5 opstelling laat zich meteen van zijn beste kan zien en noteert een overdonderende throughput van 136MB/s in de Winbench 99 Disk Inspection-test. De prestaties van de MegaRAID Elite 1600 zijn teleurstellend; de transfer rate is niet hoger dan van een enkele Cheetah 10K.6. Het is opmerkelijk dat de MegaRAID over het gehele schijfbereik een constante transfer rate heeft. De gemiddelde toegangstijd neemt licht toe bij zowel de softwarematige als de hardwarematige RAID 5 opstelling. De MegaRAID levert wederom de slechtste prestaties.

Winbench 99 v2.0 - Sequentiële transfer rate - Begin (MB/s)
Software RAID 5 - 3x 10K.6 136000
Seagate Cheetah 15K.3 75800
Seagate Cheetah 10K.6 70500
Elite 1600 RAID 5 - 3x 10K.6 69100
Winbench 99 v2.0 - Sequentiële transfer rate - Eind (MB/s)
Software RAID 5 - 3x 10K.6 80000
Elite 1600 RAID 5 - 3x 10K.6 69200
Seagate Cheetah 15K.3 50700
Seagate Cheetah 10K.6 41400
Winbench 99 v2.0 - Gemiddelde toegangstijd (ms)
Seagate Cheetah 15K.3 6,37
Seagate Cheetah 10K.6 8,07
Software RAID 5 - 3x 10K.6 8,29
Elite 1600 RAID 5 - 3x 10K.6 8,43

Een totaal ander beeld wordt zichtbaar zodra ATTO Disk Benchmark aan het werk wordt gezet. De MegaRAID Elite 1600 is niet onder de indruk van ATTO's 32MB kleine throughput-test en gooit zijn 128MB grote cachegeheugen met vol gewicht in de strijd. Het resultaat mag er wezen, want in het zicht van de MegaRAID-scores verbleken de transfer rates van de Cheetah 10K.6 en de Cheetah 15K.3. De software RAID 5 configuratie houdt stand als het aankomt op de lees-doorvoersnelheid. De schrijfperformance is echter dermate slecht dat software RAID 5 bij transfers van 512 bytes nog maar ter nauwernood een floppydrive (in ideale omstandigheden) kan bijbenen. Vanaf transfergroottes van 128KB komt de schrijf- performance op een acceptabel niveau. Speelt de MegaRAID vals spel, of heeft het cachegeheugen daadwerkelijk grote invloed op de prestaties in de desktopbenchmarks en serversimulaties?

ATTO score Seagate Cheetah 10K.6
Tekram DC-390U4B - Seagate Cheetah 10K.6

ATTO score Software RAID 5 3x 10K.6
Tekram DC-390U4B - 3x Cheetah 10K.6 - Software RAID 5

ATTO score MegaRAID Elite 1600 RAID 5 3x 10K.6
LSI Logic MegaRAID Elite 1600 - 3x Cheetah 10K.6 - RAID 5

Serversimulaties

Nadat de schijven hebben warmgelopen in Winbench en ATTO komt het echte werk aan de beurt: de

Tweakers.net StorageMark 2003 - Fileserver - Gewogen gemiddelde (IOps)
Elite 1600 RAID 5 - 3x 10K.6 397,7
Software RAID 5 - 3x 10K.6 337,9
Seagate Cheetah 10K.6 246,4

Het webserver toegangspatroon is gebaseerd op een evenwichtige verdeling tussen lees- en schrijfopdrachten. De webserver simulatie belooft daarom een harde kluif te worden voor de software RAID 5 opstelling. Onze vrees wordt bewaarheid als blijkt dat software RAID 5 slechter presteert dan een single Cheetah 10K.6. De MegaRAID levert tussen 2 en 128 uitstaande I/O's wel beduidend betere prestaties, maar vanaf een queuegrootte van 128 I/O's zakken de prestaties als pudding in elkaar. In werkelijkheid komen zware belastingen van meer dan 64 uitstaande I/O's zelden voor, waardoor de inzinking van de MegaRAID niet als een groot probleem beschouwd hoeft te worden.

Hardware vs Software RAID 5 - Webserver simulatie
Tweakers.net StorageMark 2003 - Webserver - Gewogen gemiddelde (IOps)
Elite 1600 RAID 5 - 3x 10K.6 343,1
Seagate Cheetah 10K.6 264,5
Software RAID 5 - 3x 10K.6 257,1

Tenslotte hebben we de Cheetah 10K.6 en de RAID 5 configuraties getest op het webserver toegangspatroon van StorageReview.com. De simulatie van Storage Review gaat uit van 100 procent leesopdrachten, een omstandigheid die ideaal is voor een RAID 5 implementatie. De software RAID 5 configuratie slaagt erin om voor het eerste betere prestaties te leveren dan de MegaRAID. In beide gevallen is de prestatiewinst ten opzichte van de single disk configuratie aanzienlijk. De software RAID 5 setup is maar liefst 91 procent sneller, terwijl de MegaRAID een 81 procent hogere doorvoer op de klok zet.

Hardware vs Software RAID 5 - Storage Review Webserver simulatie
Storage Review Webserver DriveMarks - Gewogen gemiddelde (IOps)
Software RAID 5 - 3x 10K.6 446,4
Elite 1600 RAID 5 - 3x 10K.6 423,3
Seagate Cheetah 10K.6 233,2

Vanzelfsprekend waren we uiterst benieuwd naar de processorbelasting van RAID 5. De wildwest verhalen die hierover de rondte doen, worden geenzins bewaarheid. Onder de zwaarste omstandigheid, het webserver toegangspatroon met een queue van 256 uitstaande I/O's, is de gedeelde belasting van de twee Athlon XP 2400+ processors slechts 4,14 procent. De ruim twee procent extra processorbelasting ten opzichte van hardware RAID 5 is geen reden om software RAID 5 oplossingen buiten spel te zetten. Bij kleine I/O queues zakt de processorbelasting onder een niet noemenswaardige twee procent.

Tweakers.net StorageMark 2003 - Webserver - CPU belasting bij 256 uitstaande I/O's (%)
Seagate Cheetah 10K.6 1,55
Elite 1600 RAID 5 - 3x 10K.6 1,97
Software RAID 5 - 3x 10K.6 4,14

MegaRAID desktop performance

De

Conclusie

De drie serversimulaties waarin we de software RAID 5 opstelling hebben getest, vormen een perfecte illustratie van situaties waarin software RAID 5 slecht, matig en zeer goed kan presteren. De slechte reputatie van software RAID 5 kon in onze tests niet bevestigd worden. Alleen in omgevingen waarin schrijfoperaties zeer sterk vertegenwoordigd zijn, levert software RAID 5 ondermaatse prestaties. De CPU-belasting van softwarematige parityberekening was op het dual Athlon XP 2400+ testsysteem zelfs onder de zwaarste omstandigheden niet hoger dan enkele procenten. Indianenverhalen als zou software RAID 5 een enorme belasting op de CPU leggen, kunnen in ieder geval in het huidige tijdperk van supersnelle processors naar het rijk der fabelen verwezen worden.

De prestaties van hardware RAID 5, in onze tests vertegenwoordigd door de LSI Logic MegaRAID Elite 1600, bleken over het algemeen hoger te zijn dan van software RAID 5. Vooral in voor RAID 5 lastige omstandigheden - situaties met naar verhouding veel schrijfoperaties - presteerde hardware RAID 5 aanzienlijk beter dan software RAID 5. De pure leesperformance van software RAID 5 was daarentegen wel hoger dan van de hardware RAID adapter. Het is niet ondenkbaar dat moderne Ultra320 SCSI RAID adapters dankzij snellere I/O processors, sneller cachegeheugen en een snellere SCSI-interface wél onder alle omstandigheden beter presteren dan software RAID 5.

LSI MegaRAID Elite 1600 (I/O processor heatsink)
Intel 960RN I/O processor

Onze bevindingen wijzen uit dat er zeker toepassingen zijn te bedenken waarin software RAID 5 kan functioneren. Een voorbeeld is een ontwikkelomgeving die niet teveel mag kosten of een low-budget webserver in de hobby of non-profit sfeer. Software RAID 5 biedt tegen lage kosten een betere redundancy dan single disk volumes en kan bij arrays van drie schijven tot 90 procent beter presteren zolang de verhouding schrijf/leesoperaties laag blijft. Hardware RAID adapters bieden naast betere prestaties talloze andere voordelen, die de keuze tussen hardware en software RAID 5 feitelijk een non-issue maken. Dankzij features als global online hotspares, hotswapping, online capacity expansion, online RAID level migration en platform onafhankelijke remote management bieden hardwarematige RAID adapters een veel hogere betrouwbaarheid, beschikbaarheid en schaalbaarheid dan software RAID 5 oplossingen. Het prijsverschil tussen SCSI en SCSI RAID adapters is sterk gedaald nu goedkopere single channel Ultra320 SCSI RAID adapters dezelfde bandbreedte kunnen bieden als duurdere en complexere dual channel Ultra160 adapters voorheen. Single channel Ultra320 SCSI RAID adapters van Adaptec, Mylex en LSI Logic zijn verkrijgbaar vanaf 550 euro, wat niet eens het dubbele is van de prijs van een single channel Ultra320 SCSI adapter.

Prijzen Ultra320 SCSI en SCSI RAID adapters
Adaptec ASC-29320R (1x U320 SCSI, PCI-X, RAID 0/1)Onbekend
Tekram DC-390U4W (2x U320 SCSI, PCI-X, RAID 1)Onbekend
Adaptec ASR-2120S (1x U320 SCSI RAID, 64MB, PCI64/66)Onbekend
LSI MegaRAID 320-1 (1x U320 SCSI, Low profile, PCI-X)Onbekend
Mylex AcceleRAID 400 (1x U320 SCSI, 32MB, Low profile, PCI-X)Onbekend

De afgelopen jaren is ook de markt voor intelligente ATA RAID adapters tot ontwikkeling gekomen. Inmiddels zijn 3ware, Adaptec, ICP Vortex, LSI Logic en Promise actief met Parallel en Serial ATA RAID adapters. Dankzij betaalbare producten zoals de populaire vier-kanaals SCSI4me.com opgepikt. Uiteindelijk is zo'n hardware RAID 5 adapter toch veel mooier speelgoed dan een software RAID 5 patch voor Windows XP, al was het maar vanwege de l33te RAID BIOS-tweaks en de stoere remote management tools (RAID configgen vanaf de pc van een bevriende mede-tweaker! ).

Tot slot zou ik de volgende personen en bedrijven willen bedanken voor hun medewerking: Marie-Pierre Degoulet van Seagate voor het beschikbaar stellen van een Cheetah 15K.3 en drie Cheetah 10K.6 schijven, Tekram Duitsland en Albert Uythof van SMG Benelux voor het beschikbaar stellen van de Tekram Ultra320 SCSI adapter en niet te vergeten c't Magazine voor het uitdokteren van de software RAID 5 patch.