dans Linux, Tech

Galera Mariadb: Load balancing et Failover HAproxy

Après avoir mis en place le cluster Galera Mariadb, nous avons besoin d’un point d’accès au cluster. Ce point d’accès peut être un proxy mysql ou tout autre serveur HA.

Nous allons configurer HAproxy avec l’option leastconn pour qu’il envoie les paquets vers la machine ayant le moins de connexions (Load Balancing) et nous allons mettre en place un check http pour qu’en cas de problème sur un noeud, HAproxy ne lui envoie plus de paquets (FailOver).

Pour cela, nous avons besoin du script clustercheck présent ici https://github.com/olafz/percona-clustercheck. Ce script doit être présent sur chaque noeud du cluster mariadb.

Préparation des nœuds du cluster

Toutes les opérations détaillées dans cette section doivent être effectuées sur tous les nœuds du cluster mariadb.

On commence par récupérer le script clustercheck, puis on créé un utilisateur mysql pour l’exécution du script et on place le script au bon endroit

L’étape suivante consiste à créer un service xinetd dont la tâche sera de lancer le script clustercheck à la demande.

Création du fichier /etc/xinetd.d/mariadbcheck:

Dans le champ only_from, vous pouvez mettre l’adresse ip d’HAproxy si vous le souhaitez (avec un /32 à la fin).

Pour avoir un service propre et bien configuré, on l’ajoute aussi dans /etc/services en commentant les anciens services utilisant le port 9200 (service wap, a priori votre serveur ne devrait pas en avoir besoin 🙂 )

On redémarre xinetd et on devrait avoir le port 9200 en écoute.

Pour vérifier que ça fonctionne, lancez la commande clustercheck. Elle doit renvoyer du text contenant HTTP/1.1 200 OK qui sera le retour attendu par HAproxy pour s’assurer que le noeud du cluster est atteignable.

Configuration d’HAproxy

La plus gros du boulot est fait. Reste à définir le cluster dans HAproxy.

Ceci se fait dans le fichier de conf en y ajoutant à la fin :

Après avoir redémarré HAproxy, le cluster doit être joignable et on doit pouvoir prouver le load balancing :

 

Ecrivez un commentaire

Commenter