Vous êtes sur la page 1sur 30

Haute disponibilité et équibrage de

charge
Dr. Yahia Benmoussa
yahia.benmoussa@gmail.com
Plan

Équilibrage de charge
– Niveau 4
– Niveau 7

Haute disponibilité

Implémentation sous Linux
Équilibrage de charge

L'équilibrage de charge (load balancing) est un élément important
lors de la mise en place de services amené à croître.

Objectifs :
– Assurer que la capacité à monter en charge soit la plus
optimale possible
– Éviter toute dégradation que ce soit en terme de performances

Le principe de base de l'équilibrage de charge
– Une distribution des tâches à des machines de façon
intelligente en fonction de l'état d'occupation des serveurs.
– La distribution doit être transparente à l’utilisateur (Client)
Équilibrage de charge


Niveau d’équilibrage de charge
– Niveau 4 (couche transport)
– Niveau 7 (couche transport)
Équilibrage de charge

Application

Présentation

Session

Transport

Réseau

Liaison

Physique
Haute disponibilité


Haute disponibilité → High availability

Ensemble des moyens mis en œuvre dans le but de
garantir la disponibilité d'un service.

Objectifs :
– Prévenir toutes les pannes informatiques qui peuvent
provoquer une perte de productivité et par conséquent
une perte d'argent.
Haute disponibilité


Tau de disponibilité = temps de disponibilité/temps total

Exemple : tau de disponibilité sur une année :
– 97% → 11 jours
– 98% → 7 jours
– 99% → 3 jours et 15 heures
– 99,9% → 8 heures et 48 minutes
– 99,99% → 53 minutes
– 99,999% → 5 minutes
– 99,9999% → 32 secondes
Équilibrage de charge sous Linux


LVS : Linux Virtual Server : est une solution avancée de
répartition de charge pour GNU/Linux.

LVS est implémenté au niveau du noyau

La mission du projet LVS est de construire un serveur de
haute performance pour Linux.
LVS


Clients : Ordinateurs qui demandent un service au LVS

Directeur : Une machine tournant avec un noyau Linux qui
se charge de distribuer les requête.
– Le directeur dispose d’une adresse IP virtuelle

Serveur(s) réel(s) : ce sont ces machines qui offrent le
service.
– Les serveurs réels disposent d’adresses IP réelles.
Équilibrage de charge sous Linux


Trois façon de réaliser l’équilibrage de charge sous Linux :
– Network Address Translation (LVS-NAT)
– IP Tunneling (LVS-TUN)
– Direct Routing (LVS-DR)
LVS-NAT


LVS-NAT
– Équilibrage de charge en utilisant la translation
d’adresse destination
– Exemple :
LVS-NAT
LVS-NAT


Avantages :
– Utilisation d’adresses Privées

Incinvénients :
– Nécessite beaucoup de traitement
LVS-TUN


LVS-TUN
– Équilibrage de charge en utilisant des tunnels

Protocole IP Tunneling
– Protocole de la couche réseau
– Encapsule un protocole quelconque dans son payload

Ex. IP.
LVS-TUN
LVS-TUN
LVS-TUN


Avantage
– Nécessite moins de traitement (que LVS-NAT)
– Les serveur physique peuvent être dans Internet

Inconvénient
– Les serveur physique doivent supporter le protocole IP
Tunneling
LVS-DR


LVS-DR : Équilibrage de charge par modification de la
table ARP
LVS-DR
LV-NAT vs LV-TUN vs LVS-DR

LVS-NAT LVS-Tun LVS-DR

OS serveur physique tous IP TUNNEL tous

Translation de port oui non non

Réseau serveur physique privé internet local

Nombre de serveurs réels faible élevé élevé

Gw des serveurs physique directeur gw propre gw propre


Algorithme d’équilibrage de charge


Round-Robin Scheduling (-s rr)

Weighted Round-Robin Scheduling (-s wrr)

Least-Connection Scheduling (-s lc)

Locality-Based Least-Connection Scheduling (-s lblc)

Shortest Expected Delay Scheduling (-s sed)

Never Queue Scheduling (-s nq)
ipvsadm

ipvsadm : outil pour gérer LVS dans Linux

Options
– -A → ajouter un service virtuel
– -D → supprimer un service virtuel
– -t → service TCP
– -u → service UDP
– -s → sélection de l’algorithme d’ordonnancement.
– -m → LVS-NAT
– -i → LVS-TUN
– -g → LVS-DR
ipvsadm


ipvsadm -A -t 207.175.44.110:80 -s rr

ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.1:80 -m

ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.2:80 -m

ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.3:80 -m

ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.4:80 -m

ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.5:80 -m
Équilibrage de charge niveau 7


Le directeur accède au contenu de la couche 7 (Ex. HTTP)

La décision d’ordonnancement est fonction du contenu de
la couche 7
Équilibrage de charge niveau 7
Équilibrage de charge niveau 7


Compte rendu de 10 page sur HAProxy
Haute disponibilité sous Linux


Heartbeat (Battements de cœur)

Battement de cœurs

Serveur
Serveur11 Serveur 2

@ physique @ physique

@ virtuelle flottante
heartbeat


Installation : sudo apt-get install heartbeat
heartbeat


Fichier de configuration : /etc/ha.cf

logfile /var/log/ha-log
keepalive 2
deadtime 10
bcast eth0
node nom_serveur1 nom_serveur2
auto_failback no
Références


http://www.austintek.com/LVS/LVS-HOWTO/mini-HOWTO/
LVS-mini-HOWTO-fr.html

http://www.linuxvirtualserver.org/docs/scheduling.html

https://en.wikipedia.org/wiki/IP_tunnel

Vous aimerez peut-être aussi