Vous êtes sur la page 1sur 32

La haute disponibilit via

Heartbeat

Mehdi Driba El Filali

Ce que lon va voir


2

Gnralits sur la haute disponibilit


Concepts matriser
Exemples dapplications
Heartbeat par la pratique

Haute Disponibilit

Principes
gnraux

Haute Disponibilit

La haute disponibilit, cest quoi


4

On appelle haute disponibilit toutes les dispositions


visant garantir la disponibilit d'un service et son bon
fonctionnement 24H/24.
(www.commentcamarche.net)

Haute Disponibilit

Pourquoi faire ?
5

Un grand nombre dentreprises proposent des


services leurs salaris, clients, etc.
Ces services peuvent pnaliser lentreprise en cas de
dfaillances (commandes en ligne par exemple)

Employs au chmage technique


Clients mcontents passant la concurrence

Manque gagner pour lentreprise (1/250me des


bnfices par jour darrt)

Haute Disponibilit

Comment peut-on agir ?


6

Le terme Haute disponibilit couvre un grand


nombre de domaines :

Manipulations des serveurs chaud :

Reconfiguration des services


Sauvegarde des donnes,

Redondance du matriel
Rpartition dynamique des donnes (RAID, etc.)
Stockage des donnes un emplacement physique diffrent
Plan de secours
Fonctionnement en mode dgrad (fournir un service jug
indispensable sans ses ressources habituelles humaines ou
matrielles)

Haute Disponibilit

Domaine de dfinition
7

Un seul point tudi ici :


la dtection automatique d'une dfaillance d'un serveur, et la
reprise du service qu'il offrait par d'autres machines.
Ralis par le programme Heartbeat, faisant partie de la
suite The Linux Virtual Server (LVS)

Question importante :
Ai-je besoin dune seule machine active pour
rpondre tous les clients, ou de plusieurs
simultanment ?

Haute Disponibilit

Concepts
matriser

Haute Disponibilit

Si une seule machine suffit (1)


9

Une machine active, qui rpond aux clients


Une machine configure lidentique :

service arrts
surveillant la premire en permanence

Lorsquelle dtecte une panne :


elle lance ses services
elle rpond aux clients la place de lautre

Si la premire est rpare :


Soit elle se met son tour en coute
Soit elle demande reprendre la main
Haute Disponibilit

Si une seule machine suffit (2)


10

Une mthode de surveillance :

Haute Disponibilit

la tachycardie (heartbeat)

Sil faut plusieurs machines (1)


11

Il faut :
Plusieurs serveurs proposant le mme service
Pouvoir rediriger les requtes des clients de manire
quitable sur tous les serveurs

1re approche : Round Robin DNS

Haute Disponibilit

Sil faut plusieurs machines (2)


12

On peut faire mieux : le rpartiteur de charge


En Anglais : load balancer
Prendre en compte de la puissance des machines, le nombre
dutilisateurs dj connects, etc.

Haute Disponibilit

Algorithmes de load balancing


13

Plthore dalgorithmes.
Ceux utiliss par The Linux Virtual Server (LVS)
:

Least-Connection
Weighted Least Connection
Round-Robin
Weighted Round-Robin
Locality-Based Least-Connection
Destination-Hashing
Source-Hashing
Short Expected Delay
Never Queue

Haute Disponibilit

Cela fonctionne mais


14

Gestionnaire unique = point de faiblesse


requtes ?
Gestionnaire

Client

Machines proposant
le mme service

Au final :
requtes

rpartition
de charge

Client
Machines proposant
le mme service
Gestionnaires
(en haute disponibilit)

Haute Disponibilit

Comment le gestionnaire redirige les clients ?


15

Machine active / machine passive


requte
Client

IP normale
IP virtuelle
Machine active

Plusieurs machines actives


IP virtuelle = xxx

Client
Haute disponibilit

Routage Simple
Encapsulation IP-IP
N.A.T.
Haute Disponibilit

Services

16

Exemples
dapplications
En thorie, il n'y a pas de diffrences entre la thorie et
la pratique. En pratique, il y en a.
(Chuck Reid)
Haute Disponibilit

Exemple : relais de messagerie


17

Echanges Haute disponibilit

Serveur mail n1
(actif)

Haute Disponibilit

Serveur mail n2
(passif)

Exemple : Serveurs MySQL


18

Echanges Haute disponibilit

Serveur SQL n1
(actif)

Serveur SQL n2
(passif)

NFS : Accs aux


donnes de MySQL

Serveur de fichiers

Haute Disponibilit

Exemple : Serveurs Web


19

Echanges Haute disponibilit

Serveur web n1
(actif)

Serveur web n2
(passif)
NFS. Accs aux :
- pages web
- donnes du site
- fichiers de sessions

Serveur de fichiers

Haute Disponibilit

Plus dur : serveurs de fichiers


20

Serveur NFS
(inactif)

Serveur NFS
lecture criture
Rplication

DRBD
lecture criture

Haute Disponibilit

DRBD
criture

Partition

Partition

Serveur 1

Serveur 2

21

Heartbeat par la
pratique
The box said: "install on Windows 95, NT 4.0 or better".
So I installed it on Linux.
(Anonyme)
Haute Disponibilit

Prparation de lenvironnement
22

Prparation de lenvironnement :
# hostnamectl set-hostname NOM

Editer le fichier hosts : il faut ajouter l@ip virtuelle


quon va utiliser et les nodes.
# nano /etc/hosts
@ip
Nom_machine

Editer le fichier interfaces, les interfaces doivent tre static :


# nano /etc/network/interfaces

Haute Disponibilit

Prparation de lenvironnement
23

Exemple de fichier interfaces


auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.2.10
netmask 255.255.255.0
gateway 192.168.2.1
dns-nameservers 8.8.8.8 8.8.4.4
auto eth0:0
iface eth0:0 inet static
address 172.16.10.100
netmask 255.255.255.0

Haute Disponibilit

Prparation de lenvironnement
24

Utiliser la commande suivante pour pouvoir


dupliquer ladresse virtuelle sur le rseau ( faire
aprs linstallation des packages Apache et
heartbeat):
# echo "net.ipv4.ip_nonlocal_bind=1" >> /etc/sysctl.conf

Redmarrer les services rseau :


# service networking restart

Haute Disponibilit

Prparation de lenvironnement
25

Installation dApache 2
# apt-get install apache2

Tester linstallation en tapant localhost dans un


navigateur

Changement de lindex de la page web :


# nano /var/www/index.php

Haute Disponibilit

Sous le capot dheartbeat (1)


26

Installation (sous Ubuntu) :


# apt-get update
# apt-get install heartbeat

Extraire les fichiers ha.cfg, haressources


# cd /usr/share/doc/heartbeat
# gunzip ha.cfg haressources

Copier les fichiers dans /etc/ha.d


# cp auhtkeys ha.cfg haressources /etc/ha.d

Haute Disponibilit

Sous le capot dheartbeat (2)


27

/etc/ha.d/ha.cf

logfacility
keepalive
deadtime
bcast
node
auto_failback

Haute Disponibilit

local0
2
10
eth0
##nom_pc1## ##nom_pc2##
no

Sous le capot dheartbeat (3)


28

/etc/ha.dt/authkeys
auth 3
3 md5 ###mot_de_passe###

3 mthodes de protection
crc
md5
sha1

(rseaux srs, comme un cble crois)


(bonne alternative de scurit)
(meilleure scurit, utilise du temps CPU)

Ne pas oublier :
# chmod 600 /etc/heartbeat/authkeys

Haute Disponibilit

Sous le capot dheartbeat (4)


29

/etc/ha.d/haresources
##nom_pc1## action1 action2 ... actionN

Pleins dactions diffrentes possibles.

Paramtres dune option spars par 4 points :


::

Haute Disponibilit

Sous le capot dheartbeat (5)


30

Activer une adresse IP virtuelle :


pc1 IPaddr::192.x.x.x/24/eth0

Monter un systme de fichiers local :


pc1 Filesystem::/dev/sda1::/mnt/scsi::vfat

Monter un systme de fichiers distant (NFS)


pc1 Filesystem::192.x.x.x:/src::/mnt/dest::nfs

Monter un systme de fichiers distant (NFS) avec des options


pc1 Filesystem::192.x.x.x:/src::/mnt/dest::nfs::rsize=8192

Haute Disponibilit

Sous le capot dheartbeat (6)


31

Et enfin : lancer un service :


pc1 apache2

Restrictions :

Doit tre dans /etc/init.d/ (ou /etc/heartbeat/ressource.d/)

Doit reconnatre les arguments start et stop

Ne doit PAS tre lanc automatiquement au dmarrage de Linux :


# update-rc.d f apache2 remove

Haute Disponibilit

Rfrences / Annexes
32

Heartbeat :
http://linux-ha.org/ConfiguringHeartbeat

Configurer Heartbeat (Ubuntu) :


http://doc.ubuntu-fr.org/serveur/heartbeat

The Linux Virtual Server (LVS) :


http://www.linuxvirtualserver.org/

Mcanismes de rpartition de charges de LVS :


http://www.ultramonkey.org/3/lvs.html

Mcanismes de redirection IP de LVS :


http://www.linuxvirtualserver.org/how.html
http://www.ultramonkey.org/3/lvs.html

Cluster Apache :
http://www.howtoforge.com/high_availability_loadbalanced_apache_cluster

Cluster NFS :
http://www.howtoforge.com/high_availability_nfs_drbd_heartbeat

Discussions sur la haute disponibilit :


http://lea-linux.org/cached/index/Leapro-pro_sys-dispo.html

Haute Disponibilit

Vous aimerez peut-être aussi