1 DEPLOIEMENT D’UN SYSTEME DE REPARTITION DE CHARCHE (LOAD BALANCING) Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
2 PLAN Qu’est-ce que le load balancing ? Problématique Fonctionnement de load balancing Démonstration Différentes solutions Eléments de mise en œuvre Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
©SENEVIE SA ©SENEVIE SA Qu’est-ce que le load balancing? Le load balancing (en français : la répartition de charge) est un ensemble de techniques permettant de distribuer une charge de travail entre différents ordinateurs d'un groupe. Ces techniques permettent à la fois de répondre à une charge trop importante d'un service en la répartissant sur plusieurs serveurs, et de réduire l'indisponibilité potentielle de ce service que pourrait provoquer la panne logicielle ou matérielle d'un unique serveur. Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
4 PROBLEMATIQUE DE LA REPARTITION DE CHARGE Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
5 Different types de repartition de charge 2 types de répartition de charges : la répartition parallèle (« actif / actif ») la répartition séquentielle (« actif / passif ») Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
6 Fonctionnement de repartition de charge (1/2) Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
7 Fonctionnement de repartition de charge (2/2) Roundrobin Roundrobin pondéré Least Connections Weighted Least Connections Hachage de destination Etc. Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux Algorithmes de repartition de charge
8 8 Avantage de la repartition de charge Temps d’accès plus court et ce même si beaucoup de demandes arrivent en même temps Garantit une meilleure sécurité contre les pannes Si un serveur n’est pas accessible, le site ou l’application web reste disponible Facilite la maintenance du système des serveurs Les configurations et les mise à jour peuvent être réalisées pendant le fonctionnement du serveur sans entrainer la perte de performance Etc. Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
9 LA REPLICATION DE LA BASE DE DONNEES Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
10 Qu’est-ce que la replication ? La réplication est la capacité à maintenir à jour une base de données distribuée sur plusieurs machines reliées en réseau, en recopiant à intervalles réguliers des morceaux ou l'intégralité de la base d'une machine à l'autre. REPLICATION différent SAUVEGARDE Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
Différent type de réplication 11 Réplication maître/esclave Réplication de systèmes de fichiers (périphérique bloc) Réplication asynchrone multi-maitres Réplication synchrone multi-maitres Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
Différentes solutions de répartition de charge (1/6) 12 LVS (Linux Virtual Server) Avantages : éffectue une répartition de charge flexible, au niveau de l'adresse IP; le filtrage de bas niveau employé par le routeur LVS a des avantages par rapport à la transmission de paquets au niveau de l'application Inconvénients : Les algorithmes utilisés pour connecter des liaisons WAN se trouvent encore peu efficace pour les réseaux étendus, Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
13 Différentes solutions de répartition de charge (2/6) Apache - mod_proxy_balancer : fait de l'équilibrage de charge pour les protocoles HTTP, FTP et AJP13 Avantages : Facilité de mise en œuvre, bien maintenu, portabilité (toute architecture supportant apache). Inconvénients : Protocoles HTTP, FTP et AJP13 uniquement. Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
14 Différentes solutions de répartition de charge (3/6) Pen est un load balancer pour les protocoles basés sur TCP Avantages : Tous les protocoles basés sur TCP (y compris HTTPS), possibilité d'utiliser VRRP, bien maintenu (dernière version : mai 2008), bonne portabilité Inconvénients : Un seul algorithme (round-robin + trace des connexions). Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
Différentes solutions de répartition de charge (4/6) 15 HAProxy permet de répartir les connexions reçues d'un protocole sur plusieurs serveurs. Il permet aussi de détecter l'indisponibilité d'un des serveurs Avantages : Peut tenir des charges très importantes comme plusieurs milliers de connexions par seconde, ressources matérielles nécessaires très faibles, aucune vulnérabilité depuis plus de 16 ans. Inconvénients : Pas d'interface Web de configuration Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
16 Différentes solutions de répartition de charge (5/6) Balance est une solution simple basée sur le niveau utilisateur de la couche OSI, il ne touche pas au Kernel. Il offre une solution d'équilibrage de charge mais aussi de proxy TCP Avantages : Gestion totale via ligne de commande possible, différents algorithmes de Load Balancing, mise en place rapide. Inconvénients : Basé sur niveau utilisateur, pas Open Source, version payante plus souvent mise à jour. Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
17 Différentes solutions de répartition de charge (6/6) Nginx KeepAlived UltraMonkey Mon Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
18 Différentes solutions de réplication de données(1/2) DRBD (Distributed Replicated Block Device) est un mécanisme de réplication de données localisées sur deux serveurs distincts par voie réseau Avantages : maintenance des serveurs sans coupure de services, indépendant du type de système de fichiers utilisé sur le serveur. Inconvénient : utilisable uniquement dans l’environnement Linux. Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
19 Différentes solutions de réplication de données(2/2) HEARBEAT MYSQL REPLICATION Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
20 Eléments de mise en œuvre Le réseau local bien câblé Les serveurs physiques identiques (au moins deux) en ressources disque, mémoire RAM, processeur, etc. Un serveur load balancer (Haproxy) disposant d’au moins de deux interfaces réseaux Un switch pour relier les serveurs en interne Le logiciel load balancer (HaProxy) Le logiciel MySQL Replication Le système d’exploitation Linux Une machine cliente pour faire des tests de fonctionnement Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
21 Architecture de mise en œuvre Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
22 Installation des services HAPROXY #aptitude update #aptitude install haproxy –t jessie-backports MYSQL #aptitude update && apt-get dist-upgrade #aptitude install mysql-server Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
23 Configuration des services Il faut éditer les fichiers suivants : /etc/hosts /etc/haproxy/haproxy.cfg Configuration avancée de /etc/haproxy/haproxy.cfg Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
24 Configuration des services (suite et fin) Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
25 DEMONSTRATION Abasse KPEGOUNI, Ingénieur Systèmes et Réseaux
LABALE! THANK YOU! AKPE! POUR VOTRE ATTENTION! MERCI!