Haute disponibilité: Architecture commune

Facebooktwittergoogle_plusredditpinterestlinkedinmail

L’architecture de test est constituée de 5 serveurs :

  • Un répartiteur de charge, qui sera l’élément variable de chaque configuration.
  • Deux serveurs web qui forment une première grappe (que nous nommerons cluster1, composée de apache-w1 et apache-w2)
  • Deux serveurs web qui forment une seconde grappe (que nous nommerons cluster2, composée de apache-w3 et apache-w4)

La seconde grappe est optionnelle et vous servira d’exercice puisqu’elle ne sera pas décrite. Elle vise à démontrer la capacité du répartiteur à gérer autant de grappes que nécessaire et l’effet que cela procure sur son interface de gestion.

Répartiteur de charge

Pour les besoins du test en conditions de laboratoire, j’ai opté pour cinq machines virtuelles gérées avec KVM et virt-manager. Vu le peu de charge générée par les tests, j’ai attribué à chaque machine un seul processeur, 512 Mo de mémoire et 5 Go de disque (Peut-être ai-je été un peu large sur le disque).

Leur interface réseau est montée sur un pont avec l’hôte afin qu’elles bénéficient du serveur DHCP de mon réseau et puissent communiquer aussi bien entre elles qu’avec l’extérieur (et réciproquement).

On peut aussi n’utiliser qu’une seule machine, et faire tourner différentes instances d’un serveur web sur des ports différents. Mais en conditions réelles d’utilisation, cela ne ferait aucun sens.

Installation des machines

Sur chaque machine virtuelle j’installe Ubuntu Server 13.04 64 bits. Je la nomme selon son usage (ex: apache-w1) et laisse toutes les options par défaut, si ce n’est que je pré-installe OpenSSH.

Au premier démarrage, j’y installe ma clé RSA (la flemme de devoir tapper mon mot de passe à chaque connexion), je mets à jour la liste des paquets avec apt-get update, puis les paquets eux-mêmes avec apt-get upgrade. Je redémarre ensuite la machine si le noyau a été mis à jour.

N’ayant pas l’intention d’installer de serveur DNS pour l’exemple, j’ai réservé des baux DHCP pour chaque machine de mon infrastructure et ai ajouté dans leur fichier /etc/hosts les lignes suivantes :

Ici j’ai appelé mon répartiteur apache-lb car il s’agit du fichier hosts du test Apache mod_proxy_balance.

Note: Vous pouvez sauter cette étape si vous décidez de n’utiliser que des adresses IP dans tous les fichiers de configuration.

Sur les quatre machines qui serviront de serveurs web (apache-w1 à apache-w4), j’installe Apache2 avec apt-get install apache2. Le choix d’Apache est complètement arbitraire, libre à vous d’utiliser votre serveur web préféré. Les instructions qui suivent sont relatives à Apache.

Prenons pour exemple la machine apache-w1. Je crée un dossier /var/www/c1/ (car elle est membre de la grappe cluster1) dans lequel je copie la page d’accueil par défaut (/var/www/index.html). Je la modifie en remplaçant le magnifique “It works!” par le nom de la machine afin de savoir sur laquelle le répartiteur aura redirigé mes requêtes. Je vérifie avec mon navigateur que chaque machine affiche bien son nom lorsque j’appelle la page (http://192.168.1.204/c1).

Retours vers Haute disponibilité.

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *