Van grammofoonplaat tot 1 miljoen IOPS: over onze opslag.

Thomas de Jong | 15 mei 2017

Een belangrijk onderdeel van onze virtuele cloudproducten is de hardware waar ze op draaien. Hoe beter de hardware, hoe stabieler, sneller en veiliger de producten die je bij ons afneemt. En aangezien de opslag van je data natuurlijk erg belangrijk is, nemen we dit erg serieus.

Er zijn nogal wat mogelijkheden op dit gebied, waardoor er grote verschillen zijn tussen de producten van verschillende cloudhosters. In dit artikel vertellen we je alles over de hardware die we gebruiken voor onze opslag: de HP Enterprise 3PAR All Flash Array.

All Flash Array = SSD = snelheid = veel IOPS

Een hele mondvol, maar het grootste gedeelte kun je gelijk weer vergeten. Het stuk dat wel de moeite van het onthouden waard is, staat helemaal achteraan: All Flash Array. Dat betekent dat onze opslag volledig bestaat uit SSD’s, oftewel harde schijven zonder draaiende onderdelen. Om uit te leggen wat dat inhoudt, krijg je eerst een klein geschiedenislesje.

HPE 3PAR All Flash Array opslag

Eye-candy voor techies: onze HPE 3PAR AFA.

Grammofoonplaat of harde schijf?

Voor de komst van SSD’s waren we veroordeeld tot SAS- of SATA-schijven. Dit zijn zogenaamde ‘spinning disks’, vernoemd naar de ronddraaiende ‘platter’ waar de data op opgeslagen staat. Je kunt het een beetje vergelijken met een grammofoonplaat: de muziek staat in groeven opgeslagen op de draaiende plaat en wordt door een naald uitgelezen en vertaald naar geluid.

Op een harde schijf staat de informatie magnetisch opgeslagen op een platter. Die informatie wordt door een lees/schrijfkop uitgelezen en vertaald naar alles wat je op een computer tegenkomt. Hoe sneller de platter ronddraait, hoe sneller de data kan worden gelezen. Maar je kunt je voorstellen dat het maximale toerental van zo’n platter ook gewoon aan natuurkundewetten is gebonden. Het houdt een keertje op…

SSD schijf!

En daarmee komen we op het grote voordeel van SSD’s: geen draaiende onderdelen meer. Een SSD bestaat volledig uit elektronica. Hierdoor is de schrijf- en leessnelheid van deze schijven echt véél hoger, wat betekent dat je website of applicatie een heel stuk sneller is als je gebruikmaakt van een All Flash Array.

Je ziet vaak de term ‘IOPS’ langskomen als je je verdiept in de snelheid van verschillende soorten harde schijven. Dit staat voor ‘Input/Output Operations Per Second’, of het aantal in- of uitgaande opdrachten dat een harde schijf per seconde kan verwerken. Hoe hoger de IOPS, hoe sneller de harde schijf je data kan verwerken.

Overzicht IOPS per schijfsoort.

SSD haalt veruit de meeste IOPS.

Zoals je ziet, verwerkt een SSD gemiddeld veel meer opdrachten per seconde dan zijn traditionelere broertjes. Daarnaast is een enkele IOP op een SSD ook nog véél sneller, dus het verschil is echt enorm. Waar je vroeger nog op je gemakje koffie kon halen terwijl je computer opstartte, is dat er nu niet meer bij. Een laptop met SSD is letterlijk binnen 10 seconden up and running!

SSD’s zijn het heden en de toekomst, zoveel is wel duidelijk. Omdat wij elke dag een enorme berg data verwerken, hebben we meerdere SSD’s ondergebracht in een SAN, of Storage Area Network. Je kunt een SAN zien als een verzameling harde schijven die met elkaar verbonden is via een hogesnelheidsnetwerk.

3PAR bleek voor ons uiteindelijk de beste partner bij het bouwen van ons SAN, en dat heeft een aantal verschillende redenen.

Snelle, betrouwbare en betaalbare opslag

Omdat websites en applicaties steeds complexer worden, is het belangrijk te blijven investeren in nieuwe hardware. De processors en het RAM-geheugen dat we gebruiken, kan de groeiende vraag nog steeds eenvoudig aan. Onze oude SATA- en SAS-schijven bleken de bottleneck.

In onze zoektocht naar een betere dienstverlening zijn we voor onze opslag via Nexenta en Lefthand uiteindelijk bij 3PAR beland. De 3PAR AFA stond al langer op ons verlanglijstje, maar was nog wat aan de prijzige kant. Toen HP Enterprise de 3PAR AFA’s begin 2015 een opfrisbeurt gaf en de prijs verlaagde, zijn we overgestapt.

En daar hebben we geen moment spijt van gehad! In de afgelopen 2 jaar heeft onze opslag het uitstekend gedaan en hebben we veel profijt gehad van een aantal unieke functies.

3PAR ASIC

3PAR heeft als enige storage-fabrikant een eigen ASIC ontwikkeld. Een ASIC is een aparte processor die gebouwd wordt om hele specifieke taken superefficiënt uit te voeren. De 3PAR ASIC is verantwoordelijk voor RAID-parity en zaken als deduplicatie, terwijl de Intel Xeon-processoren de managementtaken op zich nemen.

Het grote voordeel zie je vooral als de Intel Xeon CPU zwaar belast wordt. Normaal gesproken gaat dat ook ten koste van je opslagsnelheid. Maar omdat de ASIC van 3PAR specifiek geschreven is voor dataverwerking, heeft een zware belasting van de Intel CPU geen invloed op de opslagsnelheid.

Dit heeft 2 voordelen:

  • Omdat de AFA een eigen ASIC heeft voor het rekenwerk, gaat het verwerken van data veel sneller en efficienter. Dit zorgt weer voor meer IOPS van de hele array.
  • Zelfs als de Intel Xeon CPU voor de volle 100% belast wordt, blijft de AFA gewoon werken zoals het hoort.

1 miljoen IOPS met Mesh-Active controller design

De meeste SAN-systemen werken met ‘Active-Active-controllers’, waarbij elk volume actief is op een enkele controller. Als er een storing in de controller optreed, neemt de andere dat naadloos over. Het ‘Mesh-Active-design’ van 3PAR gaat een stap verder, en zorgt ervoor dat alle volumes actief kunnen zijn op alle controllers. Het kan gebeuren dat bepaalde volumes extra veel data te verwerken krijgen, waardoor de controller een bottleneck wordt.

Dit gaat ten koste van de prestaties van de VPS of VPC die op dit volume draait, en dat willen we natuurlijk voorkomen. Een mesh-active systeem verdeelt de belasting en voorkomt bottlenecks.Elke controller heeft een eigen CPU, ASIC, HBA’s en schijf waar het besturingssysteem op staat, en draait volledig onafhankelijk van de andere controllers.

HP Mesh-Active controller design: zo halen we 1 miljoen IOPS

Met het Mesh-Active controller design halen we meer dan 1 miljoen IOPS.

Als er een probleem optreed in het besturingssysteem of de fysieke hardware van een controller, heeft dat geen invloed op de beschikbaarheid van de data. Natuurlijk wel op de snelheid, maar met een SAN dat meer dan 1.000.000 IOPS (!) kan verwerken, is dat nauwelijks merkbaar. Je VPS of VPC blijft dus altijd ontzettend snel, ook als er een controller wegvalt of een bepaalde set schijven het extra druk heeft met het gebruik door andere klanten.

Storagevirtualisatie

Bijna iedereen is wel bekend met de traditionele vorm van RAID. We weten dat we bij RAID5 (2+1) altijd 3 schijven nodig hebben. 2 schijven bevatten de data, de 3e de parity waarmee een schijf opnieuw ingericht kan worden als er eentje stuk gaat. Deze 3 schijven worden toegewezen aan een specifieke RAID-configuratie, en kunnen we dus niet gebruiken voor andere RAID-configuraties in dezelfde array. Dit kan ten koste gaan van rekenkracht en capaciteit.

3PAR heeft een andere, unieke, benadering: storagevirtualisatie. Elke schijf in de 3PAR AFA wordt opgedeeld in chunklets van 1GB. Een 480GB schijf heeft dus 480 chunklets. Al deze chunklets worden vervolgens gevirtualiseerd tot aparte schijven, die elk een eigen RAID-configuratie kunnen hebben. Stel, we hebben 48 schijven met 480 chunklets per schijf, en we maken een virtuele schijf aan van 960GB, dan bevat elke schijf 20 chunklets met data. 960 chunklets in totaal, verspreid over 48 schijven.

Van die 960 chunklets wordt een deel gereserveerd om kapotte schijven op te vangen. Als er een schijf kapot gaat, wordt de data die erop stond met behulp van de parity-data weggeschreven naar de zogenaamde ‘spare-chunklets’. Hadden we eerst 48 schijven die samen de data serveren, zijn dat er nu nog 47. Door het verdelen van alle data met behulp van storagevirtualisatie merk je er als gebruiker niks van als er een schijf kapot gaat.

System-wide striping

Als we een virtuele schijf maken, wordt deze automatisch verspreid over zo veel mogelijk fysieke schijven. Dit noemen we ‘system-wide striping’. Zo kan een virtuele schijf gebruikmaken van alle SSD’s in de array. Zo heeft 3PAR het voor elkaar gekregen om zulke extreem hoge IOPS te halen, wat uiteindelijk ook ten goede komt aan de snelheid van je VPS of VPC.

Dat niet alleen, omdat de parity-data ook verspreid is over de hele array, gaat het opnieuw opbouwen van data echt verschrikkelijk snel. Omdat de data niet vast is toegewezen aan een aantal schijven, kan 3PAR de belasting steeds herverdelen en hotspots voorkomen. Zo blijft de hele array in topconditie, en de performance optimaal.

Zo werkt 'system-wide striping'.

Geen hotspots meer met ‘system-wide striping’.

Persistent Cache

In de meeste RAID-controllers zit RAM-geheugen om data die naar schijven geflushed wordt, tijdelijk op te slaan. Dit is goed voor de performance, omdat RAM-geheugen altijd sneller is dan welke harde schijf dan ook.

Zodra er een I/O-opdracht naar de schijven is verstuurd, wordt het in een RAID-controller opgevangen in de cache. De RAID-controller stuur direct een zogenaamde ‘ACK’ terug naar het besturingssysteem, zodat die weet dat de opdracht is aangekomen en door kan met de volgende. Dit noemen we ook wel een RAID-controller in ‘write-back-mode’.

Omdat RAM-geheugen geen data kan vasthouden als het geen stroom heeft, is een Battery Back-up Unit (BBU) onmisbaar. Zo behoudt een RAID-controller bij stroomuitval nog tot 72 uur stroom en blijft de data in de cache aanwezig. Als de stroomuitval opgelost is, kan de data alsnog veilig op de schijven worden weggeschreven.

3PAR werkt niet met RAID-controllers, maar gebruikt het aanwezige RAM-geheugen van de controllers als cache. Elke controller heeft zijn eigen noodstroomvoorziening, zodat data in het geval van stroomuitval alsnog veilig weggeschreven kan worden op de schijven. Persistent Cache spiegelt alle cache-data naar andere controllers voor er een ‘ACK’ wordt teruggestuurd. De cache is dus verdeeld over meerdere controllers, wat betekent dat een kapotte controller niet gelijk voor performanceverlies zorgt. Door de noodstroomvoorziening in de controllers is je data dus beschermd tegen stroomuitval. En met Persistent Cache heb je nog een extra zekerheid dat er niets met je gegevens misgaat als er een controller kapot gaat.

Dubbele monitoring en support

We hebben zelf 24/7 engineers klaarstaan die door onze monitoring direct op de hoogte zijn als er storingen in onze infrastructuur zijn. Daarnaast houdt HPE onze systemen ook in de gaten en zijn er 24/7 3PAR-specialisten beschikbaar die ons helpen als we er zelf niet uitkomen. Want hoeveel ervaring en opleiding we ook hebben, we kunnen niet dezelfde kennis vergaren als mensen die gespecialiseerd zijn in 3PAR-systemen. En dat vinden we wel zo’n fijn gevoel, voor jou en voor ons :)!

Tot slot

Het duizelt je misschien wat, door alle termen die we je hebben uitgelegd. We vinden het belangrijk dat je weet waar je je geld aan uitgeeft, en we zijn er heilig van overtuigd dat ons HPE 3PAR-systeem het beste is dat de markt te bieden heeft. En, mede door de actieve samenwerking met HPE, kunnen we niet alleen een heel snel, maar ook zeer betrouwbaar platform bieden voor je VPS of VPC.