Master-slave databasereplicatie

Naast het Percona databasecluster met Galera replicatie heeft Secure Webhosting ook een MariaDB Databasecluster, bestaande uit één Master node en één Slave node.

De Master-slave replicatiemethode komt veel voor bij MySQL databases. De methode gaat uit van één Master server (node) die data leest én schrijft, en één of meer Slave servers (nodes) die uitsluitend data lezen. Data van de Master node wordt asynchroon (na voltooiing van een databasetransactie) gerepliceerd naar de Slave nodes, zodat de dataconsistentie hoger is. Vervolgens bevestigen de Slave nodes de verwerking van de gerepliceerde data aan de Master node, voordat de Master node nieuwe data wegschrijft.

Voordelen van Master-slave replicatie t.o.v. Galera replicatie

  1. Breder inzetbaar door minder restricties op de communicatiewijze tussen applicatie en database (zie verderop in dit artikel).
  2. Eenvoudiger en daardoor beter te onderhouden.
  3. Back-ups van een database kunnen worden gemaakt zonder belasting van de Master node.
  4. Er is geen quorum nodig (een minimaal aantal nodes). Master-slave replicatie werkt al met 2 nodes in plaats van minimaal 3 bij Galera replicatie.
  5. Netwerkstoringen hebben vrijwel geen effect op het herstel van een Master-Slave opzet. 

Nadelen van Master-slave replicatie t.o.v. Galera replicatie

  1. Mogelijk dataverlies bij een crash van de Master node, omdat er gebruik wordt gemaakt van een asynchrone replicatiemethode. 
  2. Minder schaalbaar, omdat uitsluitend de leesverzoeken kunnen worden verdeeld over meerdere nodes. Bij Galera replicatie is het mogelijk om lees- en schrijfverzoeken te verdelen.
  3. In het geval van een storing van de Master node moet een Slave node de Master taak overnemen. Dit proces is geautomatiseerd, maar het kost een aantal seconden. In de tussentijd kunnen storingen op de website zichtbaar zijn.
  4. Iedere extra Slave node leidt tot extra belasting van de Master node, omdat de data op de Master node naar iedere Slave node gekopieerd moet worden. 

Waarom maakt Secure Webhosting gebruik van twee typen Databaseclusters?

Percona clustering met Galera replicatie werkt voor sommige applicaties niet naar behoren, vanwege limitaties.

Zogenaamde DDL Statements (CREATE, ALTER en DROP) zorgen namelijk voor een stop in datareplicatie totdat zijn uitgevoerd op de Master node.

Voor veel applicaties is dat geen probleem. Echter is het zo dat (bijvoorbeeld) Magento deze DDL Statements intensief gebruikt. 

Om die reden is er naast het Percona databasecluster ook een MariaDB databasecluster met Master-Slave replicatie beschikbaar.

Percona databasecluster

Het Percona databasecluster wordt bij Secure Webhosting ingezet om de betrouwbaarheid en beschikbaarheid te verhogen. Het zorgt ervoor dat de database(s) van uw applicatie gespiegeld wordt over meerdere databaseservers. 

Wat is een Percona databasecluster?

Percona XtraDB Cluster is een open-source toepassing voor MySQL. Een cluster bestaat uit ‘nodes’ (servers), waar iedere node dezelfde set aan data bevat. Deze data wordt over de nodes gesynchroniseerd.

Wat zijn de voordelen?

  • Belasting wordt over de servers verdeeld door middel van load balancing. Beschikbaarheid en onderhoudbaarheid zijn hierdoor hoger. 
  • Geen dataverlies bij wegvallen van een databaseserver. Wanneer een server niet bereikbaar is, nemen andere servers het over. De data blijft over alle servers gesynchroniseerd. 
  • Dataconsistentie tussen nodes is hoog, omdat er gebruik wordt gemaakt van semi-synchrone replicatie van data. Wanneer een ‘master’ node een transactie verwerkt, wacht deze met het verwerken van een volgende transactie totdat de master een signaal van de volgende node ontvangt waaruit blijkt dat deze node diezelfde transactie ook verwerkt heeft (en dus over dezelfde data beschikt).

Zijn er limitaties?

  • Datareplicatie werkt alleen met de InnoDB storage engine en (bijvoorbeeld) niet met MyISAM.
  • De datadoorvoer van een cluster wordt gelimiteerd door de zwakste node. Wanneer er één node (om wat voor reden dan ook) vertraagt, vertraagt het gehele cluster. 

Meer informatie over de limitaties is in dit artikel te vinden op de site van MariaDB.

Gescheiden platforms voor software, databases en files

1) Software – webservers (bijvoorbeeld PHP bestanden)
2) Databaseservers (cluster op basis van MySQL)

Voordelen van MySQL cluster is dat de applicatie bereikbaar blijft wanneer er een databaseserver omvalt. Per klant een database instantie op een cluster. Databases van klanten hebben daardoor weinig invloed op elkaar.

3) Fileserver – ‘DRBD’ – word alleen voor statische bestanden gebruikt zoals bijv. mediabestanden.

Voordeel gescheiden platformen – Vergroten bereikbaarheid en uptime.