Ce type d'infrastructures mises en place se nomme le CLUSTERING et les différentes entités d'un cluster seront appelées des noeuds (nodes).
Il existe 3 types de clusters que nous allons citer rapidement:
-"high performance cluster" (haute performance) qui consiste à mettre en commun les ressources de différents serveurs (CPU, mémoire RAM)
-"load-balancing" qui consiste à redistribuer la charge d'une application sur plusieurs serveurs (la même application est hebergée sur plusieurs serveurs) c'est le cas des services web par exemple (un site peut être hébergé sur plusieurs serveurs)
- "high-availability" (haute disponibilité) que nous allons étudier, consiste ici à garantir la disponibilité d'un service (si un noeud tombe, le service est déplacé automatiquement sur un autre noeud)
Nous n'avons pas un site de grosse envergure mais nous avons cependant besoin de nous assurer qu'il sera constamment online c'est pourquoi cette troisiéme solution nous convient parfaitement.
Heartbeat ou encore nommé projet LINUX-HA ((High-Availability Linux) est une solution opensource sous licence GPL trés performante et largement utilisée depuis 1999. C'est donc cette solution que nous allons utiliser.
Voici les types d'applications généralement hébergées par HeartBeat:
Le daemon Heartbeat va entre autre tester la disponibilité des serveurs, gérer le comportement du service sur le cluster. La premiere version ne supportait que 2 noeuds, la version 2 en supporte à présent 16.
Pour l'application en mode haute disponibilité, elle sera stockée sur un espace à part pour éviter qu'en cas de défaillance d'un noeud, les fichiers de configuration par exemple deviennent indisponibles à leur tour. Plusieurs solutions plus ou moins onéreuses existent (SAN, RSYNC,DRDB, iSCSI) .
Nous utiliserons iSCSI qui consiste à avoir une partition externe configurée en iSCSI (qui peut être aussi bien une partition, un disque ou un fichier).
Cette partition ne fait pas partie directement du cluster (on évitera effectivement de la placer sur l'un des serveurs, car si celui-ci est défaillant, la partition sera inacessible par la suite).
Dans un cluster en mode actif/passif, la partition ne pourra être montée qu'à un endroit à la fois , dans un mode actif/actif la partition sera montée sur les deux noeuds à la fois.
Pour permette cette prouesse (en effet il est très difficile dans ces cas-là de gérer les conflits d'écritures par exemple), nous utiliserons le système de fichiers OCFS2 créé par Oracle pour ce type d'infrastructure "cluster".
Nous aurons 2 serveurs heartbeat tournant sur SLES avec une application Apache qui fonctionnera en mode haute disponibilité. Pour cela le service Apache aura son IP dédiée.
Nous avons vu les concepts, passons maintenant à la pratique pour éclaircir tout ceci...