16
1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos ........................................................................................................................................... 1 1. Objectifs........................................................................................................................................... 1 2. Schéma ............................................................................................................................................ 2 3. Configuration des machines virtuelles ............................................................................................ 2 4. Préparation des disques .................................................................................................................. 3 5. Installation et configuration de DRBD ............................................................................................. 5 6. Installation et configuration d’Heartbeat........................................................................................ 8 7. Installation d’Apache et de PHP .................................................................................................... 10 8. Installation de Mysql ..................................................................................................................... 12 9. Installation de PHPMyAdmin......................................................................................................... 14 Avant-Propos Le tutoriel suivant est réalisé avec deux machines virtuelles Debian Wheezy ayant une adresse IP fixe dans le cadre de l’épreuve E4 du BTS SIO : le laboratoire Galaxy Swiss Bourdin (cas GSB). Qu’est-ce que DRBD? DRBD pour Distributed Replicated Block Device est comparable à un RAID 1 mais en réseau, c’est à dire que deux disques, partitions ou même un LVM peuvent être répliqué d’un disque à un autre via un réseau Ethernet ou fibre optique. Cela permet donc d’assurer la disponibilité de vos données en cas de crash complet d’une machine. Ce que ne permet pas de faire un RAID classique. C’est quoi Heartbeat ? Heartbeat est un logiciel de surveillance de la disponibilité des programmes, pour les systèmes d’exploitation Linux, FreeBsd, OpenBSD, Solaris et MacOS X. Il est distribué sous licence GPL. Heartbeat écoute les battements de cœur – des signaux émis par les services d’une grappe de serveurs lorsqu’ils sont opérationnels. Lorsqu’un serveur devient défaillant, Heartbeat le détecte (puisqu’il n’entend plus ses battements de cœur) et bascule les services surveillés sur un autre serveur. Pour que cela soit transparent pour les utilisateurs, Heartbeat met en place une IP virtuelle unique qui est balancée entre les deux serveurs. 1. Objectifs Nous allons au cours de ce tutoriel : Installer et configurer DRBD Installer et configurer HeartBeat Installer et configurer Apache et MySQL

Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

Embed Size (px)

Citation preview

Page 1: Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

1

Tutoriel d’installation : DRBD et Heartbeat Sommaire

Avant-Propos ........................................................................................................................................... 1

1. Objectifs........................................................................................................................................... 1

2. Schéma ............................................................................................................................................ 2

3. Configuration des machines virtuelles ............................................................................................ 2

4. Préparation des disques .................................................................................................................. 3

5. Installation et configuration de DRBD ............................................................................................. 5

6. Installation et configuration d’Heartbeat ........................................................................................ 8

7. Installation d’Apache et de PHP .................................................................................................... 10

8. Installation de Mysql ..................................................................................................................... 12

9. Installation de PHPMyAdmin ......................................................................................................... 14

Avant-Propos Le tutoriel suivant est réalisé avec deux machines virtuelles Debian Wheezy ayant une adresse IP fixe

dans le cadre de l’épreuve E4 du BTS SIO : le laboratoire Galaxy Swiss Bourdin (cas GSB).

Qu’est-ce que DRBD?

DRBD pour Distributed Replicated Block Device est comparable à un RAID 1 mais en réseau, c’est à

dire que deux disques, partitions ou même un LVM peuvent être répliqué d’un disque à un autre via

un réseau Ethernet ou fibre optique.

Cela permet donc d’assurer la disponibilité de vos données en cas de crash complet d’une machine.

Ce que ne permet pas de faire un RAID classique.

C’est quoi Heartbeat ?

Heartbeat est un logiciel de surveillance de la disponibilité des programmes, pour les systèmes

d’exploitation Linux, FreeBsd, OpenBSD, Solaris et MacOS X. Il est distribué sous licence GPL.

Heartbeat écoute les battements de cœur – des signaux émis par les services d’une grappe de

serveurs lorsqu’ils sont opérationnels. Lorsqu’un serveur devient défaillant, Heartbeat le détecte

(puisqu’il n’entend plus ses battements de cœur) et bascule les services surveillés sur un autre

serveur. Pour que cela soit transparent pour les utilisateurs, Heartbeat met en place une IP virtuelle

unique qui est balancée entre les deux serveurs.

1. Objectifs Nous allons au cours de ce tutoriel :

Installer et configurer DRBD

Installer et configurer HeartBeat

Installer et configurer Apache et MySQL

Page 2: Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

2

2. Schéma Voici la topologie que nous allons mettre en place :

3. Configuration des machines virtuelles Dans un premier temps, nous allons configurer nos deux machines virtuelles (les noms de machines

ainsi que leurs adresses IP sont spécifiques au contexte, personnalisé les pour votre situation) :

a) Machine 1 :

Hostname: S-web-ext

Adresse IP: 192.168.1.11

Un second disque dur virtuel de 8 GO (pour DRBD)

b) Machine 2 :

Hostname: S-web-ext2

Adresse IP: 192.168.1.12

Un second disque dur virtuel de 8 GO (pour DRBD)

Page 3: Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

3

De plus, nous allons ajouter deux lignes dans le fichier /etc/hosts afin que nos machines puissent se

pinger par leur nom :

vim /etc/hosts

Ajouter :

#Serveurs du cluster

192.168.1.11 node1

192.168.1.12 node2

Voici le résultat de la commande ping :

4. Préparation des disques Nous allons commencer par créer une partition sur les seconds disques que nous avons rajoutés.

Sur les deux machines tapez les commandes suivantes :

fdisk /dev/sdb

n

p

1

appuyer sur entrée

Page 4: Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

4

appuyer une seconde fois sur entrée

w

Maintenant que nous avons partitionné les deux disques, nous allons installer les paquets

nécessaires à l’utilisation de DRBD.

Page 5: Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

5

5. Installation et configuration de DRBD Sur les deux machines (node 1 et node 2) tapez les commandes suivantes :

aptitude install drbd8-utils

Puis une fois le paquet installé, on active le module avec la commande suivante :

modprobe drbd

Vous pouvez vérifier la version de DRBD installée en tapant la commande :

modinfo drbd

Maintenant que nos disques et DRBD sont mis en place, nous allons configurer la réplication des

données entre les deux disques.

Pour ce faire, nous allons créer et éditer un fichier que nous allons appeler drbd0.res dans le dossier

/etc/drbd.d/

Attention les commandes et les configurations suivantes sont à faire sur les deux

serveurs.

cd /etc/drbd.d/

vim drbd0.res

Puis remplissez le fichier de la façon suivante :

Explications:

Tout d’abord on donne un nom à notre ressource DRBD dans notre cas, nous allons l’appeler r0.

Page 6: Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

6

Dans cette ressource, nous allons renseigner nos deux nodes, cela commence donc par on node 1

(node 1 doit être le hostname de la machine) avec les valeurs suivantes:

device /dev/drbd0; #Ceci est le nom du disque DRBD que nous allons créer

disk /dev/sdb1; #Ceci est le chemin de la partition que nous allons utiliser

address 192.168.2.101:7788; #Adresse IP du node1

meta-disk internal; #On écrit les MD sur le disque

Afin d’éviter toute erreur lors de la recopie du fichier, nous allons depuis node 1 l’envoyer à node 2 à

l’aide de la commande scp :

scp /etc/drbd.d/drbd0.res [email protected]:/etc/drbd.d/

Vérifier sur node 2 que le fichier est bien présent :

ls /etc/drbd.d/

Une fois ce fichier écrit sur les deux nodes nous allons enfin pouvoir mettre en place la réplication :

Toujours sur les deux nodes tapez les commandes suivantes :

drbdadm create-md r0

drbdadm up r0

Et voilà notre DRBD est pratiquement mis en place, vous pouvez vérifier que vos nodes se contactent

en tapant la commande suivante :

drbd-overview

Vous devriez avoir cette ligne en sortie :

Cela veut dire que vos nodes se connectent mais que la réplication n’est pas encore possible étant

donné qu’aucun des deux n’est en mode Primary, pour y remédier nous allons mettre node 1 en

primary avec la commande suivante :

drbdadm -- --overwrite-data-of-peer primary r0

Et node 2 en secondary :

drbdadm secondary r0

La synchronisation initiale se lance, vous pouvez vérifier l’état de la synchronisation avec la

commande suivante :

cat /proc/drbd

Page 7: Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

7

La synchronisation initiale peut être plus ou moins lente en fonction de l’espace disque et de la

rapidité de votre réseau local.

Vous pouvez suivre la synchronisation avec un rafraîchissement toutes les deux secondes avec la

commande suivante :

watch cat /proc/drbd

Vous pouvez quitter cette vue en faisant :

CTRL+C

Une fois la synchronisation terminée la commande cat /proc/drbd vous donneras ceci :

cat /proc/drbd

Si les deux sont en mode ds:UpToDate/UpToDate c’est que tout fonctionne bien.

Maintenant que notre raid réseau est fonctionnel, nous allons créer un système de fichiers en ext4

pour pouvoir écrire dessus.

Tapons la commande suivante sur le node primaire (node 1) :

mkfs.ext4 /dev/drbd0

Page 8: Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

8

Avec DRBD, vous devez savoir que l’on ne peut monter la partition DRBD uniquement sur le

serveur sur laquelle la partition DRBD est en Primary.

Maintenant, nous allons installer Heartbeat sur les deux nodes afin de mettre en place le

balancement de la partition DRBD entre les deux serveurs.

6. Installation et configuration d’Heartbeat

ATTENTION: Toutes les prochaines étapes sont à faire sur les deux serveurs !

Heartbeat s’installe simplement avec la commande :

aptitude install heartbeat

Une fois Heartbeat installé, nous allons devoir créer trois fichiers dans le répertoire /etc/ha.d/ :

ha.cf : Pour la configuration générale de HeartBeat

haresources : Pour la configuration des ressources

authkeys : Pour la clef partgaé entre les serveurs du cluster

Voici le contenu du fichier ha.cf :

Attention : assurez-vous que vous pouvez ping node 2 depuis node 1 et vice-versa.

Nous allons maintenant créer le contenu du fichier haresources :

Explications :

node 1 = nœud primaire du cluster

IPaddr::192.168.1.13/24/eth0 = Adresse IP balancée du cluster sur eth0

drbddisk::r0 = nom de la ressource drbd (spécifié dans /etc/drbd.d/drbd0.res)

Filesystem::/dev/drbd0::/mnt::ext4 = Nom de la partition drbd, point de montage et type de

système de fichier.

Et pour finir nous allons créer le fichier authkeys. Ce fichier contient une clef partagée entre les deux

serveurs. Cela peut être un mot de passe, ou un simple mot.

Voici le mien:

Page 9: Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

9

Ce fichier la doit avoir les permissions 600. Donc sur les deux serveurs tapez :

chmod 600 /etc/ha.d/authkeys

On peut maintenant démarrer Heartbeat sur node 1 avec la commande suivante :

/etc/init.d/heartbeat start

Patientez quelques secondes et faites sur node 1 la commande drbd-overview et vérifiez si la

partition /dev/drbd0 est bien montée dans /mnt/.

Vous pouvez aussi vérifier avec la commande ifconfig, vous verrez qu’une nouvelle interface eth0:0 a

été créer avec l’adresse IP configuré dans le fichier haresources.

Maintenant sur node 2 démarrez aussi Heartbeat avec la commande :

/etc/init.d/heartbeat start

Et voilà votre cluster DRBD est opérationnel.

Comment le tester ?

Sur node 2 tapez la commande suivante pour vérifier l’état de drbd en temps réel :

watch drbd-overview

Depuis node 2 vous devriez voir cette ligne :

Cette ligne nous montre bien que node 2 est secondary et que la partition DRBD n’est pas montée

Maintenant sur node 1 on arrête Heartbeat avec la commande suivante :

/etc/init.d/heartbeat stop

Basculez tout de suite sur node 2 et voyez que la ligne va devenir :

Cela nous montre bien que node 2 est devenu primaire et que la partition DRBD est bien monté.

Vous pouvez aussi vérifier que l’IP de balancement est bien présent sur node 2.

Maintenant, on remet node 1 en primaire en redémarrant Heartbeat avec la commande :

Page 10: Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

10

/etc/init.d/heartbeat start

Comme nous avons mis la valeur auto_failback off dans le fichier ha.cf node 2 sera toujours en

primaire. Il faut donc arrêter Heartbeat sur node 2 avec la commande :

/etc/init.d/heartbeat stop

Attendre que la partition DRBD soit remonté sur node 1 et redémarrer Heartbeat sur node 2 :

/etc/init.d/heartbeat start

Maintenant que notre cluster DRBD est actif, on va installer Apache, MySQL et PHP pour mettre en

place un site hautement disponible.

7. Installation d’Apache et de PHP On commence par installer Apache et PHP5 sur les deux nodes avec la commande :

aptitude install apache2 php5

Après l’installation d’Apache, nous allons désactiver sur les deux nodes le démarrage automatique du

service au lancement de la machine parce que c’est Heartbeat qui va gérer le lancement d’Apache.

Sur les deux nodes lancez donc la commande :

insserv -r apache2

Et arrêtez Apache sur node 2 avec la commande :

/etc/init.d/apache2 stop

Sur le node 1 nous allons créer dans le répertoire /mnt/ un dossier www pour stocker les pages web.

Dans ce dossier, nous allons créer une page Web par défaut pour vérifier que le balancement

fonctionne.

Sur node 1 faites :

mkdir /mnt/www

Puis dans ce dossier créez un fichier index.php avec le contenu suivant :

<?php

echo "Un coucou de ".gethostname()."\n"

?>

Nous allons faire en sorte que le dossier des pages par défaut d’Apache soit /mnt/www au lieu de

/var/www.

Je vais donc créer un lien symbolique de /var/www vers /mnt/www/.

Sur les deux nodes faites les commandes suivantes :

rm -rvf /var/www/

ln -s /mnt/www/ /var/

Page 11: Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

11

Vous pouvez vérifier que le lien est fonctionnel avec la commande :

ls -la /var/www

Vous devriez voir cette ligne :

Maintenant, nous allons configurer Heartbeat pour qu’il gère le démarrage automatique d’Apache.

Sur les deux nodes éditez le fichier /etc/ha.d/haresources et rajoutez simplement apache2 à la fin de

la ligne.

Vos fichiers /etc/ha.d/haresources devraient ressembler à ceci :

Rechargez le fichier de configuration Heartbeat sur les deux nodes avec la commande :

/etc/init.d/heartbeat reload

Nous allons vérifier si le balancement fonctionne bien.

Ouvrez un navigateur internet et connectez-vous à l’adresse IP balancée de votre Cluster

DRBD/Apache.

Pour ma part l’ip est 192.168.1.13

Vous devriez voir une page avec le texte suivant (si bien sur node 1 est le node actif) :

Si vous voyez bien cela arrête HeartBeat sur le node 1, patientez quelques secondes et rechargez la

page web. Maintenant, le texte affiché devrait être :

La page index.php qui nous avons mis dans /mnt/www/ nous affiche le hostname de la machine.

Nous voyons donc bien que le balancement se fait bien entre les deux nodes de notre Cluster

DRBD/Apache.

Pour finir, relancez Heartbeat sur node 1. Rechargez la page web et le texte :

Page 12: Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

12

Sur node 2 vous pouvez voir avec la commande suivante que le service Apache n’est pas démarré.

Heartbeat démarre et arrête automatiquement le service Apache :

/etc/init.d/apache2 status

Maintenant, nous allons installer MySQL.

8. Installation de Mysql On commence par installer MySQL Server sur les deux nodes avec la commande :

aptitude install mysql-server

Après l’installation de MySQL, nous allons désactiver sur les deux nodes le démarrage 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 node 1 nous allons déplacer le dossier par défaut qui contient les bases de données dans le

répertoire /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 node 2 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 node 1, démarrez MySQL avec la commande :

/etc/init.d/mysql start

Nous allons créer une base de données appelée testDrbd en ligne de commande :

Page 13: Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

13

Maintenant, nous allons configurer Heartbeat sur les deux nodes pour démarrer automatiquement

MySQL.

Éditez le fichier /etc/ha.d/haresources et rajoutez mysql à la fin de la ligne comme ceci :

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 node 1 stoppez Heartbeat avec la commande :

/etc/init.d/heartbeat stop

Allez sur node 2 et vérifiez que :

o Node 2 est bien devenu le node primaire et que /dev/drbd0 est bien monté dans /mnt/ :

drbd-overview

o l’IP balancée est bien sur node 2 :

ifconfig

o mysql est bien lancé sur node 2 :

Page 14: Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

14

/etc/init.d/mysql status

Si tout ok, connectez-vous au serveur MySQL et vérifiez que la base de données est bien présente :

On voit bien que la base de données est bien présente.

À partir de maintenant, vous avez un cluster Apache, PHP, MySQL Actif / Passif.

9. Installation de PHPMyAdmin On installe PHPMyAdmin afin d’avoir une interface web permettant la gestion de nos bases de

données.

On commence par installer PHPMyAdmin sur les deux nodes avec la commande :

aptitude install phpmyadmin

Il faudra cocher la case « Apache2 » puis faite OK comme ceci :

Page 15: Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

15

Laissez l’option « oui » :

Un mot de passe vous est demandé : entrez votre mot de passe et confirmez celui-ci à la question

d’après.

Vérifiez le bon fonctionnement de PhpMyAdmin en vous connectant avec votre navigateur en vous

connectant à l’adresse IP balancée par le cluster :

http://192.168.1.13/phpmyadmin

Page 16: Tutoriel d’installation : DRBD et Heartbeat · PDF file1 Tutoriel d’installation : DRBD et Heartbeat Sommaire Avant-Propos

16

Vous pouvez maintenant vous connecter à l’aide de vos identifiants préalablement renseignés afin

d’ajouter des bases de données, en supprimer, etc.

ATTENTION: Si vos rajoutez des modules PHP où Apache, il faut les installer sur les deux nodes.

Vous pouvez aussi faire un lien symbolique de votre fichier php.ini vers votre partition DRBD si vous

modifiez ce fichier.