Upload
felicien-perin
View
107
Download
2
Embed Size (px)
Citation preview
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