E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 1
Fichier de configuration de la premiére situation
Mise en œuvre d’une solution de haute disponibilité, et de
répartition des charges avec le service Debian HAPROXY et une
tolérance au panne avec DRBD et OCFS.
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 2
SOMMAIRE
Description de la situation professionnelle Pages 3 à 4
Contexte
Activités
Schéma du réseau
Nommage et adressage des machines Page 5
Préparation du serveur HAPROXY Pages 6 à 8
Modification de haproxy.cfg
Mise en place de DRBD sur les deux serveurs Web Pages 9 à 12
Mise en place de OCFS2 sur les deux serveurs Pages 12 à 17
Script d’automatisation Page 18
Redirection d’apache vers /mnt/Donnees_Web Pages 19
Problème survenue Page 20
Test de validation Page 20
Situation professionnelle
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 3
Contexte :
Cette situation professionnelle se base sur les différents TP réalisé en seconde année de
BTS SIO.
La Société de Services Informatiques ARFLO (M2L), dont le cœur de métier est la fourniture
de service, la conception et la maintenance de solutions d’infrastructure, a été chargée par
une société de vente à distance, spécialisée en vente de matériel informatique grâce à son
site internet, de mettre en place une solution technique permettant de rendre hautement
disponible son site internet, pour éviter toutes perte de bénéfice lors de panne du site.
Activités :
Production de services
A1.1.1 Analyse du cahier des charges d'un service à produire
A1.1.3 Étude des exigences liées à la qualité attendue d'un service
A1.2.4 Détermination des tests nécessaires à la validation d'un service
A1.3.4 Déploiement d'un service
Fourniture de services
A2.1.2 Évaluation et maintien de la qualité d'un service
Conception et maintenance de solution d’infrastructure
A3.1.1 Proposition d'une solution d'infrastructure
A3.2.1 Installation et configuration d'éléments d'infrastructure
A3.3.1 Administration sur site ou à distance des éléments d'un réseau, de serveurs,
de services et d'équipements terminaux
Gestion du patrimoine informatique
A5.2.2 Veille technologique
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 4
HA
PR
OX
Y
Serve
ur
WEB
2
Serve
ur
WEB
1
Switch
19
2.1
68
.74
.50
19
2.1
68
.74
.11
0
19
2.1
68
.74
.11
2
17
2.1
6.7
4.5
0
Le bu
t de cette situ
ation
est de créer u
n serveu
r de rép
artition
des ch
arges tels qu
e H
AP
RO
XY, q
ui p
ou
rra aussi faire h
aute d
ispo
nib
ilité, car en cas d
e pan
ne d
e l’un
des d
eux
serveur, le seco
nd
pren
d le relais im
méd
iatemen
t.Le raid
1 su
r IP sera m
is en p
lace via DR
BD
et OC
FS, c’est a dire q
ue lo
rsqu
e les do
ssier du
site sero
nt m
od
ifié sur l’u
n d
es deu
x serveurs, ils sero
nt au
tom
atiqu
emen
t répliq
ué su
r le seco
nd
serveur w
eb.
Ces d
eux systèm
es perm
ettent u
ne h
aute d
ispo
nib
ilité du
site intern
et et un
e répartitio
n
des ch
arges po
ur d
e meilleu
res perfo
rman
ce du
site intern
et de l’en
treprise.
Le site web
est à placer d
ans la racin
e de l’u
n d
es deu
x serveur w
eb : /m
nt/D
on
ne
es_w
eb
Po
ste d
e travail
17
2.1
6.7
4.2
0
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 5
Nommage et adressage des machines :
E4 RDC Web1 DC
Nom de compte : Web1 MDP : Sisr2013
Nom de pc : Web1-12
Adresse : 192.168.74.110 Réseau interne
E4 RDC Web2 DC
Nom de compte : Web2 MDP : Sisr2013
Nom de pc : Web2-12
Adresse : 192.168.74.112 Réseau interne
E4 RDC HAPROXY DC
Nom de compte : sisr-12 MDP : Sisr2013
Nom de pc : haproxy
Adresse : 172.16.74.50 et 192.168.74.50 Réseau interne
Sur chaque serveur il faudra modifier le fichier : /etc/hosts Et rajouter :
192.168.74.50 haproxy
192.168.74.110 Web1-12
192168.74.112 Web2-12
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 6
Préparation du serveur HAPROXY
Haproxy est un logiciel libre de répartition de charge et de tolérance aux
pannes.
Création des machines sur scvmm
Paramétrage adressage et nommage des trois machines
Vérification des tests de communication entre les trois machines avec la commande « ping »
Installation de haproxy : « Apt-get install haproxy » sur le pc « haproxy »
Puis modification du fichier haproxy.cfg qui se trouve dans : /etc/haproxy/
Haproxy.cfg
DE BASE :
listen monproxy 172.16.74.30:80
mode http
balance roundrobin
option httpclose
option httpchk HEAD /index.html HTTP/1.0
server web1 192.168.74.10:80 check
server web2 192.168.74.20:80 check
Weight :
defaults
mode http
option httpclose
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 7
frontend proxypublic
bind :80
default_backend fermeweb
backend fermeweb
balance roundrobin
option httpchk HEAD /index.html HTTP/1.0
server web1 192.168.74.10:80 weight 100 check
server web2 192.168.74.20:80 weight 50 check
stats uri /stats
stats auth apo:mdpstats
COOKIES :
Defaults
mode http
option httpclose
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
Frontend proxypublic
bind :80
default_backend fermeweb
backend fermeweb
balance roundrobin
cookie QUELSERVEUR insert indirect
option httpchk HEAD /index.html HTTP/1.0
server web1 192.168.74.10:80 cookie W1 check
server web2 192.168.74.20:80 cookie W2 check
stats uri /stats
stats auth apo:mdpstats
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 8
FILTRE AVEC LES ACL
Defaults
mode http
option httpclose
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
stats uri /stats
stats auth apo:mdpstats
Frontend proxypublic
bind :80
acl acces_glpi path_beg /glpi/
Use_backend adminglpi if acces_glpi
default_backend fermeweb
backend fermeweb
balance roundrobin
cookie QUELSERVEUR insert indirect
option httpchk HEAD /index.html HTTP/1.0
server web1 192.168.74.10:80 cookie W1 check
server web2 192.168.74.20:80 cookie W2 check
backend adminglpi
option httpchk HEAD / HTTP/1.0
server web3 192.168.100.100:80 check
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 9
DRBD
DRBD (Distributed Replicated Block Device) est un outil qui permet de
synchroniser (par réplication) des périphériques de stockage (disque dur,
partition, volume logique) entre deux serveurs via le réseau.
DRBD s'apparente à du RAID1 sur IP. Quand une écriture a lieu sur le disque
du serveur maître, l'écriture est simultanément réalisée sur le serveur
esclave. La synchronisation est faite au niveau de la partition. DRBD n'assure
aucune fonction relative à la sécurité. Il n'y a ainsi pas de mécanisme
d'authentification, de contrôle d'accès, de confidentialité ou d'intégrité des
données échangées sur le réseau.
Premièrement il faut deux disques durs au format ext3 de taille identique.
En ligne : fdisk –l
Installer le paquet drdb8 : apt-get install drbd8-utils
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 10
Puis modifier le fichier : /etc/drbd.d/global_common.conf :
global { usage-count yes; # minor-count dialog-refresh disable-ip-verification } common { protocol C; handlers { } startup { degr-wfc-timeout 120; become-primary-on both; # wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb; } disk { # on-io-error fencing use-bmbv no-disk-barrier no-disk-flushes # no-disk-drain no-md-flushes max-bio-bvecs } net { allow-two-primaries; after-sb-0pri discard-zero-changes; after-sb-1pri discard-secondary; after-sb-2pri disconnect; # snd―buf-size rcvbuf-size timeout connect-int ping-int ping-timeout
max-buffers # max-epoch-size ko-count allow-two-primaries cram-hmac-alg
shared-secret # after-sb-0pri after-sb-1pri after-sb-2pri data-integrity-alg no-tcp-cork } syncer { verify-alg md5; rate 1000M; # rate after al-extents use-rle cpu-mask verify-alg csums-alg } }
Creation de : /etc/drbd.d/cluster.res:
resource r0 { protocol "C"; on Web1-12 { device /dev/drbd1;
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 11
disk /dev/sdb1; address 192.168.74 .110:7789; meta-disk internal; } on Web2-12 { device /dev/drbd1; disk /dev/sdb1; address 192.168.74.112:7789; meta-disk internal; } }
Il faut effectuer les commandes suivantes :
drbdadm create-md r0 pour initialiser la ressource r0 définie dans le fichier cluster.res. /etc/init.d/drbd start pour démarrer le service drbd, même si il y a une erreur 17 il faut continuer. drbdadm syncer r0 pour initialiser les paramètres de synchronisation. drbdadm connect r0 pour connecter la ressource r0 au serveur. cat /proc/drbd permet d’afficher l’état de la ressource r0.
Sur le serveur Web1-12 il faut lancer les commandes :
drbdadm -- --overwrite-data-of-peer primary r0 Pour initialiser la synchronisation des données entre les deux serveurs. cat /proc/drbd
Pour vérifier que le serveur est connecté et déclaré primary. drbdadm primary r0
Pour forcer la ressource r0 à primary.
Puis sur le serveur Web2-12 il faut lancer les commandes :
drbdadm primary r0 Pour forcer la ressource r0 à primary cat /proc/drbd Pour vérifier que les serveurs sont connectés et déclarés primary
Drbd est correctement installé et configuré.
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 12
OCFS
Ocfs veut dire : Oracle Cluster File System
Ocsf2 est de système de fichiers en cluster qui autorise les accès simultanés en lecture et surtout en écriture des fichiers à partir de plusieurs nœuds (serveurs). Tout simplement il autorise le partage d'un même disque réseau en lecture et écriture.
Nous allons l’utiliser pour formater les périphériques disque synchronisés par
DRBD. Ainsi les serveurs Web pourront voir leur support disque mis à jour
dès que l’un d’eux sera modifié.
A. Sur chaque serveur web :
Installer le paquet ocsf2-tools : apt-get install ocfs2-tools
Installer le paquet ocsf2console : apt-get install ocfs2console
Configurer le fichier : /etc/ocfs2/cluster.conf
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 13
Ce fichier doit être configuré à l’identique sur les deux serveurs web
Exemple de contenu de /etc/ocsf2/cluster.conf :
cluster: node_count = 2 name = sisr node: ip_port = 7777 ip_address = 192.168.74.110 number = 1 name = Web1-12 cluster = ocfs2 node: ip_port = 7777 ip_address = 192.168.74.112 number = 2 name = Web2-12 cluster = ocfs2
Ces manipulations doivent être effectuées à l’identique sur les deux serveurs web
Lancer les commandes : dpkg-reconfigure ocfs2-tools pour configurer les nœuds du cluster définis dans le fichier : /etc/ocfs2/cluster.conf Répondre aux questions comme montré ci-dessous, accepter les options par défaut.
Configuration de ocfs2-tools.
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 14
Poursuivre même si il y a l’erreur 164
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 15
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 16
service ocfs2 restart service o2cb restart service o2cb xxxxxxx pour piloter le service où xxxxxxx peut prendre la valeur :
{start|stop|restart|force-reload|enable|disable|configure |load|unload|online|offline|force-offline|status} Exemple : service o2cb status doit répondre :
Formatage du système de fichiers au format OCFS2 mkfs.ocfs2 /dev/drbd1 Pour formater la ressource /dev/drdb1 au format ocsf2
Remarque très importante la commande n’est surtout pas à faire sur le
deuxième serveur web !
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 17
Montage du système de fichiers OCFS2 mkdir /mnt/Donnees_Web Pour créer un répertoire sur le système de fichiers du serveur Web sur lequel on « montera » le système de fichier déclaré par la ressource DRBD au format OCSF2. mount.ocfs2 /dev/drbd1 /mnt/Donnees_Web Pour monter la ressource sur l’arborescence et la rendre disponible.
Maintenant, toute modification du système de fichier /dev/drbd1 sera synchronisé sur les deux nœuds par DRBD
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 18
Script à exécuter au redémarrage des serveurs Web : La ressource DRBD doit être impérativement connectée et déclarée primary avant le lancement des services ocfs2 puis o2cb. Pour être sûr que le système prenne en compte la ressource DRBD comme ressource PRIMARY et que le système de fichier OCSFS2 /dev/drbd1 soit bien « monté » sur l’arborescence : On va générer le script suivant : /etc/init.d/mountdrbd.sh
Puis le rendre exécutable et créer le lien symbolique vers /etc/rc3.d/S99mountdrbd.sh Chmod +x /etc/init.d/mountdrbd.sh ln -s /etc/init.d/mountdrbd.sh /etc/rc3.d/S99mountdrbd.sh Ainsi ce script sera exécuté au démarrage sur chaque serveur Web.
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 19
Pour rediriger apache vers /mnt/Donnees-Web
Sur le serveur Web1 :
Copier le fichier index /var/www/index.html vers /mnt/Donnees_Web :
cp /var/www/index.html /mnt/Donnees_Web
Modifier le fichier /etc/apache2/sites-available/default : La directive DocumentRoot doit ponter vers : /mnt/Donnees_web
Sur le serveur Web2 :
Modifier le fichier /etc/apache2/sites-available/default : La directive DocumentRoot doit ponter vers : /mnt/Donnees_web
Vérifier la synchronisation dans le répertoire
/mnt/Donnees_Web par la présence du fichier index.html. La synchronisation ce fait parfaitement.
On peut voir également que lorsqu’on fait « service drbd status » Donnees_Web est bien monté, et
est de type ocfs2 :
Modifier le contenu du fichier HTML à votre convenance afin que les deux serveurs web affichent une page Web identique.
Vérifiez la prise en compte de la modification sur le serveur Web1.
On peut voir que tout marche, lorsqu’un dossier est créé sur l’un des deux
serveurs, il est automatiquement répliqué sur le second.
E4 HAPROXY-DRBD-OCFS
DEVILLE CLEMENT 20
Problème survenue : Lors de la création de fichier il est préférable de créer les droit du dossier « chmod 777
dossier », puisque avec nautilus il y a des surprises.
Les cartes réseaux ne sont pas toujours celles que l’on croit :
Pour modifier les cartes réseaux, aller dans /etc/udev/rules.d/70-persistent-net.rules
Dans NetworkManager.conf, il faut regarder si les adresses Mac correspondent bien, souvent
plusieurs autres cartes sont présentes, il faut donc les supprimer, mais ne pas oublier de
laisser une virgule a la fin.
Test de validation
On peut voir que depuis un poste du réseau, si l’on entre l’adresse 172.16.74.50, l’adresse de
haproxy, on accède au site internet, de plus si l’un des deux serveurs web tombe en panne, le second
prend le relais.
De plus l’lorsqu’un fichier est modifier sur l’un des deux serveurs web, c’est
automatiquement répliqué sur le second serveur web via DRBD et OCFS2.
Top Related