Un cluster DRBD / MySQL avec Heartbeat sur Debian 7
Source: denisrosenkranz.com
Nous avons vu précédement comment mettre un place un Cluster Apache actif/passif avec DRBD et HeartBeat. Dans ce tutoriel nous allons voir comment faire la même chose mais avec MySQL.
La configuration de DRBD et de Heartbeat est la même que pour le tutoriel précédent.
Voilà ce que nous allons mettre en place
Donc pour faire ce tutoriel suivez le tutoriel suivant jusqu’a « Installation d’apache« :
Un cluster DRBD/Apache avec Heartbeat sur Debian 7
Installation de Mysql
On commence par installer MySQL Server sur les deux nodes avec la commande:
apt-get install mysql-server |
Aprés l’installation de MySQL, nous allons désactiver sur les deux nodes le démarage automatique du service au lancement de la machine parce que c’est Heartbeat qui va gérer le lancement de MySQL.
Sur les deux nodes lancez donc la commande:
insserv -r mysql |
Et arrêtez Mysql les deux nodes avec la commande:
/etc/init .d /mysql stop |
Sur le node1 nous allons déplacer le dossier par défaut qui contient les bases de données dans /mnt/. Le dossier par défaut est le dossier /var/lib/mysql.
mv /var/lib/mysql/ /mnt/ |
Et on crée un lien symbolique de /mnt/mysql vers /var/lib/mysql.
ln -s /mnt/mysql/ /var/lib/ |
On fait la même chose avec le fichier debian.cnf, qui est dans /etc/mysql
mv /etc/mysql/debian .cnf /mnt/mysql/ ln -s /mnt/mysql/debian .cnf /etc/mysql/ |
Maintenant connectez vous sur node2 et tapez les commandes suivantes:
rm -rvf /var/lib/mysql/ rm -vf /etc/mysql/debian .cnf ln -s /mnt/mysql/ /var/lib/ ln -s /mnt/mysql/debian .cnf /etc/mysql/ |
Maintenant sur node1, demarrez mysql avec la commande:
/etc/init .d /mysql start |
Nous allons créer une base de donnée appelée « testDrbd » en ligne de commande:
root@node1:~ # mysql -u root -p Enter password: passowrd fournis à l'installation de mysql-server Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 42 Server version: 5.5.33-0+wheezy1 (Debian) Copyright (c) 2000, 2013, Oracle and /or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and /or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> CREATE DATABASE testDrbd; Query OK, 1 row affected (0.00 sec) mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | testDrbd | +--------------------+ 4 rows in set (0.00 sec) mysql> exit Bye |
Maintenant nous allons configurer Heartbeat sur les deux nodes pour demarrer automatiquement MySQL.
Editez le fichier « /etc/ha.d/haresources » et rajoutez mysql à la fin de la ligne comme ceci:
node1 IPaddr::192.168.2.57 /24/eth0 drbddisk::r0 Filesystem:: /dev/drbd0 :: /mnt ::ext4 mysql |
Rechargez le fichier de configuration Heartbeat sur les deux nodes avec la commande:
/etc/init .d /heartbeat reload |
Maintenant nous allons voir si le balancement se fait bien.
Sur node1 stoppez Heartbeat avec la commande:
/etc/init .d /heartbeat stop |
Allez sur node2 et vérifiez que:
– node2 est bien devenu le node primaire et que /dev/drbd0 est bien monté dans /mnt/
drbd-overview |
– l’IP balancée est bien sur node2
ifconfig |
– mysql est bien lancé sur node2
/etc/init .d /mysql status |
Si tout ok, connectez vous au serveur mysql et vérifiez que la base de donnée est bien présente:
root@node2:~ # mysql -u root -p Enter password: passowrd fournis à l'installation de mysql-server Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 45 Server version: 5.5.33-0+wheezy1 (Debian) Copyright (c) 2000, 2013, Oracle and /or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and /or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> SHOW DATABASES +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | testDrbd | +--------------------+ 4 rows in set (0.00 sec) |
On vois bien que la base de donnée est bien présente 🙂
Vous pouvez aussi vous amuser avec les deux derniers tutoriel pour faire un cluster DRBD/Apache/MySQL avec Heartbeat 😉