Dans ClusterControl 1.5, nous avons ajouté un support pour MySQL NDB Cluster 7.5. Dans cet article de blog, nous examinerons certaines des fonctionnalités qui font de ClusterControl un excellent outil pour gérer MySQL NDB Cluster. Tout d'abord, comme il existe de nombreux produits avec "Cluster" dans leur nom, nous aimerions dire quelques mots sur MySQL NDB Cluster lui-même et comment il se différencie des autres solutions.
Cluster MySQL NDB
MySQL NDB Cluster est un cluster synchrone sans partage pour MySQL, basé sur le moteur NDB. C'est un produit avec sa propre liste de fonctionnalités, et assez différent de Galera Cluster ou MySQL InnoDB Cluster. L'une des principales différences est l'utilisation du moteur NDB, et non d'InnoDB, qui est le moteur par défaut de MySQL. Dans le cluster NDB, les données sont partitionnées sur plusieurs nœuds de données tandis que Galera Cluster ou MySQL InnoDB Cluster contiennent l'ensemble de données complet sur chacun des nœuds. Cela a de sérieuses répercussions sur la façon dont MySQL NDB Cluster traite les requêtes qui utilisent des JOIN et de gros morceaux de l'ensemble de données.
En ce qui concerne l'architecture, MySQL NDB Cluster se compose de trois types de nœuds différents. Les nœuds de données stockent les données à l'aide du moteur NDB. Les données sont mises en miroir pour la redondance, avec jusqu'à 4 répliques de données. Notez que ClusterControl déploiera 2 répliques par groupe de nœuds, car il s'agit de la configuration la plus testée et la plus stable. Les nœuds de gestion sont destinés à contrôler le cluster - pour des raisons de haute disponibilité, vous disposez généralement de deux nœuds de ce type. Les nœuds SQL sont utilisés comme points d'entrée dans le cluster. Ils analysent SQL, demandent des données aux nœuds de données et agrègent les ensembles de résultats si nécessaire.
Fonctionnalités de ClusterControl pour MySQL NDB Cluster
Déploiement
ClusterControl 1.5 prend en charge le déploiement de MySQL NDB Cluster 7.5. Cela se fait via le même assistant de déploiement que pour les autres types de clusters.
Dans la première étape, vous devez configurer la manière dont ClusterControl peut se connecter via SSH aux hôtes - il s'agit d'une exigence standard pour ClusterControl - il est sans agent, il nécessite donc un accès root SSH soit directement, au compte root ou via (mot de passe ou sans mot de passe) sudo.
À l'étape suivante, vous définissez des nœuds de gestion pour votre cluster.
Ici, vous devez décider du nombre de nœuds de données que vous souhaitez avoir. Comme nous l'avons indiqué précédemment, tous les 2 nœuds feront partie d'un groupe de nœuds, il doit donc s'agir d'un nombre pair.
Enfin, vous devez décider du nombre de nœuds SQL que vous souhaitez déployer dans votre cluster. Une fois que vous aurez cliqué sur déployer, ClusterControl se connectera aux hôtes, installera le logiciel et configurera tous les services. Au bout d'un moment, vous devriez voir votre cluster déployé.
Mise à l'échelle du cluster MySQL NDB
Pour MySQL NDB Cluster, ClusterControl 1.5.0 prend en charge la mise à l'échelle des nœuds SQL. Vous pouvez accéder à la tâche à partir de la liste déroulante des tâches de cluster.
Là, vous pouvez remplir le nom d'hôte du nœud que vous souhaitez ajouter et c'est tout ce dont vous avez besoin - ClusterControl s'occupera du reste.
Gestion du cluster MySQL NDB
ClusterControl vous aide à gérer MySQL NDB Cluster. Dans cette section, nous aimerions passer en revue certaines des fonctionnalités de gestion dont nous disposons.
Sauvegardes
Les sauvegardes sont cruciales pour tout environnement de production. En cas de sinistre, seule une bonne sauvegarde peut minimiser la perte de données et vous aider à vous remettre rapidement du problème. La réplication n'est pas toujours une solution qui fonctionne - DROP TABLE supprimera la table sur tous les hôtes de la topologie. Même un esclave retardé ne peut retarder l'inévitable que d'autant.
ClusterControl prend en charge la sauvegarde ndb pour MySQL NDB Cluster.
Vous pouvez facilement créer un programme de sauvegarde à exécuter par ClusterControl.
Couche proxy
ClusterControl vous permet de déployer une pile haute disponibilité complète au-dessus du cluster MySQL NDB. Pour la couche proxy, nous prenons en charge le déploiement de HAProxy et MaxScale.
Comme le montre la capture d'écran ci-dessus, le déploiement ressemble beaucoup aux autres types de cluster. Vous devez décider si vous souhaitez utiliser un HAProxy existant ou en déployer un nouveau. Ensuite, vous devez choisir comment l'installer - en utilisant des packages à partir de référentiels disponibles sur le nœud ou en le compilant à partir du code source de la dernière version.
Si vous décidez d'utiliser HAProxy, vous aurez la possibilité de configurer la haute disponibilité en utilisant Keepalived et Virtual IP.
Le processus est le suivant - vous définissez une adresse IP virtuelle et l'interface sur laquelle elle doit être affichée. Ensuite, vous pouvez le déployer pour chaque HAProxy que vous avez installé. L'un des processus Keepalived sera déterminé comme "maître" et il activera VIP sur son nœud. Votre application se connecte alors à cette adresse IP particulière. Lorsqu'un HAProxy actif n'est pas disponible, le VIP sera déplacé vers un autre HAProxy disponible, rétablissant la connectivité.
Gestion de la récupération
Bien que MySQL NDB Cluster puisse tolérer les pannes de nœuds individuels, il est important de réagir rapidement à celles-ci. ClusterControl fournit une récupération automatisée pour tous les composants du cluster. Peu importe ce qui échoue (nœud de gestion, nœud de données ou nœud SQL), ClusterControl les redémarrera automatiquement.
Surveillance du cluster MySQL NDB
Tout environnement prêt pour la production doit être surveillé. ClusterControl vous fournit une gamme de métriques à surveiller. Dans la page "Aperçu", nous affichons des graphiques basés sur les métriques les plus importantes pour votre cluster. Vous pouvez également créer vos propres tableaux de bord, affichant des données supplémentaires qui seraient utiles dans votre environnement.
En plus des graphiques, la page "Aperçu" vous donne un aperçu de l'état du cluster en fonction de certaines métriques MySQL NDB Cluster comme la mémoire d'index utilisée, la mémoire de données et l'état de certains tampons.
Il fournit également une surveillance des métriques de l'hôte, y compris l'utilisation du processeur, la RAM, les statistiques du disque ou du réseau. Ces graphiques sont également cruciaux pour établir une vue de la santé du cluster.
ClusterControl peut également vous aider à améliorer les performances de vos bases de données en vous donnant accès au Query Monitor, qui contient des statistiques sur votre trafic.
Comme on le voit sur la capture d'écran ci-dessus, vous pouvez voir quel type de requêtes s'exécutent sur votre cluster, combien de requêtes d'un type donné, quels sont leurs temps d'exécution et les temps d'exécution totaux. Cela permet d'identifier quelles requêtes sont lentes et lesquelles d'entre elles sont responsables de la majorité du trafic. Vous pouvez ensuite vous concentrer sur les requêtes susceptibles d'améliorer le plus vos performances.