maandag 26 oktober 2015

CEPH: Overbodig is niet nodig; efficiënt data herstel

Belang van snel herstel
Als er een probleem is ontstaan door een storing, dient dit probleem opgelost te worden. Het is belangrijk dat dit zo snel mogelijk gebeurt. Niet alleen omdat tijdens het herstellen uw systeem performance niet meer optimaal is, maar ook omdat hertselprocedures meer druk op het systeem geven, waardoor de kans op additionele storingen verhoogd is.

Kopieëren en paralellisme
Zoals genoemd in de vorige post is hier bij CEPH rekening mee gehouden. Omdat er van elk stukje data minstens één kopie bestaat, kan de data één op één hersteld worden. Er hoeft slechts een kopie van het nog bestaande stukje data gemaakt te worden, waar voorheen een rekenprocedure moest plaatsvinden om uit te rekenen wat het verloren stukje data was. Bovendien kan er in parallel hersteld worden, wat ook enorme snelheidswinst met zich meebrengt.

Alleen herstellen wat nodig is
Maar daar blijft het niet bij. Bij CEPH vinden ze namelijk dat overbodigheid niet nodig is. Als er voorheen problemen waren ontstaan door een storing, werden aangetaste disken volledig hersteld, hoewel storingen vaak alleen maar kleine gedeelten van disken aantasten. Het overgrote deel van zulke herstelprocedures betrof daarmee overbodig werk, wat leidde tot onnodig lange hersteltijden en onnodige druk op het systeem. Het is vergelijkbaar met drie weken met je arm in het gips lopen, als je slechts een ingescheurde nagel hebt, met de downtime en onproductiviteit van dien.

Bij CEPH wordt dat overbodige werk vermeden, doordat alleen de aangetaste gedeelten worden hersteld. Zo kunnen storingen waar eerder dagen hersteltijd voor nodig waren, in enkele seconden worden opgelost! Voordeel is dat de kans op additionele storingen en daarmee problemen van een veel groter kaliber enorm lager wordt. 

Al met al leidt deze efficiëntere manier van herstellen tot hogere up-time, met als gevolg dat de business continuïteit en productiviteit significant verhoogd kunnen worden en het bedrijf aanzienlijk minder lijdt onder storingen.

maandag 19 oktober 2015

CEPH: Grote storage systemen, grote betrouwbaarheids problemen? Probeer CRUSH.

De grote hoeveelheid apparaten in grote storage systemen, maakt hardware gebreken eerder regel dan uitzondering, waardoor data veiligheid van kritisch belang is.

Decluster replication
Willekeurige data distributie strategieën, die het kopieëren van data distribueren i.p.v. clusteren, zijn geschikt voor grote storage systemen. Zij knippen data in stukjes en verdelen deze, en kopieën ervan, over relatief grote groepen machines. Dit heeft twee tegengestelde effecten. 

Verlaagde kwestbaarheid op additionele storingen
Ten eerste kan data herstel na een storing in parallel plaatsvinden. Dit komt omdat de herstel taak niet in zijn geheel door een enkele machine uitgevoerd hoeft te worden, maar wordt verdeeld over meerdere machines die allen tegelijkertijd verantwoordelijk zijn voor het herstel van hun eigen stukje data. Hierdoor wordt herstel tijd verminderd en de kwetsbaarheid op additionele storingen, die vaak plaatsvinden tijdens intense herstelprocedures, verlaagd. 

Verhoogde kwetsbaarheid op additionele storingen
Het tweede effect is dat een grotere groep machines ook juist een toename betekent in de kans dat een tweede storing op het zelfde moment plaatsvindt, waardoor er dataverlies optreedt. Dit omdat er nou eenmaal veel meer componenten zijn.

Minder geschikte oplossing
Door een kopie van elk stukje data op een andere machine op te slaan, is de kans groot dat er nog een reserve versie van een verloren stukje data bestaat in geval van een additionele storing. Dit zorgt ervoor dat de verlaagde en verhoogde kans op dataverlies elkaar opheffen. Indien er meer dan één kopie gemaakt wordt, dus meer dan twee versies van een stukje data zijn, neemt de algehele data veiligheid zelfs toe.
Echter, als er meerdere storingen plaatsvinden, kun je niet verwachten dat deze onafhankelijk van elkaar zijn. In veel gevallen tast een enkele gebeurtenis, zoals een stroomstoring, meerdere machines aan. De grotere groep machines bij declustered replication vergroten daardoor enorm het risico op dataverlies. 

Geschiktere oplossing
CRUSH, het algoritme waar CEPH gebruik van maakt, heeft hier een oplossing voor. Gebruikers worden in staat gesteld om te definiëren welke domeinen 'storing-domeinen' zijn. Met een storing-domein wordt bedoeld dat het aannemelijk is dat één of meerdere machines in een gemeenschappelijk domein ook aangtast wordt/worden als een machine in dat domein een storing heeft. Het algortime zorgt ervoor dat kopieën van data niet in hetzelfde domein worden geplaatst, maar worden verdeeld over domeinen. Dit is specifiek ontworpen om gelijktijdige, correlatieve storingen die dataverlies tot gevolg hebben te voorkomen en verhoogt hierbij de betrouwbaarheid van grote storage systemen.

maandag 12 oktober 2015

CEPH: Schalen zonder performance concessies

Probleem: performance afname bij opschalen
Als organisaties grootschalige storage systemen implementeren, moeten zij enorme hoeveelheden data verdelen over misschien wel duizenden storage apparaten. Zij prefereren dan object-based storage. Dit omdat dit een efficiënte manier van opslaan is. Object-based storage systemen vereenvoudigen de layout van data door grote lijsten met informatie over data (zoals wat de locatie is), te vervangen voor eenvoudigere lijsten. Daardoor gaat het zoeken en dus het lezen en schrijven van data sneller. Hoewel de schaalbaarheid enorm verbetert door deze eenvoudigere lijsten, blijft het bijhouden van de toegewezen plaatsen voor stukken data gecentraliseerd gebeuren. Hierdoor is het lastig om de data op een goede manier te distribueren over een grote hoeveelheid storage apparaten. Een probleem dat hierbij ontstaat is dat de data en workload niet genoeg worden verdeeld over alle beschikbare middelen als een systeem wordt opgeschaald, waardoor de middelen niet efficiënt worden benut en er niet voldoende performance wordt behaald.

De oplossing: CEPH
Gelukkig maakt CEPH gebruik van het CRUSH algoritme. Dit algoritme zorgt ervoor dat storage clusters worden bevrijd van schaalbaarheids- en performance beperkingen die worden veroorzaakt door een centrale lijst met informatie over de data. In plaats van zo'n lijst is er een schaalbare, wiskundige functie om data te distribueren. Deze zorgt ervoor dat data en workload gelijkmatig worden verdeeld over het cluster, zelfs als er storage wordt toegevoegd, zodat dit niet allemaal opgevangen hoeft te worden door een beperkte hoeveelheid apparaten. Zo worden alle beschikbare middelen efficiënt gebruikt en daarmee wordt systeem performance gemaximaliseerd.

Bovendien worden grote bestanden in een grootschalig storage systeem bij CEPH opgeknipt en willekeurig gedistribueerd over een grote selectie van beschikbare apparaten, waardoor het schrijven en lezen van deze bestanden in parallel en dus enorm versneld kan plaatsvinden.

Nu bestaat er dus de mogelijkheid om ongelimiteerd te schalen met performance behoud of juist performance toename, en is groeien geen probleem meer!

Volgende week meer over de betrouwbaarheid die CEPH kan realiseren.

maandag 5 oktober 2015

CEPH: Object, block en file system storage; best of three worlds

Het een of het ander
Verschillende applicaties stellen verschillende eisen aan storage systemen. Daarom bestaan er ook verschillende technieken om data op te slaan. Ondanks dat die diversiteit in technieken bestaat, diende men voorheen toch een keuze te maken welke van deze technieken te gebruiken. Het was het een of het ander, waardoor er geprofiteerd kon worden van de voordelen van een storage techniek, maar de beperkingen ook geaccepteerd moesten worden.
De volgende drie storage technieken hebben hun eigen voordelen en beperkingen.

File system storage
File system storage is een storage techniek die met name geschikt is als men bestanden gemakkelijk wil kunnen delen. De metadata van bestanden (zoals de datum, het tijdstip en de eigenaar) wordt hierbij, om performance redenen, in een file systeem opgeslagen. Echter, het file systeem wordt erg complex als het te grote aantallen files betreft. Verder blijft de performance alleen hoog als het delen van bestanden lokaal gebeurt, omdat anders latency een rol gaat spelen.

Block storage
Block storage is een storage techniek waarbij een zeer hoge performance behaald kan worden doordat niet het storage systeem maar de applicaties regelen waar de data geplaatst wordt en hoe de storage georganiseerd wordt. Net als file system storage is deze optie minder geschikt als het zeer grote, niet lokale omgevingen betreft.

Object storage
Daarentegen is object storage geschikt als er behoefte is aan het opschalen van de infrastructuur. Door simpelweg nodes toe te voegen is storage bijna onbeperkt schaalbaar, terwijl het management van de storage eenvoudig blijft. Deze techniek zorgt ervoor dat data zo wordt opgeslagen dat het migreren van data naar een andere locatie mogelijk is.
Object storage zorgt er ook voor dat je metadata aan de data kan toevoegen zoals je wilt, waardoor er enorme kansen ontstaan op het gebied van data analyse (zoals het zoeken naar verbanden tussen stukken data). Helaas is performance over het algemeen niet direct de sterkste eigenschap van object storage.

Als je kiest voor een storage techniek, kies je niet alleen voor de voordelen, maar ook voor de beperkingen. Niet ideaal dus als je behoefte hebt aan een diversiteit in storage eigenschappen en de beperkingen problemen opleveren.

Best of three worlds
Maar goed nieuws! Kiezen is niet meer nodig. Het is niet meer OF hoge performance, OF schaalbaarheid. CEPH storage neemt berpekingen weg. Door file storage, block storage en object storage in een enkel storage cluster te verenigen, heeft u beschikking tot the best of three worlds. Verschillende storage interface behoeften worden nu tegemoet gekomen. Met CEPH kan opschalen heel gemakkelijk door extra hardware toe te voegen en blijft ook de grote omgeving eenvoudig te beheren via een enkel user interface. Daarbij kan een zeer hoge performance gerealiseerd worden. Niet alleen omdat de juiste storage techniek voor de juiste bedrijfsprocessen gebruikt kan worden, maar ook omdat CEPH storage op een bepaalde manier gebruik maakt van parallelisme (waarover later meer).

Vooral als uw organisatie applicaties draait met verschillende storage interface behoeften, of als u grootschalige storage systemen wilt implementeren, is CEPH absoluut het overwegen waard.

Volgende week vertel ik verder over de voordelen van CEPH storage.