Hoe ‘snel’ is storage?

Systeembeheerders worden tegenwoordig geacht zowel kennis als kunde te hebben van de totale IT-omgeving, dus niet alleen van de lopende processen of de applicaties die ze beheren. Zodra een applicatie niet naar behoren presteert wordt vaak naar de storage gekeken als potentiële bottleneck.

Er zijn diverse factoren die de performance van een storageomgeving bepalen. Onder gebruikers is snelheid vaak de meest gebruikte term, om deze prestaties aan te geven.  “Het systeem is traag”, “mijn applicatie reageert niet”, “we hebben toch een snel netwerk?” Maar wat betekent ‘snelheid’ hier nu precies?

In een typische-database opstelling worden de prestaties mede bepaald door het server OS en database software, de juiste tools voor beheer en onderhoud, voldoende werkgeheugen, krachtige processoren en een goed extern dataopslagsysteem. Datamanagement draagt zeker bij aan de totale prestaties, een evolutie in configuratie en beheer is ongetwijfeld Software-Defined Storage (SDS). Het gekozen opslagsysteem is essentiëler dan ooit tevoren; verschillende hardware componenten dragen bij aan de performance, en uiteindelijk aan die van de totale storageomgeving.

Hoe ‘snel’ zijn de gekozen disks eigenlijk? En zijn ze wel afgestemd op de vereisten van de applicaties? De totale performance van de storage wordt doorgaans gemeten in:

  • IOPS                 bewerkingen per seconde
  • Throughput     doorvoer (snelheid/capaciteit)
  • Latency            reactietijd

Een eenvoudige benchmark voor een Windows Server OS installatie demonstreert wat SSD kan betekenen voor bijvoorbeeld installatietijd:

  • Nieuwe SATA3 SSD                           => Installatietijd 3 minuten en 45 seconden
  • Traditionele RAID10 7K SATA2 HDD   => Installatietijd 32 minuten, 25 seconden

Het type disk zorgt dus al voor een flink verschil in prestaties en de keuze voor Flash/SSD opslag lijkt dan snel gemaakt.

Disk performance

Voor disk opslagsystemen zijn er dus verschillende factoren die de ‘snelheid’ bepalen. Het type disk is op zich al een punt van aandacht. In onze dagelijkse werkzaamheden zien we dit vaak terug in hoeveel Megabytes per seconde (MB/s) we kunnen lezen en schrijven, van en naar onze werkschijven. Dit voorbeeld van Input/Output wordt sequential genoemd; een datafile wordt van begin tot eind in een continue datastroom weggeschreven of uitgelezen. Als het gaat om dataopslag is deze factor maar de helft van wat de eigenlijke ‘performance’ voorstelt.

Bij traditionele harde schrijven wordt de lees- en schrijfsnelheid onder andere bepaald door:

  • Rotaties per minuut (RPM) – hoe sneller de schijf spint, hoe meer data er kan worden gelezen in een bepaalde tijd
  • Responstijd (Average Latency/Seek Time) – de gemiddelde tijd die een diskhead nodig heeft om een sector of datatrack bereiken

Kortgezegd resulteert de combinatie van beide factoren in een potentiële ‘data transfer rate’ van bijvoorbeeld 150, 300 of 600MB/s. In werkelijkheid zijn deze waarden vele malen lager, onder andere omdat de zoektijd langer wordt naarmate een disk vol loopt.

Ondanks deze beperkingen van prestaties worden er nog altijd nieuwe methodes ontwikkeld om slimmer en sneller om te gaan met traditionele harddisk storage.

IOPS als uitgangspunt

De responstijd van een systeem of applicatie wordt dus vaak ervaren als de mate van ‘snelheid’. Omgekeerd is de tijd die een storagesysteem nodig heeft om een I/O operatie aan te bieden de eigenlijke ‘haalbare’ snelheid. Dit resulteert in het aantal Input/Output per Seconde, of IOPS. Men kijkt dus niet naar het resultaat van de prestaties maar naar het potentieel van de storage.

SSD heeft een vele malen lagere responstijd, hogere throughput en levert dus ook vele malen meer IOPS. Het nadeel van SSD / Flash lijkt in eerste opzicht de prijs-per-gigabyte, zoals bij HDD ook wordt gekeken naar deze prijs-capaciteitsverhouding. De maximale capaciteit van een SSD loopt nog wat achter vergeleken met HDD en de traditionele capacity HDD’s worden steeds goedkoper. Hoewel de prijs van SSD pakweg 5x hoger ligt, zijn de prestaties tot wel 80x hoger vergeleken met die van performance HDD( roterende harddisks)!

  • 1.600GB SSD SFF                     2,50 euro /GB       160.000 IOPS*
  • 1.800GB HDD SFF 10K SAS     0,45 euro /GB           2.000 IOPS
  • 10.000GB HDD LFF 7K SAS     0,05 euro /GB           1.280 IOPS

(*array van 24 drives in RAID10 en gelijke read/write verhouding)

Hoeveel IOPS moet een storage subsysteem kunnen leveren? Dit is eigenlijk de vraag die elke systeembeheerder zich moet stellen!

Kan de vraag naar IOPS op den duur wel worden voldaan met performance HDD’s of zijn de prestaties van All-Flash systemen binnenkort onmisbaar?

Uit bovenstaande cijfers blijkt immers, dat een Raid5 volume opgebouwd uit 3x SSD HD’s van 800GB (totaal van 1.600GB bruikbaar)  potentieel 160.000 IOPS kan leveren.

Om dit zelfde resultaat te behalen met een Raid-5 volume bestaande uit Traditionele SAS HD’s, heeft men 80 HD’s nodig en zit men met een gigantisch capaciteitsoverschot (in theorie 80-1 = 79 SAS HD’s van bv 600GB => geeft 47.400GB )