MySQL Cluster · 3 min read · Oct 02, 2025

Comment configurer un cluster MySQL équilibré en charge

Comment configurer un cluster MySQL équilibré en charge

Version 1.0
Auteur : Falko Timme

Ce tutoriel montre comment configurer un cluster MySQL 5 avec trois nœuds : deux nœuds de stockage et un nœud de gestion. Ce cluster est équilibré en charge par un équilibreur de charge à haute disponibilité qui a en fait deux nœuds utilisant le package Ultra Monkey qui fournit un heartbeat (pour vérifier si l’autre nœud est toujours actif) et ldirectord (pour répartir les requêtes entre les nœuds du cluster MySQL).

Dans ce document, j’utilise Debian Sarge pour tous les nœuds. Par conséquent, la configuration peut légèrement différer pour d’autres distributions. La version de MySQL que j’utilise dans cette configuration est 5.0.19. Si vous ne souhaitez pas utiliser MySQL 5, vous pouvez également utiliser MySQL 4.1, bien que je ne l’aie pas testé.

Ce guide est destiné à être un guide pratique ; il ne couvre pas les bases théoriques. Elles sont traitées dans de nombreux autres documents sur le web.

Ce document est fourni sans garantie d’aucune sorte ! Je tiens à dire que ce n’est pas la seule façon de configurer un tel système. Il existe de nombreuses façons d’atteindre cet objectif, mais c’est la méthode que je choisis. Je ne donne aucune garantie que cela fonctionnera pour vous !

1 Mes serveurs

J’utilise les serveurs Debian suivants qui sont tous dans le même réseau (192.168.0.x dans cet exemple) :

  • sql1.example.com : 192.168.0.101 Nœud de cluster MySQL 1
  • sql2.example.com : 192.168.0.102 Nœud de cluster MySQL 2
  • loadb1.example.com : 192.168.0.103 Équilibreur de charge 1 / Serveur de gestion de cluster MySQL
  • loadb2.example.com : 192.168.0.104 Équilibreur de charge 2

De plus, nous avons besoin d’une adresse IP virtuelle : 192.168.0.105. Elle sera attribuée au cluster MySQL par l’équilibreur de charge afin que les applications aient une seule adresse IP pour accéder au cluster.

Bien que nous souhaitions avoir deux nœuds de cluster MySQL dans notre cluster MySQL, nous avons toujours besoin d’un troisième nœud, le serveur de gestion de cluster MySQL, pour principalement une raison : si l’un des deux nœuds de cluster MySQL échoue, et que le serveur de gestion ne fonctionne pas, alors les données sur les deux nœuds de cluster deviendront incohérentes (“split brain”). Nous en avons également besoin pour configurer le cluster MySQL.

Donc normalement, nous aurions besoin de cinq machines pour notre configuration :

2 nœuds de cluster MySQL + 1 serveur de gestion de cluster + 2 équilibreurs de charge = 5

Comme le serveur de gestion de cluster MySQL n’utilise pas beaucoup de ressources, et que le système resterait simplement là à ne rien faire, nous pouvons mettre notre premier équilibreur de charge sur la même machine, ce qui nous fait économiser une machine, donc nous finissons avec quatre machines.

2 Configurer le serveur de gestion de cluster MySQL

Tout d’abord, nous devons télécharger MySQL 5.0.19 (la version max !) et installer le serveur de gestion de cluster (ndb_mgmd) et le client de gestion de cluster (ndb_mgm - il peut être utilisé pour surveiller ce qui se passe dans le cluster). Les étapes suivantes sont effectuées sur loadb1.example.com (192.168.0.103) :

loadb1.example.com :

mkdir /usr/src/mysql-mgm
cd /usr/src/mysql-mgm
wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-max-5.0.19-linux-i686-\
glibc23.tar.gz/from/http://www.mirrorservice.org/sites/ftp.mysql.com/
tar xvfz mysql-max-5.0.19-linux-i686-glibc23.tar.gz
cd mysql-max-5.0.19-linux-i686-glibc23
mv bin/ndb_mgm /usr/bin
mv bin/ndb_mgmd /usr/bin
chmod 755 /usr/bin/ndb_mg*
cd /usr/src
rm -rf /usr/src/mysql-mgm

Ensuite, nous devons créer le fichier de configuration du cluster, /var/lib/mysql-cluster/config.ini :

loadb1.example.com :

mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
vi config.ini

| [NDBD DEFAULT] NoOfReplicas=2 [MYSQLD DEFAULT] [NDB_MGMD DEFAULT] [TCP DEFAULT] # Section pour le nœud de gestion du cluster [NDB_MGMD] # Adresse IP du nœud de gestion (ce système) HostName=192.168.0.103 # Section pour les nœuds de stockage [NDBD] # Adresse IP du premier nœud de stockage HostName=192.168.0.101 DataDir= /var/lib/mysql-cluster [NDBD] # Adresse IP du deuxième nœud de stockage HostName=192.168.0.102 DataDir=/var/lib/mysql-cluster # un [MYSQLD] par nœud de stockage [MYSQLD] [MYSQLD] |

Veuillez remplacer les adresses IP dans le fichier en conséquence.

Ensuite, nous démarrons le serveur de gestion de cluster :

loadb1.example.com :

ndb_mgmd -f /var/lib/mysql-cluster/config.ini  

Il est logique de démarrer automatiquement le serveur de gestion au démarrage du système, donc nous créons un script d’initialisation très simple et les liens de démarrage appropriés :

loadb1.example.com :

echo ‘ndb_mgmd -f /var/lib/mysql-cluster/config.ini’ > /etc/init.d/ndb_mgmd
chmod 755 /etc/init.d/ndb_mgmd
update-rc.d ndb_mgmd defaults

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.