Vous êtes sur la page 1sur 5

SIO2 2019 / 2020

SISR4

TP– Heartbeat
Contextualisation:
Au sein du lycée Saint Luc, il y a un portail intranet qui permet d’assurer le
service d’appel des élèves à chaque heure de cours. Le service est donc très
souvent utilisé à des heures précises. Pour éviter la non-réponse du service, nous
allons mettre en place une solution de haute disponibilité avec heartbeat.

Au cours de ce TP, nous allons découvrir comment mettre en œuvre les mécanismes
de la haute disponibilité. Cela sous-entend que l'on prendra connaissance de
l'intérêt de ces mécanismes, comprendre la façon de les mettre en oeuvre, prendre
connaissance des concepts utilisés, savoir les mettre correctement en place de
façon indépendante ou conjointement et en dégager les avantages et inconvénients
liés à ces concepts.

Plan d'adressage

Machines Adresse Masque

Client 172.16.40.1 /16

SRV1 172.16.40.10 /16

SRV2 172.16.40.40 /16

Sources :

https://blog.foulquier.info/tutoriels/systeme/mise-en-place-dun-cluster-heartbeat-
apache

https://www.it-connect.fr/clustering-et-haute-disponibilite-sous-linux-avec-heartbeat
%EF%BB%BF/

http://www.sebastien-han.fr/blog/2011/07/04/introduction-au-cluster-sous-linux/

https://www.supinfo.com/articles/single/3318-mise-place-cluster-avec-heartbeat-
debian

[1/5]
M.FENETRE
SIO2 2019 / 2020
SISR4

Mise en place d’un solution de haute disponibilité

1) Création et paramétrage des serveurs web.


Vous allez créer 2 serveurs Web sous Linux Debian 9, le premier sera nommé
Serv1 et le second Serv2.
Une fois que les deux serveurs webs sont créés et paramétrés, nous leur
attribuons à chacun une adresse IP avec la commande suivante :
# gedit /etc/network/interfaces
Ensuite, nous leur installons le package lié à Apache2.
# apt-get install apache2
Nous décidons de modifier la page par défaut en modifiant la mention "It
Works !" en y ajoutant le nom du serveur à coté ( SRV1 et SRV2).
# gedit /var/www:index.html
Pour finir, nous tapons "localhost" dans le navigateur de chaque serveur pour
vérifier que le serveur est opérationnel.
Et enfin, nous modifions le nom des deux serveurs web avec cette commande :
# gedit /etc/hostname

2) Installation HeartBeat
HeartBeat permet de faire fonctionner de façons autonome deux ou plusieurs
serveurs afin qu'ils
forment un cluster et de ce fait, assurer la haute disponibilité des serveurs.
Pour l'installer, nous utilisons cette commande :
# apt-get install heartbeat
Pour l'installation de HeartBeat, veillons à disposer d'une adresse IP permettant
de se rendre sur internet ainsi qu'une passerelle valide. A la fin de l'installation,
tâchons de remettre les adresses IP et passerelles correspondant par rapport au
plan d'adressage. Puis, redémarrer les deux serveurs pour que les noms soient
correctement pris en compte.

[2/5]
M.FENETRE
SIO2 2019 / 2020
SISR4

3) Configuration du cluster
L'idée principale du cluster est de faire fonctionner au minimum deux machines
en même temps. Unis, elles forment un "cluster" dont chaque machine est un
node (élément) du cluster. Une fois ensemble, chacune à leur tour elles se
demandent si elles sont en vie. A partir du moment où l'une d'entre-elles ne
réponds plus, une machine prend le relais pour assurer la continuité du service.
Le cluster est accessible depuis une une seule et unique adresse IP (elle recense
le cluster avec les nodes qui le compose).
Nous commençons par déclarer le nom et l'adresse IP de l'autre serveur du
cluster dans le fichier de résolution locales de chaque serveur.
Nous éditons le fichier de résolution locale du SRV1 :
# gedit /etc/hosts
Arrivé dans le fichier, nous modifions les lignes suivantes :
127.0.0.1 localhost
127.0.1.1 SRV1
172.16.193.40 SRV2
Nous ajoutons l'adresse 127.0.1.1 afin de lui attribuer une propre adresse pour
qu'il réponde au nom de SRV1.
Puis, nous effectuons un ping de SRV1 vers SRV2.
# ping SRV2
Répéter cette operation pour le second serveur (SRV2) en inscrivant l'adresse IP
du poste SRV1, puisqu'il faut que les 2 serveurs communiquent ensemble. Grace
à ces commandes, nous pouvons désormais désigner les serveurs par leur nom à
la place de leur adresse IP.

4) Mise en place du service


Les fichiers se trouvent dans /etc/ha.d
Les 3 fichiers de configuration sont :
◦ ha.cf contient les réglages de la machine réelle
◦ haresources contient les réglages du cluster (la machine à simuler). CE FICHIER
EST LE MEME SUR TOUS LES MEMBRES DU CLUSTER
◦ Authkeys contient les modes d'authentification (utile si on utilise le réseau de
production).
Marche à suivre :
on crée les 3 fichiers sur le nœud maître
Vous prévoirez un serveur ssh pour copier les fichiers sur le nœud 2 (SRV2)

[3/5]
M.FENETRE
SIO2 2019 / 2020
SISR4

Le fichier ha.cf
Vous devez lui préciser le nom de la carte sur laquelle vont arriver les trames de
broadcast (couche 2 du modèle OSI) :
bcast nomcarte
Vous précisez où vous voulez récupérer les logs :
debugfile /var/log/XXXXX
logfile /var/log/YYYY
Vous précisez le temps entre deux battements de coeur :
keepalive 2
Vous précisez le temps avant de déclarer que le serveur est mort
deadtime 10
Vous précisez le temps avant de prévenir les logs
initdead 10
Les noms de vos serveurs
node SRV1
node SRV2
Est-ce que le patron reprend la main tout seul ?
auto_failback off

Le fichier authkeys
Ce fichier décrit les modes d'authentification. Moi j’ai choisi md5

Le fichier haresources
Attention il faut l’écrire de façon particulière car les cartes ne s’appellent plus
eth0 !! Et on le complète avec l'adresse IP virtuelle que l'on a choisis pour le
cluster : pour nous, se sera 172.16.40.30.
SRV1 Ipaddr::172.16.40.30/16/enp0s3:0
La syntaxe indique dans un premier temps le nom du serveur puis l’adresse IP du
cluster et enfin le nom de l’interface.
Une fois les deux serveurs prêts, nous redémarrons les services HeartBeat dans
l'ordre suivant :
SRV1 :
# service hearbeat stop
# service heartbeat start

[4/5]
M.FENETRE
SIO2 2019 / 2020
SISR4

SRV2 :
# service hearbeat stop
# service heartbeat start

5) Test du cluster
Pour vérifier que les deux serveurs ne sont pas isolés, nous allons configuré une
hôte client (Client) pour s'assurer qu'il puisse communiquer avec les serveurs
placés dans le cluster. Pour commencer, nous allons essayer localement le
fonctionnement du cluster en essayant de pinger, l'adresse IP virtuelle.
Dans une invite de commande, nous lançons la commande suivante :
ping 172.16.40.30
Et nous devrions arriver sur la page d'accueil du serveur web sur SRV1

Puis, nous déclenchons une panne en éteignant la carte réseau du serveur SRV1
ou encore, en arrêtant le service Heartbeat.

Au bout d'une vingtaine de seconde, nous arrivons sur la page d'accueil su


serveur web SRV2.
Nous arrivons sur la page d'accueil du serveur 2, car à la suite de la panne, c'est
le SRV2 qui a pris le relais afin d'assurer la continuité du service.Par la suite, nous
rallumons la carte réseau ou le service Heartbeat du SRV1 afin qu'il assure de
nouveau la continuité du service et que SRV2, soit de nouveau en "veille".

[5/5]
M.FENETRE

Vous aimerez peut-être aussi