«

»

Déc 24 2013

[Tuto] HA: Un cluster DRBD/MySQL avec Heartbeat sur Debian 7

Bonjour à tous !

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.

Voila ce que nous allons mettre en place

Cluster DRBD/MySQL

Cluster DRBD/MySQL

Donc pour faire ce tutoriel suivez le tutoriel suivant jusqu’a « Installation d’apache« :

http://denisrosenkranz.com/tuto-ha-un-cluster-drbdapache-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 ;)

Amusez-vous bien !

(5 commentaires)

2 pings

Passer au formulaire de commentaire

  1. Romain

    Bonjour,

    Les précédents tutoriel et le début de celui-ci ont très bien fonctionné mais j’aurais une petite question à vous poser concernant la partie où l’on rajoute « mysql » à la fin du fichier haresources.

    En effet, une fois « mysql » ajouté, lorsque je stop le service heartbeat sur le node1, le mount de /dev/drbd0 ainsi que le swap de l’adresse virtuel ne se fais plus sur le node 2. De plus le service mysql ne démarre pas non plus.

    Afin que je puisse retrouver une configuration fonctionnel, je suis obligé de redémarrer heartbeat sur les deux node. En redémarrant le service, la configuration refonctionne jusqu’à ce que je décide de stoper heartbeat sur le node1 à nouveau.

    Il y a t il une syntaxe particulière dans le fichier haresources ou des paramètres à modifier pour mysql ?

    Cordialement,
    Romain

    1. Denis

      Bonjour Romain,

      C,est dans doute au niveau de la communication entre tes deux nodes.

      Je te conseil de suivre mon tutoriel:

      http://denisrosenkranz.com/tuto-ha-un-cluster-apachemysql-avec-drbd-et-heartbeat-sur-debian-7/

      Cdt,

      Denis

  2. Saoxiru

    Bonjour,

    Très bon tutoriel, très bien amené et expliqué.
    Félicitation.

    J’aurai une question, si l’on suit les deux tutos :

    – Un cluster DRBD/MySQL avec Heartbeat sur Debian 7,
    – Un cluster DRBD/Apache avec Heartbeat sur Debian 7.

    Comment pouvons-nous ajouter les deux en même temps dans le fichier : /etc/ha.d/haresources ?

    Il faut le remplir de cette façon : node1 IPaddr::192.168.2.57/24/eth0 drbddisk::r0 Filesystem::/dev/drbd0::/mnt::ext4 apache2 msql ?

    Merci d’avance pour votre aide.

    Codialement,
    Saoxiru

    1. Denis

      Hello Saoxiru,

      Effectivement, il suffit juste de rajouter le service souhaité a la fin de la ligne

      Donc:

      node1 IPaddr::192.168.2.57/24/eth0 drbddisk::r0 Filesystem::/dev/drbd0::/mnt::ext4 apache2 mysql

      est correct

      Cordialement,

      Denis

      1. Saoxiru

        Bonjour,

        Merci beaucoup, tout fonctionne !

        Cordialement,
        Saoxiru

  1. Un cluster DRBD / MySQL avec Heartbeat sur Debian 7 | Databases, Systems & Networks

    […] Source: denisrosenkranz.com […]

  2. DataNet Secure » Un cluster DRBD / MySQL avec Heartbeat sur Debian 7

    […] Source: denisrosenkranz.com […]

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Lire les articles précédents :
heart-beat
[Tuto] HA: Un cluster DRBD/Apache avec Heartbeat sur Debian 7

Bonjour à tous ! Vous souvenez-vous de mon tutoriel sur DRBD? Dans le prolongement de ce tutoriel, nous allons mettre...

Fermer