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.

Geen opmerkingen:

Een reactie posten