Comment créer un Cluster Apache Actif/Passif

Bonjour à tous,

Aujourd’hui nous allons parler de clustering de nos serveurs WEB Apache.

Il y a plusieurs configurations d’un cluster Apache : Actif/Passif, Actif/Actif, avec répartition de charge ou non etc.

I – Principes

Le clustering apporte un avantage évident, c’est d’éviter de perdre l’accès à des ressources, que ce soit des machines, des services ou des données.

Pour les machines, il y a les systèmes de virtualisation (VMware, Hyper-V…), pour les ressources, nous avons des solutions physiques comme la redondance de disques, ou logiques comme DFS.

II – Cluster Actif / Passif

Nous allons voir comment mettre en place un cluster basé sur notre service Apache, cette méthode est valable pour d’autres services bien sûr.

Notre cluster se base sur le package Heartbeat, ce package présente l’avantage d’être simple à configurer et mettre en œuvre et ne nécessite pas de serveur supplémentaire, seuls 2 serveurs sont suffisants pour réaliser ce cluster :

Dans le schéma ci-dessus, l’IP virtuelle est porté par chaque serveur à travers le package Hertabeat,

L’installation de Heartbeat est très simple, tout comme la configuration. Un simple apt-get install Heartbeat et le tour est joué.

Lors de l’installation du package Heartbeat, aucun des fichiers de config n’est fait. Il faut tout faire à la main.

Il y a 3 fichier à remplir/créés

Authkyes  : contient le mot de passe et le chiffrement qui seront utilisés par le cluster

ha.cf : Le plus important, toute la configuration de heartbeat

Haresources : contient l’ensemble des ressources liées au cluster

Le fichier principal, ha.cf, comprends l’ensemble des points de configuration du package :

Logfile /var/log/cluster.log : emplacement du fichier de log

Logfacility : Permet de définir le niveau de log

Keepalive : Définit la périodicité du contrôle entre les nœuds (en secondes)

Deadtime : Temps au bout de combien de secondes un hôte est considéré comme « mort »

Bcast : Définition de l’interface qui doit être utilisée pour les paquets de broadcast du package heartbeat

Auto_failback : définit le re-basculement automatique ou non.

Node : définition de l’ensemble des nœuds du cluster

Un point important, c’est la relation entre Keepalive et Deadtime, il y a un rapport de grandeur à conserver entre ces 2 mesures. En effet, il faut obligatoirement que la valeur de Deadtime soit plus grande que la valeur du keepalive, sans quoi votre heartbeat ne démarre tout simplement pas.
Un exemple réalisé pendant la formation Apache d’Alphorm :

Le fichier authkeys est tout aussi important, il permet de définir le mot de passe, la clé qui permettra d’authentifier les nœuds du cluster. Il est important que les droits sur ce fichier soient à 600 :

Auth : définit le type de sécurité utilisée (1, 2 ou 3)

[1, 2 ou 3] type mot de passe : cette ligne c’est celle qui définit le type de sécurité utilisée ainsi que le mot de passe.

Le dernier fichier de configuration est celui qui concerne vraiment la partie cluster avec l’IP virtuelle.

Nom_cluster IP : Une seule ligne pour configurer l’ensemble des informations de notre cluster.

Ces 2 fichiers doivent être identiques sur les 2 machines, il faut donc copier ces fichiers sur le second serveur.
Un moyen d’avoir un état du service, c’est de passer la commande, « sudo service heartbeat status« 

Afin de maîtriser l’installation, la configuration et l’administration d’Apache je vous propose ma formation Apache : Le Guide Complet de l’administrateur, j’y traite aussi le Clustering Apache.

Merci

Laisser un commentaire

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