In ClusterControl 1.5 hebben we ondersteuning toegevoegd voor de MySQL NDB Cluster 7.5. In deze blogpost zullen we kijken naar enkele van de functies die ClusterControl tot een geweldige tool maken om MySQL NDB Cluster te beheren. Omdat er talloze producten zijn met "Cluster" in hun naam, willen we eerst en vooral iets zeggen over MySQL NDB Cluster zelf en hoe het zich onderscheidt van andere oplossingen.
MySQL NDB-cluster
MySQL NDB Cluster is een synchrone cluster met niets gedeeld voor MySQL, gebaseerd op de NDB-engine. Het is een product met zijn eigen lijst van functies, en heel anders dan Galera Cluster of MySQL InnoDB Cluster. Een belangrijk verschil is het gebruik van de NDB-engine, niet InnoDB, de standaardengine voor MySQL. In NDB-cluster worden gegevens verdeeld over meerdere gegevensknooppunten, terwijl Galera-cluster of MySQL InnoDB-cluster de volledige gegevensset op elk van de knooppunten bevatten. Dit heeft ernstige gevolgen voor de manier waarop MySQL NDB Cluster omgaat met queries die gebruikmaken van JOIN's en grote delen van de dataset.
Als het op architectuur aankomt, bestaat MySQL NDB Cluster uit drie verschillende knooppunttypen. Gegevensknooppunten slaan de gegevens op met behulp van de NDB-engine. Gegevens worden gespiegeld voor redundantie, met maximaal 4 replica's van gegevens. Houd er rekening mee dat ClusterControl 2 replica's per knooppuntgroep zal implementeren, omdat dit de meest geteste en stabiele configuratie is. Beheerknooppunten zijn bedoeld om het cluster te besturen. Om redenen van hoge beschikbaarheid hebt u doorgaans twee van dergelijke knooppunten. SQL-knooppunten worden gebruikt als toegangspunten tot het cluster. Ze ontleden SQL, vragen om gegevens van de gegevensknooppunten en aggregeren resultatensets wanneer dat nodig is.
ClusterControl-functies voor MySQL NDB-cluster
Implementatie
ClusterControl 1.5 ondersteunt de implementatie van MySQL NDB Cluster 7.5. Het wordt gedaan via dezelfde implementatiewizard als bij de overige clustertypen.
In de eerste stap moet u configureren hoe ClusterControl via SSH kan inloggen op de hosts - dit is een standaardvereiste voor ClusterControl - het is agentless, dus het vereist root SSH-toegang, hetzij rechtstreeks, tot het root-account of via (wachtwoord of wachtwoordloos) sudo.
In de volgende stap definieert u beheerknooppunten voor uw cluster.
Hier moet u beslissen hoeveel gegevensknooppunten u wilt hebben. Zoals we eerder vermeldden, zullen elke 2 knooppunten deel uitmaken van een knooppuntgroep, dus dit moet een even getal zijn.
Ten slotte moet u beslissen hoeveel SQL-knooppunten u in uw cluster wilt implementeren. Zodra u op implementeren klikt, maakt ClusterControl verbinding met de hosts, installeert de software en configureert alle services. Na een tijdje zou je cluster moeten zijn geïmplementeerd.
Scaling van MySQL NDB-cluster
Voor MySQL NDB-cluster ondersteunt ClusterControl 1.5.0 het schalen van SQL-knooppunten. U kunt de taak openen via de vervolgkeuzelijst Clustertaken.
Daar kun je de hostnaam invullen van de node die je wilt toevoegen en dat is alles wat je nodig hebt - ClusterControl doet de rest.
Beheer van MySQL NDB-cluster
ClusterControl helpt u bij het beheren van MySQL NDB Cluster. In dit gedeelte willen we enkele van de beheerfuncties die we hebben doornemen.
Back-ups
Back-ups zijn cruciaal voor elke productieomgeving. In geval van een ramp kan alleen een goede back-up het gegevensverlies minimaliseren en u helpen om het probleem snel te herstellen. Replicatie is misschien niet altijd een oplossing die werkt - DROP TABLE laat de tabel op alle hosts in de topologie vallen. Zelfs een vertraagde slaaf kan het onvermijdelijke slechts met zo veel vertragen.
ClusterControl ondersteunt ndb-back-up voor MySQL NDB-cluster.
U kunt eenvoudig een back-upschema maken dat door ClusterControl kan worden uitgevoerd.
Proxylaag
Met ClusterControl kunt u een volledige high-availability-stack implementeren bovenop de MySQL NDB-cluster. Voor de proxylaag ondersteunen we de implementatie van HAProxy en MaxScale.
Zoals te zien is op de bovenstaande schermafbeelding, lijkt de implementatie erg op de andere clustertypen. U moet beslissen of u een bestaande HAProxy wilt gebruiken of een nieuwe wilt implementeren. Vervolgens moet je een keuze maken hoe je het wilt installeren - met behulp van pakketten uit repositories die beschikbaar zijn op het knooppunt of het compileren vanuit de broncode van de nieuwste release.
Als u besluit om HAProxy te gebruiken, heeft u de mogelijkheid om hoge beschikbaarheid te configureren met behulp van Keepalive en Virtual IP.
Het proces is als volgt - u definieert een virtueel IP-adres en de interface waarop het moet worden geopend. Vervolgens kunt u het implementeren voor elke HAProxy die u hebt geïnstalleerd. Een van de Keepalive-processen wordt bepaald als een "master" en het zal VIP op zijn knooppunt inschakelen. Uw applicatie maakt vervolgens verbinding met dit specifieke IP-adres. Wanneer een huidige actieve HAProxy niet beschikbaar is, wordt de VIP verplaatst naar een andere beschikbare HAProxy, waardoor de connectiviteit wordt hersteld.
Herstelbeheer
Hoewel MySQL NDB Cluster storingen van afzonderlijke knooppunten kan tolereren, is het belangrijk om hier snel op te reageren. ClusterControl biedt geautomatiseerd herstel voor alle onderdelen van het cluster. Wat er ook mislukt (beheerknooppunt, gegevensknooppunt of SQL-knooppunt), ClusterControl zal ze automatisch opnieuw opstarten.
Bewaking van het MySQL NDB-cluster
Elke productieklare omgeving moet gemonitord worden. ClusterControl biedt u een reeks meetwaarden om te controleren. Op de pagina “Overzicht” tonen we grafieken op basis van de belangrijkste metrics voor uw cluster. U kunt ook uw eigen dashboards maken, met aanvullende gegevens die nuttig kunnen zijn in uw omgeving.
Naast de grafieken geeft de pagina "Overzicht" u inzicht in de status van het cluster op basis van enkele MySQL NDB-clusterstatistieken zoals gebruikt indexgeheugen, gegevensgeheugen en de status van sommige buffers.
Het biedt ook monitoring van de hoststatistieken, inclusief CPU-gebruik, RAM, schijf of netwerkstatistieken. Die grafieken zijn ook cruciaal om een beeld te krijgen van de gezondheid van het cluster.
ClusterControl kan u ook helpen de prestaties van uw databases te verbeteren door u toegang te geven tot de Query Monitor, die statistieken over uw verkeer bijhoudt.
Zoals te zien is op de bovenstaande schermafbeelding, kunt u zien wat voor soort query's er op uw cluster worden uitgevoerd, hoeveel query's van een bepaald type, wat de uitvoeringstijden zijn en de totale uitvoeringstijden. Dit helpt bij het identificeren welke zoekopdrachten traag zijn en welke verantwoordelijk zijn voor het grootste deel van het verkeer. U kunt zich dan concentreren op de vragen die u de grootste prestatieverbetering kunnen opleveren.