Mise en place de redondance et de load-balancing
Cluster sous Debian et load-balancing avec HAproxy
Par Guillaume Droulin
2021 - 2022
Compétences abordées dans ce document
• Gérer le patrimoine informatique ;
• Développer la présence en ligne de l’organisation ;
• Travailler en mode projet ;
• Mettre à disposition des utilisateurs un service informatique.
Table des matières
1. Introduction ... 3
a. Contexte ... 3
b. Etat de l’art ... 4
2. Gestion de projet ... 6
a. Ressources humaines ... 6
b. Ressources matérielles ... 6
c. Ressources financières ... 6
3. Architecture ... 7
a. Modélisation de l’architecture ... 7
b. Explication ... 8
4. Mission ... 9
a. Réalisation de la mission ... 9
5. Amélioration continue ... 14
a. Maintien en conditions opérationnelles ... 14
b. Axes d’amélioration possibles ... 14
6. Conclusion ... 15
a. Retour sur expérience ... 15
3
1. Introduction a. Contexte
La société Herboren, dont le siège est à Paris, est spécialisée dans la cosmétique de luxe depuis 1952. Grâce à ses 27 employés, elle a su imposer sa notoriété en termes de crème de jour en basant sa campagne publicitaire sur un argument, la renaissance. Aujourd’hui, forte de ses 70 ans d’expérience, elle propose 3 gammes de crème à travers toute l’Europe et à un public essentiellement féminin, ce qui fait de son marché, l’un des plus petits de l’univers du luxe à l’échelle mondiale, aussi, elle ne peut souffrir d’un manque de visibilité, que ce soit sur les réseaux sociaux, affiches publicitaires, ou sur Internet.
Techniquement, la société Herboren dépend de ses prestataires, que ce soit pour la conception des tubes de crème, l’acheminement vers les distributeurs, etc. Cette externalisation est également réalisée pour la partie informatique, ce qui permet à Herboren de se recentrer sur son cœur de métier. Bien que cette société fasse confiance à ses prestataires, à l’instar de beaucoup d’autres, elle n’en est pas moins dépendante, ce qui peut parfois engendrer des disfonctionnements dramatiques d’un point de vue financier. C’est d’ailleurs ce qu’il s’est passé avec son prestataire informatique.
Pour promouvoir son nom et sa marque, la société Herboren dispose d’un site Web hébergé dans ses locaux mais administré et maintenu par son prestataire Web, Altana, ce dernier n’a pas répondu aux obligations de moyens précisés dans le contrat qui le lie à Herboren, ce manquement a eu pour effet une perte temporaire des services Web et une perte définitive des données que contenait le serveur Web. Enfin, ce manquement a entrainé une perte financière de 5% du CA annuel de la société Herboren, ainsi, elle décide de mettre fin au contrat qui la lie à Altana pour faute grave.
6 mois plus tard, Herboren est remontée en selle et sort grandie de cette expérience.
Déterminée à augmenter son CA pour pallier les pertes des derniers mois, elle fait appel à vous pour proposer une solution qui, en cas de disfonctionnement de son Système d’Information, lui permettrait d’assurer une continuité de service vis-à-vis de ses clients.
4
b. Etat de l’art
Qu’est-ce que la « redondance » ?
Dans le domaine informatique, la redondance est utilisée pour qualifier la duplication de composants ou de données essentielles d'un système, avec pour objectif d'améliorer sa fiabilité. Il peut s'agir d'équipements, de données, de logiciels, d'éléments de liaisons, etc.
Grâce aux doublons, une entreprise peut garantir les fonctionnalités de son centre informatique dans l'éventualité où un composant présenterait un dysfonctionnement. Quand il s'agit de données, la duplication est réalisée à des fins de sauvegarde ou de restauration.
Etude des solutions :
La redondance du système informatique peut être effectuée à divers niveaux selon les besoins de l’entreprise. On doit dans un premier temps évaluer l'importance de la conservation des données ou de la duplication de matériel. Cela doit être fait en tenant compte de l'importance de l'élément informatique (sa criticité) et des préjudices que pourraient causer la perte ou le dysfonctionnement de celui-ci. Cette analyse préalable permet de choisir le système de redondance le plus adapté entre :
• La redondance des disques durs ;
• La redondance des serveurs ;
• La redondance multisite.
Pour effectuer la redondance d’un appareil, tout dépend donc du système adapté à celui-ci ainsi qu’au type de matériel. Par exemple, la méthode de redondance pour un routeur et un serveur web sera la même ; mais la mise en place sera différente (protocoles ou services différents pour chaque matériel spécifique)
Nous réalisons également des réplicas, La réplication de données, elle, répond à une problématique de perte de service. Lors d’une interruption de service (site web, serveur de messagerie, plateforme collaborative d’entreprise, etc.) il va être possible d’opérer un basculement des applicatifs touchés vers un autre serveur ou un autre site d’hébergement données, géographiquement éloigné du site primaire.
Logiciels de sauvegarde VEEAM ALTARO
Caractéristiques • Reconnu mondialement
• Modulaire
• Simple et adaptable
• Compatibilité
• Simple d’utilisation
• Moins onéreux Il faut savoir enfin que la notion de réplication de données est étroitement liée à celles de plan de reprise d’activité (PRA) et de plan de continuité d’activité (PCA).
5 Qu’est-ce que le « Load-balancing » ?
Le load balancing (répartition des charges en français) est une solution informatique adaptée aux petits budgets. La technique consiste à répartir les charges sur différents appareils d’un même réseau. Elle permet notamment aux serveurs de sites Internet à forte audience de ne pas se retrouver surchargés. Dans le load balancing, les multiples requêtes sont distribuées sur plusieurs serveurs. Il devient alors inutile d’investir dans un unique appareil extrêmement puissant. Il suffit de multiplier les dispositifs peu coûteux pour obtenir la même résistance à la charge.
Les avantages du load balancing sont principalement l’amélioration du temps de réponse. La technique permet également de toujours afficher les informations demandées par l’internaute, et ce, même en cas de panne de l’un des serveurs. Les données sont plus sécurisées étant donné que les fichiers se trouvent sur des appareils annexes, et que seul le load balancer est accessible depuis l’extérieur. Le principal inconvénient est clairement la complexité de mise en place. Enfin, l’inter connectabilité des appareils fait que les problèmes peuvent se transmettre de machine en machine. Le load balancing est une technique de répartition des charges complexe, particulièrement intéressante en termes de sécurité, de coût et d’amélioration du temps de réponse
Etude des solutions :
Le Load-Balancing bénéficie de 3 types d’équilibreur de charge ;
• Basé sur le matériel ;
Fournisseurs populaires Caractéristiques
F5 Onéreux mais fournit un contrôle total
TP-Link Onéreux mais fournit un contrôle total
Barracuda Onéreux mais fournit un contrôle total
• Basé sur le cloud ;
Fournisseurs populaires Caractéristiques
AWS Reconnu mondialement et utilisé par de
grande entreprises, abordable et complet
Google Cloud Reconnu mondialement et utilisé par de
grande entreprises, abordable et complet
Azure Reconnu mondialement et utilisé par de
grande entreprises, abordable et complet
• Basé sur le logiciel ;
Fournisseurs populaires Caractéristiques
Seesaw Utilisé par Google, système basé sur linux.
LoadMaster by KEMP Reconnu pour être utilisé chez de grandes entreprises, gratuit et offre de nombreuses fonctionnalités.
HAProxy Utilisé par des centaines d’entreprises
reconnues mondialement, version gratuite avec beaucoup de fonctionnalités
6
2. Gestion de projet
Dans ce projet, j’ai segmenté les étapes par « tâches » avec une planification. Du début à la fin du projet on aura donc un suivi complet avec la possibilité de modifier les dates limites en cas de retard ou de modification demandé par le client.
a. Ressources humaines
Pour la mise en place de la redondance du serveur web de l’entreprise DUBOULON, un seul technicien systèmes & réseaux se penchera sur la mise en place du dispositif. Il sera supervisé par son Administrateur Systèmes & Réseaux à distance en cas de besoin.
b. Ressources matérielles
Pour le déploiement de la solution, le technicien aura à sa disposition :
• 2x Serveurs Debian virtualisés
• ISO Debian Version 11.2.0
Il sera également équipé de son matériel personnel afin de pouvoir effectuer des recherches ou des tests depuis le réseau local.
c. Ressources financières
Le coût financier sera moindre, en effet Debian est une distribution Open Source ce qui permet d’éliminer l’achat de licence.
Nous allons ici installer nos serveurs web sur des hyperviseurs déjà présent dans la société ce qui permet également d’amoindrir le coût financier.
7
3. Architecture
a. Modélisation de l’architecture
Avant toute chose, il est important de mettre en place un schéma permettant de visualiser notre infrastructure :
Légende : le réseau local est en 192.168.0.0 255.255.255.0 ; le lien virtuel permettra la redondance. Le serveur déjà en place fournira un adressage IP grâce au DHCP depuis lequel nous pourrons effectuer une réservation.
Pour la mise en place de notre équilibreur de charge, nous allons devoir spécifier des adresses IP virtuelles sur chaque serveur :
SRV1 SRV2 Proxy (load-balancer)
Ens33 (dhcp) 192.168.50.40/24 192.168.50.41 / 24 192.168.50.43/24 Ens33:1 192.168.50.42 /24 192.168.50.42 /24
8
b. Explication
La mise en place du lien virtuel permet la redondance du site internet. En effet, si le serveur « maître » SRV1 cesse de fonctionner pour une raison quelconque, SRV2 qui est le serveur « esclave » prendra le relai automatiquement ce qui empêchera un arrêt de production.
La mise en place de load-balancing va permettre de répartir efficacement les charges sur les 2 serveurs. Ce dispositif permet une meilleure disponibilité des services et de se prémunir d’un flux important de visiteur. Voici un schéma permettant de visualiser le fonctionnement :
Lorsqu’un utilisateur effectue une recherche vers notre site web hébergé sur « Web01 » et « Web02 », il passe d’abord par le load-balancer (HAproxy par exemple) qui va ensuite rediriger le client vers l’un des deux serveurs.
9
4. Mission
a. Réalisation de la mission
Partie Redondance
Pour commencer, nous allons installer en premier lieu Corosync, Pacemaker & Crmsh sur nos deux serveurs Web Debian.
• Corosync est un système de communication de groupe avec des fonctionnalités pour la mise en œuvre de la Haute disponibilité
• Pacemaker sert à coordonner le démarrage et la reprise de services interdépendants dans un groupe de machines
• Crmsh est un shell de gestion de cluster
Avant l’installation de ces services, nous allons mettre à jour le fichier hosts des deux serveurs :
Nous pouvons ensuite installer nos services :
On va ensuite générer la clé d’authentification pour la communication de corosync entre les deux serveurs, sur SRV1 nous allons générer la clé :
Une fois la clé récupérée,
10
Nous pouvons maintenant nous rendre sur SRV2, se rendre dans le fichier corosync et créer le fichier « authkey » en insérant la clé dedans.
Et nous pouvons maintenant insérer notre clé d’authentification.
On va maintenant éditer la configuration de corosync.conf sur les 2 serveurs web
On va surtout éditer la partie « nodelist » et renommer le nom de notre cluster
Nous allons maintenant démarrer les services corosync et pacemaker :
Vérifier l’état du cluster :
11
On va maintenant configurer les interfaces virtuelles entre nos 2 serveurs :
Il est maintenant temps de tester notre redondance ! Pour faire simple, nos deux serveurs sont actuellement allumés, si je tape 192.168.0.50 dans mon navigateur je tombe sur SRV1
Simulons une panne de courant sur le SRV1 pour voir si notre serveur de secours prend le relais
Une fois le serveur éteint on rafraîchit la page de navigation (il peut y avoir 10 à 20 secondes le temps que SRV2 prenne le relais)
Et voilà ! Nous avons mis en place un serveur web avec de la redondance en cas de panne.
Actuellement le fichier du site web dans le serveur apache n’est pas configuré, nous avons mis
« Hello World 1 » et « Hello World 2 » afin de pouvoir vérifier le bon fonctionnement de la haute disponibilité mise en place. De plus, le client ne nous a pas encore fournit les fichiers html, css, etc... Le site sera mis en place une fois les fichiers reçus.
12
Partie Répartition de charge (load-balancng)
Nous allons créer un nouveau serveur sous Debian 11, il servira de front-end (il va recevoir les requêtes puis les distribuer aux serveurs en back-end). Imaginez que vous avez un site à forte affluence, et que vous n’avez qu’un seul serveur, celui-ci risque de flancher assez vite. Avec un load-balancer, celui-ci va récupérer tout le trafic et le dispatcher sur plusieurs serveurs web. De cette manière, la charge est moins lourde.
Rappel de l’adressage :
SRV1 SRV2 Proxy (load-balancer)
Ens33 (dhcp) 192.168.50.40 / 24 192.168.50.41 / 24 192.168.50.43 / 24 Ens33:1 192.168.50.42 / 24 192.168.50.42 / 24
Pour commencer, une fois que notre serveur a ses configurations de base (système à jour, adressage réseau fixe) il faut renseigner sur chaque serveur dans le fichier /etc/hosts les différents serveurs :
Ensuite, nous allons pouvoir installer sur le serveur load-balancer le paquet HAProxy
• HAProxy est une solution libre, fiable et très performante de répartition de charge de niveau 4 (TCP) et 7 (HTTP). Elle est particulièrement adaptée aux sites web fortement chargés. Il requiert peu de ressource et peu gérer plusieurs milliers de connexions simultanées.
On va ensuite se rendre dans le fichier de configuration
13
Une fois les modifications effectuées, il faut redémarrer les services de HAProxy : On vérifie ensuite son statut :
Pour tester notre solution, il existe des entreprises qui proposent des logiciels permettant d’analyser les équilibreurs de charge. On peut par exemple citer OpManager.
Désormais, lorsqu’un utilisateur souhaite accéder à notre site, il passera tout d’abord par notre serveur proxy load-balancer puis notre algorithme round-robin distribuera les requêtes vers les serveurs associés en équilibrant la charge sur les 2.
« L’algorithme round-robin est la méthode la plus simple pour équilibrer la charge des serveurs ou pour fournir une tolérance aux pannes simple. Plusieurs serveurs identiques sont configurés pour fournir précisément les mêmes services ou applications. Tous sont configurés pour utiliser le même nom de domaine Internet, mais chacun a une adresse IP unique. L'équilibreur de charge dispose d'une liste de toutes les adresses IP uniques associées au nom de domaine Internet.
Lorsque des demandes de sessions sur les serveurs associés au nom de domaine Internet sont reçues, elles sont attribuées de manière aléatoire ou séquentielle en rotation. Par exemple, la
14
première demande obtient l'adresse IP du serveur 1, la deuxième demande obtient l'adresse IP du serveur 2, et ainsi de suite, les demandes recommençant au serveur 1 lorsque tous les serveurs ont reçu une demande d'accès au cours d'un cycle. »
5. Amélioration continue
a. Maintien en conditions opérationnelles
Afin d’assurer la continuité de service du site web, il serait judicieux d’effectuer des vérifications périodiques des mises à jour pour les serveurs web ainsi que de vérifier que la journalisation des événements est fonctionnelle. La vérification des logs peut permettre au technicien ou à l’administrateur réseau de comprendre au mieux les disfonctionnements. Également, nos serveurs web étant virtualisé il sera nécessaire d’assurer l’entretien de celui-ci, mais également d’effectuer des clichés instantanés ainsi que des sauvegardes des VM sur un site externe.
b. Axes d’amélioration possibles
Nous ne l’avons pas abordé ici, mais la redondance et le load-balancing (équilibrage de charge) ne suffisent pas à assurer continuité de service dans certains cas. Il y a plusieurs axes à mettre en place en parallèle afin de s’assurer au maximum de ne pas se retrouver un jour au pied du mur :
• Mise en place de sauvegarde local et externalisé ;
• Déploiement d’un autre serveur web en externalisé (Cloud) ;
• Accentuer la redondance dans l’infrastructure réseau (en effet, nos serveurs fonctionnent mais si un autre équipement du réseau non-redondé ne fonctionne pas, la continuité de service ne pourra être assuré sauf si nous avons mis en place un serveur web externalisé) ;
• Assurer la redondance du matériel physique (plusieurs alimentations, onduleurs, etc…) ;
• Réaliser un tableau d’analyse d’impact permet de se prémunir des causes potentiellement dangereuses pour la continuité de service (tout ce qui peut y nuire).
15 Exemple d’analyse d’impact :
Indolores Limités Graves Dramatiques
Improbables • Panne d’un
des deux serveurs
• Perte de sauvegarde
• Ransomware
• Coupure du lien fibre
• Sauvegarde non
fonctionnelle
Occasionnels • Mise à jour
du système
• Câble défaillant
• Panne de courant
• Panne du FAI
• Erreur lors d’une sauvegarde
• Tentative d’intrusion
• Surchauffe du switch
Courants • Erreur
technique
Très courants • Erreur
humaine
6. Conclusion
a. Retour sur expérience
Le déploiement de ce genre de dispositif au cours de ma période de formation m’a permis de saisir avec plus de conviction les enjeux d’un système d’information. En effet, j’ai pu grâce à ce projet saisir les conséquences d’un arrêt de service au sein d’une société (pertes
financières, perte de clients, réputation de l’entreprise, etc..).
J’ai donc pu acquérir de nouvelles compétences me permettant de pallier ce genre de problème mais également les méthodes nécessaires afin de se préparer au mieux à ce genre d’incident.