Vous êtes sur la page 1sur 27

L'équilibrage de charge

Utilisation, principe et solutions


Introduction
 L'équilibrage ou répartition de charge prend une
importance particulière avec la montée en
puissance des application web
Principes
 En anglais Load-Balancing
 Répartition des connexions à une machine vers
un ensemble de machines
 Mis en oeuvre grâce à un boîtier d'équilibrage
de charge
Objectifs
 Adaptation à la charge (Scalability)
 Amélioration des temps de réponse
 Augmentation de la qualité de service
 Tolérance de panne
Quelques solutions
 Linux LVS
 Haproxy
 Microsoft NLB
 Varnish
Premier cas de figure : DNS round
robin
 Tourniquet DNS: à un nom DNS on associe
plusieurs adresses (multiples enreg. A)
 Simple à mettre en oeuvre
 Peu de contrôle
Microsoft NLB
 Network Load Balancing
 Intégré à Windows serveur 2000/2003
 Pas plus de 32 serveurs
 Répartition de charge calculée uniquement sur
la charge réseau
 Serveurs situés dans le même sous-réseau
Microsoft NLB - suite
 Utilise une adresse MAC virtuelle pour
l'ensemble des membre du cluster
 Mode unicast
 Chaque carte du cluster dispose de la même
adresse MAC et IP : impossible de communiquer
sans ajout de carte supplémentaire
 ou Mode multicast
 Chaque carte du cluster dispose de 2 adresses
MAC => pb avec de nombreux routeurs et switch
Linux LVS/IPVS
 Linux Virtual Server
 Dans le noyau Linux depuis 2001
 Solution éprouvée utilisée par Wikipedia,
Clubic, ...
 Dispose d'un application d'équilibrage de
charge de niveau 7 (KTCPVS)
 Solution généraliste pas limitée au seul http
Linux LVS/IPVS -2
 supporte de nombreux algorithmes de
répartition

round-robin, weighted round-robin, least-connection
scheduling, weighted least-connection, locality-
based least-connection, locality-based least-
connection with replication, destination hashing,
source hashing, shortest expected delay, never
queue.
 Synchronisation des information d'état
Schéma de principe
Les mode de fonctionnement

* Tunnel Virtuel avec la NAT


 Tunnel Virtuel avec le TUN
 Tunnel Virtuel avec le Direct Routing
VS/NAT
VS/NAT
Son principe de fonctionnement ne permet pas
un grand nombre de serveurs (~10)
 Simple à mettre en oeuvre
VS/Tunneling
VS/Tunneling
Permet un plus grand nombre de serveurs (~ 100)
: charge élevée
VS/Direct Routing
VS/Direct Routing
Permet un plus grand nombre de serveurs (~ 100)
Les modes de répartition de charge
 Round-Robin : répartition uniforme
 Round-Robin pondéré
 Machine la moins chargée
 Machine la moins chargée avec pondération
Le paquetage ipvsadm

Permet de mettre en place un serveur LVS


exemple : répartition Web en Round-Robin
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
HAProxy
 Dispositif d'équilibrage de charge pour TCP et
les applications HTTP
 Solution stable et éprouvée
 S'adapte automatiquement à l'état des serveurs
 Fonctionne au niveau 4 ou 7
 Gère les informations de session http
 Ne gère pas HTTPS
 Gère plusieurs dizaines de milliers de
connexion
HAProxy – 2
 Quelques fonctionnalités :
 Répartition sur la base d’un cookie existant, ou bien
insertion de son propre cookie pour gérer l’affinité de
serveur.

HAProxy peut tester la disponibilité des serveurs, soit
en établissant une connexion TCP, soit en adressant
une requête HTTP. En mode HTTP, la vérification peut
porter sur une URI particulière, qui teste tous les
composants requis au bon fonctionnement.
HAProxy - 3
 mode de répartition : round-robin (permutation
circulaire), avec possibilité de permutation et de
limitation du nombre de connexions par
serveur.
 reconfiguration possible à chaud.
 statistiques temps-réel.
 HAProxy est généralement mis en œuvre
couplé à heartbeat,
VARNSIH
 Varnish est un accélérateur web/proxy inverse
 Il est assez largement utilisé sur les sites
dynamiques sur lequels il permet d'améliorer
très sensiblement les temps de réponse (x 4 ou
x5)
 Il permet d'effectuer de la répartition de charge
(au niveau 7 applicatif)
 http://varnish-cache.org/
La haute disponibilité
Le redirecteur LVS constitue un SPOF (Single
Point Of Failure ou ressource critique ) et par
là un risque de panne. On le double souvent par
une deuxième machine reliée avec un heartbeat

D'autre part, il est possible d'utiliser des logiciels
(ldirectord, LVSM, keepalived, ...) qui vont
tester le fonctionnement des serveurs et
permettre de s'adapter dynamiquement à leur
fonctionnement (ajout, suppression d'une
machine, ...)
Les solutions
 UltraMonkey : LVS + heartbeat + ldirectord
Mise en oeuvre
 De nombreux tutoriel pour LVS/IPVS,
Ultramonkey ou Haproxy sur howtoforge.com

Vous aimerez peut-être aussi