HP Enterprise 3PAR All Flash Array

, door in

We vinden het als hostingbedrijf ontzettend belangrijk om de hoogst mogelijke kwaliteit te kunnen bieden aan onze klanten. Een belangrijk onderdeel is hardware. Er is zeer veel variatie mogelijk op het gebied van hardware, wat zorgt voor grote verschillen tussen cloud- en hostingaanbieders. Ik ga het in dit blogartikel hebben over de hardware die wij gebruiken voor onze opslag: HP Enterprise 3PAR All Flash Array.

HP Enterprise 3PAR All Flash Array is een mond vol, maar het dekt wel de lading! Een SAN dat uitsluitend bestaat uit SSD’s wordt ook vaak een “All Flash Array” of kortweg AFA genoemd. Het idee is om simpel aan te duiden dat er geen spinning disks zoals SAS of SATA disks zich in de array bevinden.

HP 3par SSD storageSnelheid en betrouwbaarheid zijn onze pijlers. Tenslotte vertrouw je al je belangrijke en kritieke data aan ons toe en dan mag je van ons verwachten dat we er mee omgaan alsof het van onszelf is, dus met uiterste zorg en veiligheid.

Onze nieuwste clusters worden uitgevoerd met 3PAR AFA’s. We hebben in het verleden de nodige ervaring opgedaan met SAN-systemen zoals Open-E, Nexenta en HP Lefthand maar zijn eigenlijk nooit écht tevreden geweest.

Waarom hebben we dan nu gekozen voor 3PAR?

More powerrr door SSD!

Voor de komst van SSD harde schijven moesten we het altijd doen met SAS of SATA schijven. De twee laatstgenoemde zijn zogeheten “spinning disks” en worden zo genoemd, omdat de platter (schijf) waar de data daadwerkelijk opgeslagen staat ronddraait. Het is een beetje vergelijkbaar met een grammofoonplaat: een schijf waar door middel van “informatie in de groeven” (ik noem het maar even zo) door een naald informatie van af kan worden gelezen. Een grammofoonplaat heeft fysieke afwijkingen op de plaat die door de leeskop worden gelezen en geluid veroorzaakt. In een harde schijf gebeurt dat magnetisch. Op het oog zou je zeggen een vrij traditionele manier van data opslaan, maar het was nu eenmaal betrouwbaar.

Belangrijk bij SATA of SAS schijven is hoe snel een platter ronddraait. Hoe sneller dit gebeurd, des te sneller kan er data worden gelezen. Een SSD schijf kent geen draaiende onderdelen meer en bestaat enkel uit elektronica, daardoor zijn er geen fysieke beperkingen meer om data sneller te kunnen laden. De link is dan snel gelegd: hoe sneller mijn data kan worden gelezen, des te sneller is bijvoorbeeld mijn website of applicatie. En dat is waar het uiteindelijk allemaal om draait! Waarom snelheid belangrijk is lees je in ons blogartikel: De impact van sitesnelheid.

Veel mensen kennen de term ‘IOPS‘ wat staat voor Input/Output Operations Per Second. Het zegt hoeveel opdrachten per seconde verwerkt kunnen worden door een type disk en wordt vaak gebruikt om de verschillende type disks met elkaar te vergelijken qua snelheid. Niet alleen kunnen er met een SSD dus meer IOPS tegelijkertijd verwerkt worden, 1 enkele IOP is ook véél sneller en dat verschil is echt goed te merken.

Als ik alles even plat sla en niet te technisch wordt, kun je grofweg het volgende onderscheid maken:

Type disk Random IOPS
7.200 rpm SATA +/- 75-100 IOPS
10.000 rpm SAS +/- 140 IOPS
15.000 rpm SAS +/- 175-210 IOPS
SSD +/- 15.000-150.000 IOPS

 

3PAR All Flash Array

Nu je weet waarom het zo belangrijk is om SSD schijven te gebruiken, begrijp je wellicht ook de keuze voor een AFA. Websites en applicaties zijn de laatste jaren veel complexer geworden met soms enorm grote databases, waardoor de trage SAS en SATA schijven echt een probleem in de infrastructuur begonnen te vormen. Processors en RAM geheugen waren inmiddels zo ver doorontwikkeld dat ze de grote hoeveelheden data prima konden verwerken, maar het verplaatsen van die data naar de disk ging nog altijd te traag.

Sinds de komst van SSD’s heeft SoHosted er al mee geëxperimenteerd en waren we de eerste VPS provider in Nederland die deze snelle vorm van storage aanbood. Door de jaren heen hebben we veel ervaring opgedaan met platformen als Nexenta en Lefthand, maar uiteindelijk zijn we beland bij HP 3PAR.

Altijd zijn we op zoek geweest naar een afweging tussen snelheid, betrouwbaarheid en prijs. We kunnen nog zo de snelste SSD VPS’en leveren, maar als het te duur wordt is het voor jullie gewoon niet interessant. Sinds HP Enterprise de 3PAR AFA’s in het begin van 2015 een stevige opfrisbeurt heeft gegeven en betaalbaar is geworden, zijn we overgestapt.

Nexenta kon niet de betrouwbaarheid garanderen die wij zo belangrijk vinden. Met name wanneer we serieuze load veroorzaakten hoorde je het piepen en kraken en gebeurde het wel eens dat bepaalde datastores onbereikbaar raakten. De support kon ons niet snel genoeg verder helpen en we hebben meerdere storingen ervaren. De software was duidelijk nog in startupfase en niet goed uit ontwikkeld, waardoor we er afscheid van hebben genomen.

HP Lefthand was de vervanger en een stuk stabieler. Tot op de dag van vandaag hebben we nog geen storingen ervaren (even afkloppen!). Lefthand bood niet de ultieme snelheid die we zochten waardoor we toch nog verder moesten zoeken.

3PAR bood ons uiteindelijk de beste combinatie tussen functionaliteit, betrouwbaarheid en prijs. En hier is waarom:

3PAR ASIC

Uniek in het landschap van storage-fabrikanten is dat 3PAR een eigen ASIC heeft ontwikkeld en die gebruikt naast de normale processoren in de controllers. Een ASIC is een aparte processor die gebouwd wordt om hele specifieke taken super efficiënt uit te voeren. Zo is de 3PAR ASIC verantwoordelijk voor RAID parity calculaties en zaken als deduplicatie, terwijl de Intel Xeon processoren de managementtaken op zich nemen.

De Intel Xeon CPU vormt bij grotere omgevingen de bottleneck zodra het SAN onder zware load wordt gezet. Doordat de ASIC specifiek voor dataverwerking is geschreven, is het niet afhankelijk van de belasting van de algemene processor op het gebied van performance. Daarmee heeft een 3PAR ten opzichte van andere SAN systemen 2 belangrijke voordelen:

  • Data verwerken kan véél sneller en efficiënter wat resulteert in meer IOPS
  • Een processorload van 100% door bijvoorbeeld managementtaken heeft geen impact op de performance van de hele array.

Mesh-Active controller design

De meeste SAN systemen werken met Active-Active controllers waarbij elk volume actief is op een enkele controller. Als er storing in de controller optreed, neemt de andere het naadloos over. Het Mesh-Active design van 3PAR gaat een stap verder en zorgt er voor dat alle volumes actief kunnen zijn op alle controllers.

Mesh-Active controller design

Het kan voorkomen dat bepaalde volumes extra veel data te verwerken krijgen waardoor de controller een bottleneck gaat vormen. Dit gaat ten koste van de performance van de VPS’en op dit volume en dat willen we natuurlijk voorkomen. Een mesh-active systeem verdeeld de load en voorkomt performance bottlenecks.

Elke controller heeft een eigen CPU, ASIC, HBA’s en disk waar het OS op staat en draait volledig onafhankelijk van elkaar. Wanneer er een probleem optreed in het OS of met fysieke hardware van een controller, heeft dat geen impact op de beschikbaarheid van de data. Wel op de snelheid, maar dit is nauwelijks merkbaar bij een SAN dat meer dan 1 miljoen (!) IOPS kan verwerken. Je VPS blijft dus altijd ontzettend snel, ook wanneer er een controller wegvalt of een bepaalde set disks extra veel load krijgt te verwerken als gevolg van het gebruik van andere klanten.

Storage virtualisatie en system-wide striping

Weer twee mooie termen :) Maar eerst storagevirtualisatie!

Iedereen is bekend met de traditionele vorm van RAID (Redundant array of independent disks). Stel je voor RAID5 (2+1), dan weten we dat we altijd 3 disks nodig hebben. 2 disks bevatten data en de 3e disk bevat de parity waarmee een disk gerebuild kan worden als er eentje stuk gaat. De disks in de RAID set worden dedicated toegewezen voor de specifieke RAID configuratie en kunnen we niet gebruiken voor andere RAID configs in dezelfde array wat performance en capaciteit kan kosten.

3PAR heeft echter een andere en unieke benadering: elke disk in de 3PAR wordt opgehakt in zogeheten chunklets van 1 GB. Een 480 GB disk heeft dus 480 chunklets. Van deze chunklets maken we vervolgens logical disk(s) die elk een eigen RAID configuratie kan hebben. Stel we hebben 48 disks, dus 480 chunklets per disk, en we maken een LD aan van 960 GB, dan bevat elke disk 20 chunklets met data.

Van die 960 chunklets wordt een deel gereserveerd als spare-chunklets. Dit maakt het verhaal iets ingewikkelder, maar ik zal er niet te diep op in gaan. Een spare-chunklet is schijfruimte die gereserveerd wordt voor disk-failures. Als een disk kapot gaat, wordt de data die er op aanwezig was weggeschreven naar de spare-chunklets met behulp van de parity-data. Hadden we eerst 48 disks die samen data serveren, zijn het er nu nog 47 (of 96 disks, nu nog 95, of 192 disks… enzovoort). De performance-impact die dat heeft op de totale array is vrijwel niet merkbaar, dus jullie ondervinden geen hinder van een kapotte disk!

system-wide striping

Een logical disk wordt bij het aanmaken verspreid over zoveel mogelijk disks en dit noemen we ‘system-wide striping‘. Dit systeem zorgt er voor dat een LD altijd gebruik kan maken van alle aanwezige SSD’s in de array. Dat is de manier waarop 3PAR het voor elkaar kan krijgen om zulke extreem hoge IO performance te kunnen halen, wat uiteindelijk ten goede komt aan de snelheid van je VPS. Dat niet alleen, omdat de parity-data verspreid is over de hele array gaat het rebuilden van data echt verschrikkelijk snel.

Omdat de data niet dedicated op een aantal disks vast staat, kan 3PAR constant de load rebalancen om hotspots te voorkomen. Op deze manier kan er altijd een optimale performance worden gegeven.

Persistent Cache

Voorlopig even de laatste :) In de RAID controllers die we kennen zit RAM geheugen om data tijdelijk op te slaan dat wordt geflushed naar de disks. Dit verhoogt de performance aanzienlijk van een RAID controller omdat RAM geheugen altijd veel sneller is dan SATA, SAS, SSD of wat dan ook. Zodra een I/O schrijfopdracht naar de disks is verstuurd wordt het in een RAID controller opgevangen in de cache. De RAID controller stuurt direct een zogeheten ‘acknowledgement‘ (of ACK) terug naar het OS zodat die weet dat het is aangekomen en door kan met de volgende opdracht. Dit noemen we ook een RAID controller in ‘write-back‘ mode.

Omdat data tijdelijk wordt opgeslagen in de cache is het echt noodzakelijk een back-up batterij of BBU (Battery Back-up Unit) op de RAID controller te hebben. RAM heeft als eigenschap dat het geen data vasthoudt als het geen stroom heeft, dus als er onverwachts stroomuitval optreed is de cache van de RAID controller direct leeg. Als hier nog data stond, is dat voor goed weg en kan zelfs datacorruptie veroorzaken. Met een BBU behoudt de RAID controller nog tot 72 uur stroom en blijft de data in de cache aanwezig. Als binnen die tijd de array weer online komt, kan de data tenminste alsnog veilig naar de disks weggeschreven worden.

Zonder een BBU kan een RAID controller dus niet zijn cache vasthouden in geval van stroomuitval, waardoor de controller in ‘write-through‘ mode werkt. Elke write wordt eerst via de cache naar een disk geschreven voordat er een ACK wordt teruggestuurd. Dit kost veel performance, omdat disks altijd veel langzamer zijn dan RAM.

3PAR werkt niet met RAID controllers, maar gebruikt het aanwezige RAM geheugen van de controllers als cache. Elke controller heeft een eigen UPS om data naar de disks veilig te kunnen flushen in het geval van stroomuitval. Persistent Cache mirrort alle cache-data naar andere controllers voordat er een ACK wordt teruggestuurd naar het OS. Meerdere controllers bevatten dus de cache wat betekent dat bij een controller failure dat niet automatisch zorgt voor performanceverlies. Zo zijn we beschermd met UPS’en tegen stroomuitval en met Persistent Cache tegen het wegvallen van een controller.

Support

Wij hebben zelf engineers 24/7 stand-by staan die door onze monitoring direct op de hoogte worden gebracht als onverhoopt zich storingen in onze infrastructuur voordoen. Zo kunnen we snel reageren om problemen te verhelpen, maar je kunt nooit uitsluiten dat er zich een probleem voordoet waar we geen pasklaar antwoord op hebben. HP monitort onze systemen ook en heeft 24/7 3PAR engineers beschikbaar die meekijken en direct klaar staan om te helpen waar nodig. Hoeveel ervaring en opleiding wij ook gehad hebben, we kunnen nooit dezelfde kennis vergaren als mensen die met niets anders bezig zijn dan alleen 3PAR systemen. Wel zo’n prettig gevoel!

Tot slot

Nu weet je waarom wij gekozen hebben voor HPE 3PAR. We zijn er heilig van overtuigd dat dit op dit moment het beste is wat de markt te bieden heeft en mede door de actieve samenwerking met HPE kunnen we niet alleen een snel, maar ook een zeer betrouwbaar platform leveren voor je VPS.