L'équilibrage de charge Utilisation, principe et solutions

Slides:



Advertisements
Présentations similaires
Bratec Martin ..
Advertisements

NOTIFICATION ÉLECTRONIQUE
Fragilité : une notion fragile ?
SEMINAIRE DU 10 AVRIL 2010 programmation du futur Hôtel de Ville
Phono-sémantique différentielle des monosyllabes italiens
MAGGIO 1967 BOLOGNA - CERVIA ANOMALIES DU SOMMEIL CHEZ L'HOMME
droit + pub = ? vincent gautrais professeur agrégé – avocat
Transcription de la présentation:

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