dans Linux, Tech

Pas à pas – monter un cluster Galera Mariadb

Lorsque je me suis mis dans l’idée de monter un cluster Galera Mariadb pour remplacer notre cluster Mysql, je pensais trouver facilement de la documentation en ligne. On trouve en effet beaucoup d’articles de blogs expliquant comment créer son cluster Galera malheureusement cette techno évolue vite et les articles sont rarement à jour.

La documentation qu’on peut trouver sur le site de mariadb est également assez succinct et c’est en compilant des articles depuis plusieurs sources que j’ai pu monter ce cluster.

Galera est une technologie de clusterisation de base de données bien plus efficace que ce qu’on peut faire actuellement avec mysql. Un cluster classique mysql fonctionne en mode actif/passif et si le nœud actif tombe, il est nécessaire de faire une opération manuelle pour passer un des nœud passif en actif. De plus, si un nœud reste éteint durant une période prolongée, il ne peut plus rattraper son retard sur le nœud primaire et sort du cluster. Galera règle ces problèmes avec un cluster de nœuds actifs/actifs. Chaque nœud est capable de recevoir des écritures et Galera s’occupe de synchroniser tout ça.

Pour réaliser le cluster, j’ai utilisé 4 serveurs Centos 7 : 3 nœuds mariadb (il faut un chiffre impair pour respecter le quorum) et un serveur haproxy en frontal en mode répartition de charge (leastconn) qui fait office de passerelle d’accès. Les machines s’appellent respectivement mariadb01, mariadb02, mariadb03 et mariadb-proxy.

Cet article s’attache à la mise en oeuvre du cluster en lui même. Un second article détaillera le déploiement d’haproxy.

Configuration du nœud mariadb01

On commence par récupérer le repo mariadb pour CentOS ici https://downloads.mariadb.org/mariadb/repositories/ ce qui devrait vous donner quelque chose comme ça:

On peut ensuite installer les paquets nécessaires

yum -y install MariaDB-server MariaDB-client galera rsync xinetd
On édite ensuite le fichier de configuration de galera
vim /etc/my.cnf.d/server.conf
Et dans la zone du fichier dédiée à galera:

On ne donne aucune adresse pour le moment au cluster. On laisse la valeur par défaut gcomm://. On reviendra sur cette partie plus tard.

Avant de démarrer le premier nœud du cluster, on lance la sécurisation de l’instance mariadb avec la commande mysql_secure_installation.

Une fois cette étape effectuée, on peut démarrer le cluster. Cette commande ne doit être lancée qu’une seule fois et seulement sur le premier noeud configuré.

On se connecte ensuite sur l’instance mysql pour vérifier que le cluster est bien opérationnel:

Et voilà notre cluster Galera composée de 1 nœud pour le moment 🙂

Configuration de mariadb02 et mariadb03

On reprend les mêmes étapes que pour mariadb01 en adaptant le fichier de configuration. On n’oublie pas de lancer mysql_secure_installation.

Le fichier de conf de mariadb02 :

On peut lancer le service mariadb de façon classique et vérifier que le cluster est opérationnel :

On a bien 2 nœuds dans notre cluster, passons à mariadb03

Le fichier de conf de mariadb03 :

Idem, on lance le service et on vérifie que tout est ok:

Trois nœuds dans le cluster, c’est bon!

Configuration finale

On corrige maintenant les adresses de cluster sur les serveurs mariadb01 et mariadb02 en y mettant la même valeur que dans le fichier de conf de mariadb03

Puis on redémarrer les services

C’est terminé.

A ce stade, vous devez pouvoir vous connecter sur n’importe quel noeud, créer une base, elle sera dupliquée dans la foulée sur les autres nœuds.

Ecrivez un commentaire

Commenter