Cluster vs. Replicatie

Datum 14-07-2020

De vraag naar beschikbaarheid van data groeit. Hierdoor zullen onderwerpen als replicatie en/of clustering vaker aan de orde komen. Dit zijn twee verschillende oplossingen om de beschikbaarheid van data te regelen. In dit artikel leggen wij uit wat het verschil is tussen replicatie en cluster en waar je rekening mee moet houden als je één van de twee technieken wilt gebruiken om de beschikbaarheid van jouw data te regelen.

Wat is replicatie?

Bij replicatie wordt de data tussen twee of meer computer nodes gekopieerd. Dit kan variëren van data synchronisatie tussen twee NAS’en of een database master-slave opstelling, waarbij data van een database server (de ‘master’) gekopieerd is naar een of meerdere database servers (de ‘slaves’). De toegang naar de data hoeft met replicatie niet beperkt te zijn tot één locatie, maar de data op de verschillende locaties kan afwijken vanwege de tijdsduur van het replicatie proces.

Afbeelding 1: Bij replicatie is er een actieve en een passieve host aanwezig.

Een direct beschikbare back-up

Het doel van replicatie is simpel: een direct beschikbare back-up. Maar net zoals er tussen live data en een back-up een verschil is vanwege het tijdsinterval tussen de back-ups, zo bestaat deze bij replicatie ook, al is die voor replicatie een stuk korter. Zo heeft een back-up vaak een tijdsinterval van 24 uur. Replicatie daarentegen heeft hooguit enkele seconden tot enkele minuten nodig, afhankelijk van het gebruik en de gebruikte instellingen.

Wanneer gebruik je replicatie?

Lang niet elke replicatie voorziet in de mogelijkheid om bij een incident automatisch om te schakelen naar de replicatie node, maar dit is dan ook niet altijd gewenst. In de volgende situaties is replicatie een prima oplossing:

  • Wanneer het acceptabel is om handmatig een failover uit te voeren, ofwel het overschakelen naar de passieve node bij het falen van de actieve node;
  • Wanneer alle aanvragen afgehandeld kunnen worden door één primaire node;
  • Wanneer data verlies tot hooguit enkele minuten acceptabel is;
  • Wanneer downtime tijdens handmatige failover handelingen acceptabel is.

Replicatie van data is een prima methode om een hoge beschikbaarheid van data te verkrijgen tegen redelijke kosten. De technologie is vaak niet anders dan die gebruikt wordt zonder replicatie. Er wordt vaak alleen functionaliteit toegevoegd. Hierdoor is de stap naar replicatie makkelijker te maken voor beheerders.

Clustering

Een cluster lijkt op het eerste gezicht misschien veel op replicatie, maar schijn bedriegt. Met clustering wordt data ook ingevoerd op een node en gerepliceerd naar andere nodes in het cluster, maar de werking van een cluster is veel geavanceerder dan die van replicatie. Hoewel het beheer en de werking van een cluster er eenvoudig uitziet, lopen er op de achtergrond vele processen die de clustertechniek zo robuust maken.

Simpel gezegd is een cluster een groep van server nodes die allemaal dezelfde data bevatten, of in ieder geval een gedeelte ervan. De ingevoerde data is pas beschikbaar voor gebruikers als de mutatie bij alle nodes in het cluster verwerkt is. Dit garandeert dat de data die wordt opgevraagd bij elke willekeurige node in het cluster altijd hetzelfde is. Dit wordt ook wel data integriteit genoemd. Omdat de data integer is bij alle nodes in het cluster, kan de data dus ook bij elke willekeurige node opgevraagd worden. Hoewel de data op elke node hetzelfde is, zijn gebruikers (of cliënten) zich hier vaak niet bewust van. Gebruikers verbinden gewoon met de clusternaam en het cluster bepaalt van welke node(s) de data gehaald wordt. Een typisch kenmerk van een cluster is dat deze zelf de status van de nodes bewaakt, zelf bepaalt waar de data vandaan gehaald kan worden en ook zelf zorgt voor failover in geval van een incident.

Afbeelding 2: Een cluster fungeert als één geheel omdat alle data op alle nodes gelijk is.

Omdat een cluster vaak over meerdere datacenters gespreid is, zodat calamiteiten opgevangen kunnen worden, is er een clusterquorum aanwezig om een split-brain situatie te voorkomen als de verbinding tussen datacenters onderbroken wordt.
In een cluster moet een split-brain situatie absoluut vermeden worden! Data integriteit kan niet meer bestaan als mutaties van data in verschillende nodes binnen het cluster plaatsvinden. Na herstel van de verbinding zal dan altijd dataverlies optreden. Om een split-brain situatie te voorkomen is er dus een majority quorum bedacht. Dit houdt in dat het cluster uit een oneven aantal nodes bestaat en dat het cluster alleen mag functioneren wanneer de meerderheid (de majority) van het aantal nodes nog aanwezig is in het cluster. Als je een cluster uitrolt over meerdere datacenters, dan zal dat dus ook altijd een oneven aantal datacenters zijn met een minimum van drie. Meer over ónze drie datacenters vind je hier.

Wanneer gebruik je clustering?

Een cluster oplossing is gewenst in de volgende situaties:

  • Wanneer er geen downtime mag plaatsvinden, ook niet bij grote calamiteiten;
  • Wanneer failover en foutoplossingen 24 uur, 7 dagen per week en 365 dagen per jaar (24/7/365) automatisch opgevangen moeten worden;
  • Als data integriteit belangrijk is;
  • Als data verlies niet is toegestaan;
  • Als de hoeveelheid dataverkeer te groot is voor een enkele node.

In tegenstelling tot replicatie oplossingen zijn clusters vaak aparte producten waar dure licenties voor betaald moeten worden en/of waarvan de investering in benodigde hardware fors is. Daarnaast is de stap naar clustering, in tegenstelling tot replicatie, veel groter voor beheerders.

Replicatie en clustering zijn geen back-ups!

Zowel replicatie als clustering zijn geen backups! Data die verwijdert wordt uit een database zal ook verwijdert worden van de slave of de hot-standby server. Bestanden die per ongeluk verwijderd worden, worden dus ook verwijderd van de replicatie node en dat geldt ook voor data in een cluster. Het blijft dus altijd noodzakelijk om een goede back-up oplossing te hebben met beschikking over historische data.

Heb je nog vragen over clustering en/of replicatie of wil je meer weten? Neem dan gerust contact met ons op!

Neem contact op