Software RAID vs Hardware RAID: het concept

In 2011 schreef ik al over de afwegingen of ik software RAID of hardware RAID zou gaan gebruiken. Uiteindelijk viel de keuze op software RAID met als belangrijkste afweging dat deze hardware onafhankelijk is. De (korte) toelichting daarop was wel wat kort door de bocht te noemen.

Voor onderstaande toelichting is enige kennis van RAID en de verschillende modus die RAID bied vereist. Voor meer informatie over RAID zie: Redundant Array of Independent Disks

Eigenschappen

De mogelijkheden voor RAID arrays zijn op te delen in twee categorieën te weten hardware RAID en software RAID.

Hardware RAID
Onder hardware RAID wordt een losse controller verstaan. Dus niet de RAID opties die de meeste BIOS’en bieden. Deze zijn vaak gesimuleerd en hebben eigenlijk de nadelen van zowel hardware RAID als software RAID.

  • RAID wordt verzorgt door een RAID controller
  • Flexibiliteit arrays afhankelijk van kwaliteit firmware die door het merk verzorgd wordt
  • RAID controller neemt berekening voor zijn rekening. Duurdere kaarten zijn ook voorzien van extra cache mogelijkheden. Hierdoor wordt er geen gebruik gemaakt van capaciteit van de host pc
  • OS weet niets van de RAID configuratie en is niet bewust dat het schrijft naar of leest van 1 of meerdere devices. OS ziet 1 device
  • Write-back-cache. Data modificaties uit de cache worden enkel geschreven naar de schijf indien nodig. Zo worden schrijf acties verzameld. Dit kan resulteren in betere performance bij veel gelijktijdige activiteit
  • Uitbreidbaar met Battery Backup Unit (BBU) waarmee de kans op een defecte of herbouwende RAID array bij stroomuitval gedurende schrijfacties sterk verminderd wordt.
  • Afhankelijk van merk/type controller. Array is te verplaatsen van machines en OS zolang controller hetzelfde blijft
  • Controllers zijn duur, zeker de goed presterende controllers met BBU en eigen cache

Software RAID
Onder software RAID wordt de pure software RAID verstaan en dus niet de BIOS implementaties. Die laatste zijn vaak gesimuleerd en hebben eigenlijk de nadelen van zowel hardware RAID als software RAID.

  • RAID wordt verzorgt door software
  • Flexibiliteit arrays afhankelijk van kwaliteit software. Voor linux is die opensource en daardoor ook zeer compleet. Het groeien en uitbreiden van arrays is zeer eenvoudig
  • Berekeningen worden gedaan door de CPU van de host pc
  • OS ziet losse devices, software zet dat om naar een extra device die de RAID array representeert
  • Geen write-back-cache maar write-through-cache. De wijzigingen worden direct doorgevoerd wat kan resulteren in een mindere performance bij veel gelijktijdige activiteit
  • Stroomuitval gedurende schrijfacties resulteert minimaal in een herbouwende RAID array. Dit is eventueel op te vangen met een UPS voor de host pc
  • Onafhankelijk van de hardware, echter afhankelijk van OS
  • Software RAID is onder zowel Windows als Linux gratis beschikbaar

Wat te gebruiken?

Software RAID of hardware RAID? Dat is een vraag dit niet zomaar te beantwoorden is. Het doel en de beschikbare middelen bepalen het antwoord. Daarom een tweetal goed denkbare gebruikersscenario’s:

Scenario 1

Een thuisserver draaiend op Ubuntu met daarin een vijftal SATA schijven. Een van de schijven heeft een capaciteit van 320GB en is bedoeld voor het OS. De rest van de schijven heeft een capaciteit van 2TB en is bedoeld als storage in een RAID 5 array die over het netwerk de bestanden moet serveren. De gebruiker backupped zijn belangrijke data naar de cloud. Verder wordt de server alleen gebruikt om wat op te testen.

Voor een server voor thuisgebruik is er meestal sprake van een meer lees- dan schrijfbewerkingen en een beperkter budget. Het gebruik van de CPU van de host geen probleem, de server doet niet heel veel meer dan het serveren van bestanden. Ook wordt er relatief weinig geschreven waardoor het gemis van de write-back-cache en een BBU niet direct cruciaal is. Daarnaast is te verwachten dat hier flexibiliteit handig is, denk aan schijven vervangen door schijven met een hogere capaciteit en het bijplaatsen van schijven. Beide RAID oplossing zijn geschikt, maar gezien het beperkte budget en de gevraagde flexibiliteit voldoet software RAID hier het best.

Scenario 2

Een webserver draaiend op CentOS met daarin een viertal identieke SAS schijven met een capaciteit van 600GB. Op de webserver draait een database intensieve webapplicatie waarbij veel lees- en schrijfbewerkingen zijn. De server levert vervolgens het resultaat aan de gebruiker door middel van Apache. De schijven draait in RAID 10, er is daarmee 1200GB beschikbaar voor het OS. De backups worden door de hoster verzorgd.

Voor deze webserver is performance erg belangrijk en er zijn veel schrijfbewerkingen. Het is dus beter de berekeningen voor de RAID array niet de CPU van de server te laten belasten. Daarnaast is de write-back-cache zeer wenselijk in verband met de vele activiteit en zal bij uitbreiding van capaciteit eerder heel de server worden vervangen dan enkel de harde schijven. Hier kies ik dan ook voor het gebruik maken van hardware RAID.

Conclusie

Beide oplossingen hebben voor- en nadelen ten opzichte van elkaar. De conclusie dat hardware RAID een betere performance heeft, zoals die vroeger veelal naar voren kwam, is niet meer vanzelfsprekend. Daarom is het van belang het gebruiksdoel centraal te stellen en vervolgens af te wegen welke oplossing het beste bij dit doel past.

Helaas heb ik niet de mogelijkheid om hardware RAID en software RAID op een identieke situaties te kunnen benchmarken. Daaruit zouden definitieve conclusies getrokken kunnen worden.

Leave a Reply

Your email address will not be published. Required fields are marked *