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
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.
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
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
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)
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.
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 :
Et beaucoup dautres.
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.
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.
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.
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.
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.
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.
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.
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 ).
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.
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.
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
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
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
38
39
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:
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.