L'équilibrage de charge Utilisation, principe et solutions.

27
L'équilibrage de charge Utilisation, principe et solutions

Transcript of L'équilibrage de charge Utilisation, principe et solutions.

Page 1: L'équilibrage de charge Utilisation, principe et solutions.

L'équilibrage de charge

Utilisation, principe et solutions

Page 2: 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

Page 3: L'équilibrage de charge Utilisation, principe et solutions.

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

Page 4: L'équilibrage de charge Utilisation, principe et solutions.

Objectifs

Adaptation à la charge (Scalability) Amélioration des temps de réponse Augmentation de la qualité de service Tolérance de panne

Page 5: L'équilibrage de charge Utilisation, principe et solutions.

Quelques solutions

Linux LVS Haproxy Microsoft NLB Varnish

Page 6: L'équilibrage de charge Utilisation, principe et solutions.

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

Page 7: L'équilibrage de charge Utilisation, principe et solutions.

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

Page 8: L'équilibrage de charge Utilisation, principe et solutions.

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

Page 9: L'équilibrage de charge Utilisation, principe et solutions.

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

Page 10: L'équilibrage de charge Utilisation, principe et solutions.

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

Page 11: L'équilibrage de charge Utilisation, principe et solutions.

Schéma de principe

Page 12: L'équilibrage de charge Utilisation, principe et solutions.

Les mode de fonctionnement

* Tunnel Virtuel avec la NAT Tunnel Virtuel avec le TUN Tunnel Virtuel avec le Direct Routing

Page 13: L'équilibrage de charge Utilisation, principe et solutions.

VS/NAT

Page 14: L'équilibrage de charge Utilisation, principe et solutions.

VS/NAT

Son principe de fonctionnement ne permet pas un grand nombre de serveurs (~10)

Simple à mettre en oeuvre

Page 15: L'équilibrage de charge Utilisation, principe et solutions.

VS/Tunneling

Page 16: L'équilibrage de charge Utilisation, principe et solutions.

VS/Tunneling

Permet un plus grand nombre de serveurs (~ 100) : charge élevée

Page 17: L'équilibrage de charge Utilisation, principe et solutions.

VS/Direct Routing

Page 18: L'équilibrage de charge Utilisation, principe et solutions.

VS/Direct Routing

Permet un plus grand nombre de serveurs (~ 100)

Page 19: L'équilibrage de charge Utilisation, principe et solutions.

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

Page 20: L'équilibrage de charge Utilisation, principe et solutions.

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

Page 21: L'équilibrage de charge Utilisation, principe et solutions.

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

Page 22: L'équilibrage de charge Utilisation, principe et solutions.

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.

Page 23: L'équilibrage de charge Utilisation, principe et solutions.

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,

Page 24: L'équilibrage de charge Utilisation, principe et solutions.

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/

Page 25: L'équilibrage de charge Utilisation, principe et solutions.

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, ...)

Page 26: L'équilibrage de charge Utilisation, principe et solutions.

Les solutions

UltraMonkey : LVS + heartbeat + ldirectord

Page 27: L'équilibrage de charge Utilisation, principe et solutions.

Mise en oeuvre

De nombreux tutoriel pour LVS/IPVS, Ultramonkey ou Haproxy sur howtoforge.com