MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment déployer un cluster MariaDB pour une haute disponibilité

MariaDB Cluster est un système de réplication multi-maîtres construit à partir de MariaDB Server, du correctif MySQL wsrep et du fournisseur Galera wsrep.

Galera est basé sur une méthode de réplication synchrone (ou "virtuellement synchrone"), qui garantit que les données sont appliquées aux autres nœuds avant qu'elles ne soient validées. Avoir les mêmes données sur tous les nœuds signifie que les pannes de nœud peuvent être facilement tolérées et qu'aucune donnée n'est perdue. Il est également plus facile de basculer vers un autre nœud, puisque tous les nœuds sont à jour avec les mêmes données. Il est juste de dire que MariaDB Cluster est une solution à haute disponibilité qui peut atteindre une disponibilité élevée pour les organisations avec des accords de niveau de service de base de données stricts.

En plus de gérer la haute disponibilité, il peut également être utilisé pour faire évoluer le service de base de données et étendre le service à plusieurs régions.

Déploiement du cluster MariaDB

MariaDB Cluster dans ClusterControl est vraiment simple et disponible dans l'édition communautaire gratuite. Vous pouvez passer par "Déployer", choisir MySQL Galera comme indiqué ci-dessous :

Renseignez les informations d'identification et d'utilisateur SSH, le nom du cluster que vous souhaitez utiliser puis Continuer.

Choisissez MariaDB comme fournisseur de la base de données que vous souhaitez installer. Server Data Directory, Server Port peut utiliser la configuration par défaut, sauf si vous définissez une configuration spécifique. Remplissez le mot de passe de la base de données Admin/Root et enfin Ajouter un nœud pour ajouter les adresses IP cibles des nœuds de la base de données.

Les nœuds Galera nécessitent au moins 3 nœuds ou vous pouvez utiliser 2 nœuds de base de données et un arbitre galera configuré sur un hôte séparé.

Une fois tous les champs renseignés, il vous suffit de déployer le cluster. Cela déclenchera une nouvelle tâche pour créer un cluster, comme indiqué ci-dessous :

Déploiement Maxscale

Maxscale est un équilibreur de charge de base de données, un proxy de base de données et un pare-feu qui se situe entre votre application et les nœuds MariaDB. Certaines des fonctionnalités de Maxscale sont :

  • Basculement automatique pour une haute disponibilité
  • Équilibrage de la charge du trafic (répartition lecture et écriture)
  • Contrôles du trafic pour les requêtes et les connexions.

Il existe deux façons de passer par le déploiement de l'équilibreur de charge, vous pouvez "Ajouter un équilibreur de charge" dans le menu du cluster comme indiqué ci-dessous :

Ou vous pouvez aller dans Gérer -> Load Balancer. Il ira à la même page, qui est la page Load Balancer. Choisissez l'onglet "Maxscale" pour le déploiement de l'équilibreur de charge Maxscale :

Choisissez l'adresse du serveur, définissez le nom d'utilisateur et le mot de passe maxscale, vous pouvez laisser le configuration par défaut pour les threads et le port de lecture/écriture. Incluez également le ou les nœuds MariaDB à ajouter dans l'équilibreur de charge. Vous pouvez "Déployer MaxScale" pour déployer le proxy de base de données MaxScale et l'équilibrage de charge.

La meilleure pratique pour rendre l'équilibreur de charge hautement disponible consiste à configurer au moins 2 instances MaxScale sur différents hôtes.

Déploiement Keepalive

Keepalived est un service démon sous Linux utilisé pour les vérifications de l'état, et également utilisé pour le basculement si l'un des serveurs est en panne. Le mécanisme utilise VIP (adresse IP virtuelle) pour obtenir une haute disponibilité, consistant en un serveur agissant en tant que maître et l'autre agissant en tant que sauvegarde.

Le déploiement de Keepalived est un service qui peut être effectué dans Gérer -> Équilibreur de charge.

Veuillez choisir votre type d'équilibreur de charge, qui est MaxScale. Actuellement, ClusterControl prend en charge HAProxy, ProxySQL et MaxScale en tant qu'équilibreurs de charge pouvant être intégrés à Keepalived. Définissez votre adresse IP virtuelle (VIP) et votre interface réseau pour l'adresse IP virtuelle.

Après cela, cliquez simplement sur Déployer Keepalived. Cela déclenchera une nouvelle tâche pour déployer Keepalived sur les deux hôtes MaxScale.

L'architecture finale pour MariaDB Cluster for High Availability se compose de 3 nœuds de base de données, 2 nœuds d'équilibrage de charge et un service keepalive au-dessus de chaque équilibreur de charge, comme indiqué dans la topologie ci-dessous :

Conclusion

Nous avons montré comment déployer rapidement un cluster MariaDB haute disponibilité avec MaxScale et Keepalived via ClusterControl. Nous avons parcouru les configurations des nœuds de base de données et des nœuds proxy. Pour en savoir plus sur Galera Cluster, consultez notre tutoriel en ligne. Notez que ClusterControl prend également en charge d'autres équilibreurs de charge comme ProxySQL et HAProxy. Essayez-les et faites-nous savoir si vous avez des questions.