Вы находитесь на странице: 1из 16

STE PUZZLE

Haute disponibilit et
rpartition de charge

Haute disponibilit de serveur WEB avec rpartition de charge et tolrance aux pannes

STE PUZZLE

Projet : Haute disponibilit de serveur WEB avec rpartition de charge et tolrance aux
pannes
A) Introduction
Dans le cadre de la STE Puzzle, il est primordial de bnficier dune solution de haute
disponibilit pour les serveurs web. Celle-ci doit comprendre :
- Une rpartition de charge entre deux serveurs WEB
- Une tolrance aux pannes
- Un cluster du serveur HaProxy pour la continuit de service
B) Description de la demande
1- Les objectifs:
- Maquettage de la solution
- Dployer et configurer les serveurs sous LINUX
2- Produit du projet
- Haute disponibilit installe et fonctionnelle
- Une documentation dinstallation et de configuration
3- Critres d'acceptabilit et de rception
- Une solution rpondant aux objectifs de stepuzzle
C) Contraintes
- Aucune
D) Droulement du projet
1- Planification :
- Maquettage de la solution sur serveurs physiques : un serveur maitre, un serveur esclave et
deux serveurs web
2- Ressources :
Les documentations disponibles, Internet, livres, magazines.

TEMPLIER Alexandre

Haute disponibilit de serveur WEB avec rpartition de charge et tolrance aux pannes

STE PUZZLE

Maquettage du projet

TEMPLIER Alexandre

Haute disponibilit de serveur WEB avec rpartition de charge et tolrance aux pannes

STE PUZZLE

Configuration IP des postes


Nom de la machine
Srvlamp1
Srvlamp2
HAproxy
HAproxy cluster

Systme
dexploitation
Ubuntu 12.04
Ubuntu 12.04
Ubuntu 12.04
Ubuntu 12.04

Rseau

Rle de la machine

1 interfaces
1 interfaces
2 interfaces
2 interfaces

Serveur Web
Serveur Web
Haproxy
Cluster Haproxy

1re tapes: Configuration rseau des 4 machines

-Srvlamp1

-Srvlamp2

TEMPLIER Alexandre

Haute disponibilit de serveur WEB avec rpartition de charge et tolrance aux pannes

STE PUZZLE

-HAproxy

-HAproxy cluster

TEMPLIER Alexandre

Haute disponibilit de serveur WEB avec rpartition de charge et tolrance aux pannes

STE PUZZLE

- 2me tapes: installation des serveurs WEB


Excuter cette commande afin dinstaller les paquets pour le serveur LAMP :

Puis cette commande pour crer un lien symbolique pour PHPmyadmin :

Pour personnaliser les serveurs web, on va supprimer compltement le fichier


/var/www/index.html sur les deux serveurs web

Puis on cre le fichier /var/www/index.php sur les deux serveurs

Voici le script PHP :

Ce fichier va nous indiquer sur quel serveur web nous sommes connects. Le code php
rcupre deux variables (le nom de la machine et son adresse IP).

TEMPLIER Alexandre

Haute disponibilit de serveur WEB avec rpartition de charge et tolrance aux pannes

STE PUZZLE

Sur le fichier /etc/hosts, on ajoute la rsolution DNS en local sur les deux serveurs:
-Srvlamp1

-Srvlamp2

TEMPLIER Alexandre

Haute disponibilit de serveur WEB avec rpartition de charge et tolrance aux pannes

STE PUZZLE

- 3me tapes : Configuration des serveurs HAproxy


Excuter ces commandes sur les deux serveurs WEB :

Pour dmarrer le service Haproxy, on utilise la commande :

Mais pour linstant, rien ne va se passer.


Il faut aller sur le fichier /etc/default/haproxy et modifier ENABLED=0 par ENABLED=1.
Le fichier de configuration de HAproxy est /etc/haproxy/haproxy.cfg, on le sauvegarde avec la
commande suivante :

Puis on modifie la configuration par dfaut de HAproxy, on la remplace par la suivante :

TEMPLIER Alexandre

Haute disponibilit de serveur WEB avec rpartition de charge et tolrance aux pannes

STE PUZZLE

On voit sur le fichier de configuration :


-Les statistiques de HAproxy sont sur ladresse http://IP_Virtuelle/statshaproxy (Utilisateur:
UserStats, Mot de passe : MotDePasseStats)
-Seulement deux serveurs Web (on peut en rajouter plusieurs)
Pour assurer une haute disponibilit de HAproxy, on installe Heartbeat sur les deux serveurs
HAproxy (Haproxy sera le matre et Haproxy cluster sera lesclave).

TEMPLIER Alexandre

Haute disponibilit de serveur WEB avec rpartition de charge et tolrance aux pannes

STE PUZZLE

- 4me tapes: installation et configuration de heartbeat


Sur les deux machines (Haproxy et Haproxy cluster)

On cre le fichier /etc/ha.d/ha.cfg

On met la configuration suivante sur les deux serveurs :

On cre le fichier /etc/ha.d/authkeys

En mettant dedans :

TEMPLIER Alexandre

10

Haute disponibilit de serveur WEB avec rpartition de charge et tolrance aux pannes

STE PUZZLE

On donne ensuite les droits sur les fichiers ha.d et authkeys :

On redmarre heartbeat sur les deux machines :

Un fichier /var/lib/heartbeat/crm/cib.xmlest cr automatiquement lors du redmarrage de


Heartbeat
On modifie ce fichier grce aux commandes suivantes :
Uniquement sur le Haproxy1, on met la commande suivante :

Cette commande permet dsactive le STONITH, qui correspond un mcanisme permettant


lextinction propre du serveur.
Puis la commande suivante :

Cette commande permet de dsactiver le quorum, qui ne sert pas ici car nous disposons que de
deux serveurs.
Nous passons maintenant la configuration de lip virtuelle (IPFailover), on effectue la
commande suivante :

Dornavant nous devons configurer les ressources haproxy, pour ce faire nous allons entrer en
mode interactif pour configurer plusieurs ressources.
Pour rentrer en mode interactif, on tape la commande crm configure pour quun nouveau
prompt apparaissent crm (live) configure#

TEMPLIER Alexandre

11

Haute disponibilit de serveur WEB avec rpartition de charge et tolrance aux pannes

STE PUZZLE

La commande suivante nous permet dajouter la ressource dsire, cette commande est :

Puis commit et quit.


On va crer un groupe de ressources pour que les deux ressources (haproxy et IPFailover)
soient dmarres sur les deux serveurs, on re-rentre en mode interactif comme prcdemment et
maintenant nous entrons la commande suivante :

Puis de nouveau, commit et quit.


Afin de voir si Heartbeat a t bien configurer, on tape dans le terminal la commande crm_mon
Cette commande nous affiche le rsultat suivant :

Cette capture dcran nous montre :


- Que nos deux serveurs sont en ligne
- Quil y a deux nuds ainsi que deux ressources de configures
- Que le groupe haproxy_VIP est bien cr

TEMPLIER Alexandre

12

Haute disponibilit de serveur WEB avec rpartition de charge et tolrance aux pannes

STE PUZZLE

- 5me tapes: installation et configuration de DRBD


Prrequis : Avoir une partition pour DRBD et lavoir Monter, ici la partition utiliser est
/dev/sda3, monter sur /dev/drbd0.
Sur les deux machines, on installe le service DRBD avec la commande suivante :

Une fois linstallation termine, on cre deux fichiers avec la commande suivante :

Cette commande cre le fichier drbd1.res dans le dossier /etc/drbd.d

Cette commande cre le fichier global_common.conf dans le dossier /etc/drbd.d


Dans le fichier drbd1.res, on met la configuration suivante :

Sur cette configuration nous pouvons voir :


- La dfinition du nom de la ressources, ici R0
- Sur quel disque on monte le service, ici /dev/sda3
- Ladresse des serveurs utiliser pour la synchronisation
TEMPLIER Alexandre

13

Haute disponibilit de serveur WEB avec rpartition de charge et tolrance aux pannes

STE PUZZLE

Dans le fichier global_common.conf, on met la configuration suivante :

Ensuite, on arrte le service drbd sur les deux serveurs, pour ce faire nous utilisons la
commande /etc/init.d/drbd stop.

TEMPLIER Alexandre

14

Haute disponibilit de serveur WEB avec rpartition de charge et tolrance aux pannes

STE PUZZLE

Les commandes suivantes sont effectuer la suite, sur chaque serveur. Les erreurs annonces
sont normales et ne poseront aucun problme par la suite.
- drbdadm creat-md ro permet dinitialiser la ressource r0 dfinie dans le fichier
drbd1.res
- /etc/init.d/drbd start permet de dmarrer le service DRBD
- drbdadm connect r0 permet de connecter la ressource r0 au serveur
On va maintenant initialiser la synchronisation des donnes et mettre la ressource r0 des deux
serveurs en primary grce aux commandes suivantes :
Sur le srvhaproxy1 :
.
drbdadm -- --overwrite-data-of-peer primary r0 permettant dinitialiser la
synchronization entre les deux serveurs ( nexcuter que sur un seul serveur car elle initialise
la synchronisation sur les deux serveurs)
.
drbdadm primary r0 permet de forcer la ressource r0 passer en primary
Sur le srvhaproxycluster :
.

drbdadm primary r0

Et voila, DRBD est maintenant configurer, la commande cat /proc/drbd nous permet de voir que
la synchronisation est bien mise en place
La commande cat /proc/drbd nous donne :

TEMPLIER Alexandre

15

Haute disponibilit de serveur WEB avec rpartition de charge et tolrance aux pannes

STE PUZZLE

RESOURCES :
SITES :
- https://portfoliorivaud.wordpress.com/mes-activites/tp-ppe/installation-etconfiguration-dune-solution-de-haute-disponibilite-du-service-web/
- http://denisrosenkranz.com/tutoha-mettre-en-place-deux-serveurs-haproxy-actifpassif-avec-heartbeat/
- http://doc.ubuntu-fr.org/lamp
AUTRES :
- Documentation de Mohammed Boufenchoucha sur la haute disponibilit de serveur
WEB.

TEMPLIER Alexandre

16

Оценить