MariaDB Cluster is een Multi Master-replicatiesysteem dat is opgebouwd uit MariaDB Server, MySQL wsrep-patch en Galera wsrep-provider.
Galera is gebaseerd op een synchrone (of 'vrijwel synchrone') replicatiemethode, die ervoor zorgt dat de gegevens worden toegepast op andere knooppunten voordat deze worden vastgelegd. Het hebben van dezelfde gegevens op alle knooppunten betekent dat knooppuntstoringen gemakkelijk kunnen worden getolereerd en dat er geen gegevens verloren gaan. Het is ook gemakkelijker om een failover naar een ander knooppunt uit te voeren, aangezien alle knooppunten up-to-date zijn met dezelfde gegevens. Het is redelijk om te zeggen dat MariaDB Cluster een oplossing met hoge beschikbaarheid is die een hoge uptime kan bereiken voor organisaties met strikte database Service Level Agreements.
Naast het beheren van hoge beschikbaarheid, kan het ook worden gebruikt om de databaseservice te schalen en de service uit te breiden naar meerdere regio's.
MariaDB-clusterimplementatie
MariaDB Cluster in ClusterControl is heel eenvoudig en beschikbaar in de gratis te gebruiken Community-editie. U kunt door "Deploy" gaan, MySQL Galera kiezen zoals hieronder getoond:
Vul SSH-gebruikers- en referentiegegevens in, clusternaam die u wilt gebruiken en dan Doorgaan.
Kies MariaDB als leverancier van de database die u wilt installeren. Server Data Directory, Server Port kan de standaardconfiguratie gebruiken, tenzij u een specifieke configuratie definieert. Vul het Admin/Root-databasewachtwoord in en voeg tenslotte Node toe om de doel-IP-adressen van databaseknooppunten toe te voegen.
Galera Nodes hebben minimaal 3 nodes nodig of je kunt 2 databasenodes en galera arbiter gebruiken die op een aparte host zijn geconfigureerd.
Nadat alle velden zijn ingevuld, hoeft u alleen maar het cluster te implementeren. Het zal een nieuwe taak activeren om Cluster te maken, zoals hieronder weergegeven:
Maxscale-implementatie
Maxscale is een database load balancer, database proxy en firewall die tussen je applicatie en de MariaDB nodes zit. Enkele Maxscale-functies zijn:
- Automatische failover voor hoge beschikbaarheid
- Verkeerstaakverdeling (gesplitst lezen en schrijven)
- Verkeerscontroles voor zoekopdrachten en verbindingen.
Er zijn twee manieren om Load Balancer-implementatie te doorlopen, u kunt "Load Balancer toevoegen" in het clustermenu, zoals hieronder weergegeven:
Of u kunt naar Beheren -> Load Balancer gaan. Het gaat naar dezelfde pagina, de Load Balancer-pagina. Kies het "Maxscale-tabblad" voor implementatie van de Maxscale-load balancer:
Kies het serveradres, definieer de maxscale gebruikersnaam en het wachtwoord, u kunt de standaardconfiguratie voor threads en lees-/schrijfpoort. Voeg ook de MariaDB-knooppunt(en) toe die moeten worden toegevoegd aan de load balancer. U kunt "MaxScale implementeren" voor het implementeren van MaxScale-databaseproxy en taakverdeling.
De beste methode om de load balancer maximaal beschikbaar te maken, is door minimaal 2 MaxScale-instanties op verschillende hosts in te stellen.
Behoud implementatie
Keepalived is een daemon-service in linux die wordt gebruikt voor gezondheidscontroles, en ook wordt gebruikt voor failover als een van de servers niet beschikbaar is. Het mechanisme maakt gebruik van VIP (Virtual IP Address) om hoge beschikbaarheid te bereiken, waarbij de ene server fungeert als master en de andere als back-up.
Implementatie van Keepalive is-service kan worden gedaan via Beheren -> Load Balancer.
Kies uw Load Balancer-type, namelijk MaxScale. Momenteel ondersteunt ClusterControl HAProxy, ProxySQL en MaxScale als load balancers die kunnen worden geïntegreerd met Keepalive. Definieer uw virtuele IP (VIP) en netwerkinterface voor virtueel IP-adres.
Klik daarna op Keepalive implementeren. Het zal een nieuwe taak activeren om Keepalived op beide MaxScale-hosts te implementeren.
De uiteindelijke architectuur voor MariaDB Cluster voor hoge beschikbaarheid bestaat uit 3 databaseknooppunten, 2 load balancer-knooppunten en een keepalive-service bovenop elke load balancer, zoals weergegeven in de onderstaande topologie:
Conclusie
We hebben laten zien hoe we snel een High Availability MariaDB Cluster kunnen inzetten met MaxScale en Keepalive via ClusterControl. We hebben de instellingen voor databaseknooppunten en proxyknooppunten doorlopen. Bekijk onze online tutorial om meer te lezen over Galera Cluster. Merk op dat ClusterControl ook andere load balancers ondersteunt, zoals ProxySQL en HAProxy. Probeer deze eens en laat het ons weten als je vragen hebt.