Vous êtes sur la page 1sur 48

EQUILIBRAGE DES CHARGES DANS UN RSEAU, MCANISMES DE REDONDANCE OU FAILOVER

Prsent par Bassirou SOW et El Hadji Malick GUEYE Sous la Direction de: Monsieur Ahmed YOUSSEF

Plan
2

1.

2.
3. 4.

5.
6. 7.

8.
9.

Introduction Dfinition Principes et objectifs de lEquilibrages des charges Utilisations dans les Tlcommunications Diffrents techniques dEquilibrage des charges La Rpartition des charges Mcanismes de redondance ou Fail-over Configuration Conclusion

Introduction
3

Ce sujet donne un aperu sur la technologie dquilibrage de charge et indique comment elle est utilise pour offrir des services sur le rseau au moyen des quipements du constructeur Cisco ou autres. Ce dispositif de rpartition de charge permet dune part damliorer la performance des applications en utilisant plusieurs serveurs et dautre part doffrir une solution daccs rapide et fiable aux services.

Dfinition
4

En anglais lquilibrage de charge est traduit comme suit : LOAD BALANCING (LB).Il est dfini comme un processus qui distribue le trafic du site entre plusieurs serveurs en utilisant un dispositif bas sur le rseau. Le processus dquilibrage de charge est totalement transparent pour l'utilisateur final. Il y a souvent des dizaines ou mme des centaines de serveurs oprant derrire une URL unique. Il existe plusieurs types de (LB) tels que: Network LB, Server LB, etc. Dans la figure ci-dessous, nous voyons la plus simple reprsentation dun Serveur LB.

Dfinition
5

Problmatiques, Contexte et Enjeux


6

Les ordinateurs composent le systme nerveux de lentreprise. Ils sont indispensables son bon fonctionnement 24 heures sur 24 car des clients, collaborateurs, commerciaux ont besoin en permanence de se connecter au systme dinformation. Habitus aux services que peut rendre le systme dinformation interne, les employs ont besoin dune bonne disponibilit de leur outil de travail. De mme, les clients utilisent rgulirement le portail commerce lectronique de lentreprise prsent sur la toile. . . Donc une panne peut causer une perte de productivit considrable et coter beaucoup dargent. Si le systme informatique est charg de contrler un accs aux btiments, de vrifier le bon fonctionne- ment de processus industriels ou tout autre tche critique, la haute disponibilit est ici indispensable pour des questions de scurit.

Problmatiques, Contexte et Enjeux


7

Principes et Objectifs
8

La rpartition de charge est une technique utilise pour distribuer un travail entre plusieurs serveurs. C'est une forme d'optimisation. Le principe de base consiste interposer entre les visiteurs dun site et le pool de ressources un dispositif (le rpartiteur) qui connat l'tat d'occupation de chaque ressource et qui est capable de diriger ces visiteurs vers la ressource la moins occupe, ou la plus facilement accessible. Les ressources peuvent ne pas avoir la mme capacit satisfaire les besoins du moment (en vitesse de traitement, en bande passante, etc.), ce qui influe sur le mode de calcul du rpartiteur.

Principes et Objectifs
9

Le concept est un serveur virtuel pour plusieurs serveurs rels. Le principe est simple, dune part lutilisateur devient client dun serveur virtuel en contactant ladresse IP virtuelle (VIP) correspondant un service. Dautre part, sur le Serveur Load Balancing, le serveur virtuel ayant ladresse VIP est charg de slectionner un serveur rel pour lui transmettre la requte des clients. Le serveur rel slectionn traite la requte et rpond aux clients. Les serveurs rels sont chacun dots dune adresse IP relle (RIP). Les serveurs rels offrant un service identique sont regroups dans des ensembles nomms fermes ou farm ou encore clusters. (Ne pas interprter les notions de rel et de virtuel dans le sens utilis chez VMWare ou Virtual Box)

Principes et Objectif
10

Ici un serveur peut parfaitement tre une machine virtuelle VMWare. Ici le serveur virtuel est une entit logique qui reprsente plusieurs serveurs rels pour un type de service. Le serveur virtuel est accd travers son adresse IP virtuelle (VIP). Les caractristiques de distribution du trac vers les serveurs rels de la ferme sont associes au serveur virtuel. Les clients nont connatre que le nom IP du service quils dsirent contacter, ce nom est traduit en une adresse VIP par le DNS. Le client ignore la nature et les adresses des serveurs rels.

Principes et Objectif
11

Objectif: L objectif principal de ce sujet repose sur la haute disponibilit du systme informatique, Dans ce monde ou le besoin en qualit et diversit de service est trs sollicit, une configuration haute disponibilit est fortement dpendante du besoin de lentreprise : de la distribution du travail entre plusieurs machines la duplication permanente des donnes dans des btiments gographiquement spars, la solution technologique, la mise en uvre et le cot sont diffrents.

Principes et Objectif
12

Utilisation dans les Tlcoms


13

L'quilibrage de charge peut tre utile dans les applications avec des liens de communication redondants. Par exemple, une entreprise peut avoir plusieurs connexions Internet en assurant l'accs au rseau si l'une des connexions choue. Nombreuses socits de tlcommunications ont de multiples voies travers leurs rseaux ou des rseaux externes. Ils utilisent l'quilibrage de charge sophistiqu pour transfrer le trafic d'un chemin l'autre pour viter la congestion du rseau sur n'importe quel lien particulier, et parfois minimiser le cot de transit travers les rseaux externes ou d'amliorer la fiabilit du rseau . Ceci est trs utile pour la surveillance des rseaux rapides lorsque le traitement complexe des donnes peut ne pas tre possible

Diffrents Techniques dquilibrage des charges


14

Il existe diverses faons dont l'quilibrage de charge peut tre atteint. Les facteurs dcisifs pour choisir un sur l'autre dpend de l'exigence, les fonctions disponibles, la complexit de la mise en uvre, et le cot. Par exemple, en utilisant un quipement d'quilibrage de charge matriel est trs coteux par rapport un logiciel de load balancing. Les mthodes dequilibrage de charge les plus connues sont au nombre de trois (3), cependant il existe pour chacun deux des avantages ainsi que des inconvnients : Base sur le DNS (round robin) Base sur le Matriel (hardware) Base sur le logiciel (software)

Diffrents Techniques dquilibrage des charges


15

DNS : Ceci est galement connu sous le nom round robin DNS. Vous pouvez injecter plusieurs enregistrements A pour le mme nom d'hte. Cela cre une distribution alatoire - les demandes de l'hte recevra la liste dans un ordre alatoire. Autrement dit, si nous prenons lexemple concret du service webservice.telecom-reseaux.net (fictif pour le coup), qui doit donc pointer vers deux adresses IP diffrentes (80.0.0.1 et 80.0.0.2 par exemple). Il suffit alors de crer deux champs A dans la configuration DNS et de les faire pointer vers chacune de ces adresses. A chaque rsolution DNS du nom webservice.telecom-reseaux.net, le serveur rpondra donc alternativement sur chacune des deux adresses IP mentionnes prcdemment.

Diffrents Techniques dquilibrage des charges


16

Avantages : Trs simples, peu coteux et facile mettre en


uvre .

Inconvnients : Le serveur DNS n'a pas toute la


connaissance de la disponibilit des serveurs et continuent de pointer vers un serveur indisponible. Il ne peut diffrencier par adresse IP, mais pas par le port du serveur. L'adresse IP peut galement tre mis en cache par les serveurs de noms d'autres et les demandes ne peuvent pas tre envoy au serveur d'quilibrage de charge DNS. Exemple : en modifiant le fichier de configuration du bind sous linux, vous faites entrer les enregistrements A suivants puis lquilibrage de charge prendra en compte ces adresses pour le mme domaine :

Diffrents Techniques dquilibrage des charges


17

Hardware : des quilibreurs de charge matriel peut acheminer paquets TCP / IP vers des serveurs diffrents dans un cluster. Ces types de rpartiteurs de charge se trouvent souvent fournir une topologie robuste avec haute disponibilit, mais vient pour un cot beaucoup plus lev. Pour avantages :le circuit utilise le niveau de la passerelle rseau pour acheminer le trafic. Inconvnients : Des cots plus levs par rapport aux versions de logiciels Il existe de nombreux fournisseurs commerciaux l'on vend des appareils pour effectuer l'quilibrage de charge :

Cisco Ace Application Control Engine Module


Barracuda Load Balancer JetNexus Accelerating Load Balancer Extreme Kemp Loadmaster 2000

Et beaucoup dautres.

Diffrents Techniques dquilibrage des charges


18

SOFTWARE : La plupart des quilibreurs de charge couramment utiliss sont de base logiciel, et vient souvent comme un composant intgr du serveur web coteux et des packages d'applications de logiciels de serveurs. Pour avantages: Moins cher que le matriel des quilibreurs de charge. Plus configurable en fonction des besoins. Puis il incorporer le routage intelligent bas sur les paramtres d'entre multiples. Inconvnients : Ncessit de fournir du matriel supplmentaire pour isoler l'quilibreur de charge.

Le Clustering (grappes de serveurs)


19

On parle de grappe de serveurs ou de ferme dordinateurs (computer clustering en anglais) pour dsigner des techniques consistant regrouper plusieurs ordinateurs indpendants (appels nuds, node en anglais), afin de fonctionner comme un seul et mme systme.

La Rpartition des charges


20

Ce sont des clusters employs gnralement dans le monde des services Internet et du commerce lectronique. Ils permettent de rpartir la charge de travail entre les diffrentes machines. Cette charge peut tre celle engendre par lexcution dune application ou par un important trafic rseau. Un tel systme est souvent mis en place lorsquun nombre important dutilisateurs demande le mme type de service au systme. Une requte peut alors tre distribue au nud du cluster le moins occup un moment donn.

La Rpartition des charges


21

Certains systmes permettent mme de raffecter dynamiquement, un autre nud, une demande en cours de traitement. Souvent, les serveurs dapplications rseaux doivent faire face de nombreuses connections simultanes. Ceci les empche de rpondre assez rapidement pour offrir le service attendu par lutilisateur, le client. Le trafic est alors drout vers un nud proposant un service quivalent, dans le cluster. Lensemble est souvent gr par un ordinateur ddi ou par un programme particulier prsent sur toutes les machines ; cette gestion est configurable par ladministrateur. La plupart des solutions fonctionnent sur un cluster compos de machines prsentes sur un rseau local mais certaines solutions, moins performantes, peuvent emprunter des liaisons distantes.

Mcanismes de Redondance ou Fail-over


22

Le basculement (en anglais, fail-over qui se traduit par passer outre la panne) est la capacit d'un quipement basculer automatiquement vers un chemin rseau alternatif ou en veille. Cette capacit existe pour tout type d'quipements rseau: du serveur au routeur en passant par les pare-feu et les commutateurs rseau (switch). Le basculement intervient gnralement sans action humaine et mme bien souvent sans aucun message d'alerte. Le basculement est conu pour tre totalement transparent.

Mcanismes de Redondance ou Fail-over


23

PPP (Point-to-Point Protocol) : Protocole de communication entre deux quipements utilisant une ligne srie. Cest le protocole utilis, par exemple, entre un utilisateur et son fournisseur daccs Internet. Dans un contexte de machines redondantes, il peut tre utile pour mettre en place un mcanisme de surveillance mutuelle sur un support RS-232. Watchdog : Chien de garde logiciel ou matriel du systme qui donne lalerte si on ne le caresse pas assez souvent ! Typiquement, une panne matrielle ou logicielle empche de rarmer un compteur qui, arriv chance, dclenche une action de secours. RAID (Redundant Array of Independent Disks) : Moyen de stocker des donnes diffrents endroits sur plusieurs disques durs. Lensemble apparat au systme sous la forme dun seul priphrique de stockage. Selon la configuration (RAID-1, RAID-5), la vitesse de lecture, la tolrance aux pannes, la correction derreurs peut tre amliore.

Mcanismes de Redondance ou Fail-over


24

SCSI (Small Computer System Interface) : Standard dcrivant une interface parallle permettant aux ordinateurs de communiquer avec leurs priphriques (de stockage notamment). Heartbeat : Application permettant un ordinateur de prendre le pouls (heartbeat) dautres machines. Si lune dentre elles ne rpond pas un message envoy, elle est considre comme dfaillante ; une mesure de secours est alors prise. Fake : Commutateur de serveurs redondants, Fake permet, un systme de secours, de prendre ladresse IP dune machine tombe en panne dans le rseau local. NFS (Network File System) : Application client / serveur permettant daccder au priphrique de stockage dun ordinateur distant. Le systme de fichiers ainsi mont sur sa machine est vu comme nimporte quel disque local.

Mcanismes de Redondance ou Fail-over


25

Mcanismes de Redondance ou Fail-over


26

La mise en place de plusieurs occurrences dun composant critique du systme permet de supprimer les pannes fatales. On emploie souvent le terme de redondance lorsque les applications critiques et le matriel qui les excute sont instancis plusieurs fois et prennent le relais les uns des autres (on parle en anglais de Fail-over services : FOS). Le cluster se rsume alors une ou plusieurs paires de machines, principales et de secours. A laide dun systme de communication, chaque ordinateur surveille son ou ses jumeaux par lintermdiaire dun canal ddi. Il peut se prsenter sous la forme dun lien srie (avec ou sans protocole PPP ), dun lien Ethernet ou simplement dune liaison spcialise (watchdog ).

Mcanismes de Redondance ou Fail-over


27

Cette surveillance rapproche est la garantie de vie dune machine paire (pouls ou heartbeat). Si un noeud du cluster est amen tomber, son second prend le relais dans la seconde (ou mme plus rapidement), il sapproprie son identit et se charge dapporter le service demand par lutilisateur, sans laisser transparatre la faiblesse passagre du serveur matre. Il sagit ici de minimiser le temps de commutation. Lordinateur ayant subit la panne est rinitialis ou rpar pour reprendre, au plus vite, la surveillance attentive dun jumeau en service.

Mcanismes de Redondance ou Fail-over


28

On peut donc aisment comprendre que le temps de redmarrage dun serveur doit tre assez court et quune procdure de rcupration des donnes doit tre excute. Dans une redondance efficace, le partage des donnes stockes sur disque (sil y en a) est un point considrer attentivement lors du dveloppement de larchitecture matrielle. Deux solutions permettent de maintenir lunicit (intgrit) des donnes tout en permettant de les prserver si un incident survient : Partage du priphrique de stockage (RAID , bus SCSI partag pour une solution moindre cot) Mise en reflet (mirroring) des disques, cest dire copie de leur contenu intervalles rguliers.

Mcanismes de Redondance ou Fail-over


29

Mcanismes de Redondance ou Fail-over


30

Lexemple concret reprsente une paire de serveurs de mail (utilisant par exemple Sendmail) redondants. Le client sadresse en temps normal la machine principale. Si cette dernire tombe en panne, son pouls (heartbeat) cesse et la machine de secours sen aperoit. En effet, le processus Heartbeat de la machine de sauvegarde interroge, travers la liaison srie, son processus pair. Ne rpondant pas, ladresse de la machine principale est attribue par Heartbeat la machine de secours via le processus Fake , elle peut ainsi prendre le relais. Les donnes sont partages sur un disque NFS 12 mont alternativement par lune puis lautre des machines.

Configurations
31

Algorithmes pour lEquilibrage des charges

SLB fournit deux algorithmes d'quilibrage de charge: Weighted Round Robin et weighted least connection. On peut spcifier soit l'algorithme de base pour le choix d'un vrai serveur pour chaque nouvelle demande de connexion qui arrive au niveau du serveur virtuel. Weighted Round Robin

Le Weighted Round Robin spcifie que le serveur rel utilis pour une nouvelle connexion au serveur virtuel est choisi parmi le cluster de serveurs dans un mouvement circulaire. Chaque serveur rel se voit attribuer un poids, n, Qui reprsente la capacit de grer des connexions, par rapport aux autres serveurs rels associs au serveur virtuel. Autrement dit, les nouvelles connexions sont affects un serveur rel donn n , le temps avant le prochain serveur rel dans la batterie de serveurs soit choisi.
Par exemple , supposons une batterie de serveurs comprenant un ServeurA , serveur rel avec n= 3, ServerB n= 1, et avec ServeurC n= 2. Les 3 premires connexions au serveur virtuel sont affects ServeurA, la 4e connexion ServerB, et les 5e connexions et 6e ServerC.

32

Weighted Least Connections Cet algorithme spcifie que le prochain serveur d'application choisi partir d'une batterie de serveurs pour une nouvelle connexion au serveur virtuel est le serveur le plus petit nombre de connexions actives. Chaque serveur rel se voit attribuer un poids pour cet algorithme aussi. Lorsque le poids est attribu, le serveur avec le plus petit nombre de connexions est base sur le nombre de connexions actives sur chaque serveur, et sur la capacit relative de chaque serveur. La capacit d'un serveur donn relle est calcule comme le poids attribu de ce serveur divis par la somme des poids affects de tous les serveurs rels associs ce serveur virtuel, ou n1/ (n1+n2+n3...). Par exemple , supposons une batterie de serveurs comprend ServeurA serveur rel avec n= 3, ServerB n= 1, et le ServeurC n= 2. ServeurA aurait une capacit calcule de 3 / (3 + 1 + 2), ou la moiti de toutes les connexions actives sur le serveur virtuel, le ServeurB, 1/6 de toutes les connexions actives, et ServeurC, 1/3 de toutes les connexions actives. A tout moment, la prochaine connexion au serveur virtuel serait attribu au serveur rel, dont le nombre de connexions actives est au dessous de sa capacit calcule.

Configurations
33

Les diffrents paramtres et commandes:


Specifier un Serveur Farm ou cluster (obligatoire) router(config)# ip slb serverfarm nom_du_server_farm Specifier un algorithme de Load-Balancing (facultatif) router(config-slb-sfarm)# predictor [roundrobin | leastconns ] Specifier un Bind ID (facultatif) router(config-slb-sfarm)# bindid [bind-id] Specifier un Serveur rel (obligatoire) router(config-slb-sfarm)# real ip_serveur_rel Configurer les attributs du Serveur rel (facultatif) router(config-slb-real)# faildetect numconns nbre_de_connexions_echoues router(config-slb-real)# maxconns nbre_maxi_de_connexions router(config-slb-real)# reassign nbre_de_connexions_sans_reponse router(config-slb-real)# retry IT_attente_avant_une_tentative_en_second Activer les services de Serveur rel (obligatoire) router(config-slb-real)#inservice (activation du serveur)

Configurations
34

Specifier un Serveur virtuel (obligatoire) router(config)#ip slb vserver ip_serveur_virtuel Associer un Serveur virtuel avec un Serveur Farm (obligatoire) router(config-slb-vserver)#serverfarm nom_du_serverfarm Configurer les services du serveur virtuel (obligatoire) router(config-slb-vserver)#virtual adresse_ip [tpc | udp] num_port [service] Adjuster les valeurs du serveur virtuel (falcultatif) router(config-slb-vserver)#client ip_address masque_rx router(config-slb-vserver)#delay dure_maintient_aprs_connexions router(config-slb-vserver)#idle dure_maintient router(config-slb-vserver)#sticky dure group [group-id] router(config-slb-sfarm)#synguard

35

Activer les Services de Serveur Virtuel (obligatoire) router(config-slb-vserver)#inservice Configurer IOS SLB Dynamic Feedback Protocol (facultatif) router(config-slb-dfp)#ip slb dfp [ mot_de_passe | delai ] router(config-slb-dfp)#agent ip_add port [delai] Configurer NAT (facultatif) router(config)#ip slb serverfarm nom_serverfarm router(config-slb-sfarm)#nat server router(config-slb-sfarm)#real ip_addresse Verifier le Load Balancing router#show ip slb conns router#show ip slb reals router#show ip slb vserver router#show ip slb stats

Tests de Configuration
36

37

Test de connectivit entre le serveur rel 1 et client:

38

Test de connectivit entre le serveur rel 2 et client:

39

Configuration des interfaces du routeur SLB:

40

config des serveurs rels et virtuels avec les diffrents attributs et options:

41

Aprs la config, cest les tests des entits logiques avant le load Balancing, commenant par le test du cluster et de la bonne implmentation de lalgorithme:

42

Testons nos serveurs rels pour voir si ils ont bien t mise en uvre ainsi que nos serveurs virtuels:

43

Comme notre exemple slb est repartir les connexion par protocoles http, testons-le avant le load balancing pour voir:

On voit que il y a pas encore de requtes http.

44

Maintenant on va faire une seule tentative de connexion http partir du PC du client sur ladresse du serveur virtuel pour voir comment le routeur slb gre la rparation.

45

Suivant lalgorithme de round-robin et du poids le plus faible, le routeur balancera la 1ere connexion sur le serveur avec le plus faible poids mais tout en tenant compte du nombre de connexion alloues ce serveur rel.

46

Maintenant testons le vrai Load Balancing en envoyant plusieurs requtes http la mme seconde sur l adresse du serveur virtuel, et voyons comment le routeur repartit la charge entre les 2 serveurs rels tout en tenant compte de lalgorithme, du poid et des nbres de connexions de chaque serveur.

47

Et voila nous voyons donc que notre load balancing marche parfaitement car je viens denvoyer 8 requtes conscutifs HTTP sur le serveur virtuel qui est ici le routeur, qui a repartit ces requetes entre les serveurs rel en: Utilisant Round-Robin Commenant par balancer les requtes sur le plus petit poids (ici 192.168.0.1) Respectant le nombre de connexions pour chaque serveurs (avec 8 connexions, Serveur1 aura les 5 premires connexions et Serveur2 les 3 autres connexions qui suivront)

Conclusion
48

Que fait un SLB ? Il intercepte le trafic destin un service. Il divise le trafic en plusieurs requtes individuelles et dcide quel serveur (rel) traitera ces requtes (distribution). Il surveille les serveurs disponibles, sassurant quils rpondent au trafic. Dans la ngative, il carte ces serveurs (inaptes au service) de la distribution. Il offre de la redondance ou le fail-over (et il est lui-mme redondant). Il offre une distribution dpendante du contenu. En lisant -par exemple- le contenu des URL, des cookies. Il collecte des informations sur son propre usage.