|
||||||||
| Sécurité et réseaux | Découverte | Linux | Debian | Communauté | ||||
|
|
Redondance sous Linux : Heartbeat et Mon vendredi 29 mars 2002, par regit |
|
DANS LA MEME RUBRIQUE :
|
Le problème de la redondance matérielle et logicielle est une des problématiques les plus importantes pour tout outil de production. Le projet Linux High Availability a pour objectif de réaliser une solution de redondance système et de clustering sous Linux. Heartbeat est issu de ce projet et permet de gérer le partage de ressources.
Heartbeat prend en charge les défaillances en transférant des ressources (services, IP, disques) d’un maitre vers une machine esclave. FonctionnementLe scénario type est le suivant :
Si le maître revient, il reprend ou non les ressources (suivant la configuration choisie). Les ressources pouvant être partagées sont multiples, Heartbeat est en effet capable de lancer n’importe quel script de type Sysv V. Par conséquent, c’est l’ensemble des services d’une distribution standard qui peuvent être gérés sans difficulté. De plus des scripts spécifiques ont été développé, ils permettent de partager facilement des systèmes de fichiers (scsi partagé) et des adresses IP. C’est ce dernier point qui est traditionellement le plus utile puisque il est nécessaire à tout partage de services réseaux. Pour détecter une défaillance système, Heartbeat se base sur un système d’échanges de messages. Les supports de cette communication sont le réseau (en UDP, broadcast ou multicast) ou un cable série disposé entre deux machines. Les deux supports peuvent fonctionner simultanément ce qui permet d’éviter une fausse défaillance en cas de rupture d’un des liens. Chaque machine surveille l’état de l’autre et, en cas d’absence de signal pendant une certaine durée sur tous les supports physiques, la machine défaillante est déclarée morte et la machine vivante récupère les ressources. Redondance d’adressesLors du partage d’adresse IP, ce sont les adresses actives qui se déplacent. Il est toutefois utile de pouvoir accéder aux machines du cluster quel que soit l’état de celui-ci, notammet afin de pouvoir les administrer, il faut donc disposer d’une adresse IP fixe sur chaque machine. Heartbeat a donc recours à l’IP-aliasing pour faire migrer les IPs du cluster. Il utilise l’algorithme suivant pour déterminer automatiquement quelle doit être l’interface physique recevant la nouvelle IP : une IP est attribuée à l’interface possédant la route vers le réseau le plus proche de celui de l’IP à attribuer. Dans le cas où aucune route n’est trouvée, l’interface de la route par défaut est choisie. Interactions avec MonHeartbeat ne permet pas de surveiller la défaillance des services. Il est donc toujours possible d’utiliser Mon pour indiquer au système heartbeat qu’il y a défaillance. Pour arriver à ce résultat et déclencher avec Mon le basculement des resources, il suffit tout simplement d’appeler le script d’initialisation Heartbeat avec l’argument stop. Quand Heartbeat est arrété, l’esclave déclare la mort du maitre et donc reprend les ressources. Il faut donc utiliser Mon pour détecter les interruptions des services nécessitant une bascule. C’est ensuite Heartbeat qui s’occupe de basculer les ressources. Fonctionnalité manquante et problèmes communsPlusieurs choses manquent à Heartbeat. Tout d’abord, Heartbeat est limité à deux machines et la gestion d’une architecture du type, 2 serveurs et une machine de backup, n’est pas supportée. Enfin, dans le cas de deux machines distantes, le protocole UDP reste le seul moyen d’assurer les communications d’ Heartbeat. Malheureusement, il peut arriver qu’il y ait perte de paquets UDP. Dans ce cas là, au moins une des deux machines pense que l’autre ne répond plus. L’esclave prend alors les ressources qui sont donc possédées par les deux machines. La situation est tout simplement chaotique. L’utilisation d’ Heartbeat pour assurer la redondance de deux machines distantes est donc à déconseiller. Mise en place d’ HeartbeatLa configuration d’ Heartbeat repose sur trois fichiers. Le premier fichier ha.cf décrit la configuration physique du système. Le second haresources indique les ressources à partager, et enfin authkeys contient les clefs de cryptage utilisées pour commnuniquer entre les machines. Mon et HeartbeatIl est nécessaire de créer un fichier permettant de gérer les alertes envoyées par mon, heartbeat.alert. Il faut ensuite déclarer un appel à heartbeat.alert dans le fichier de configuration de mon, mon.cf. Ainsi pour surveiller, la défaillance d’un serveur http en interne et déclencher le passage des ressources : Cette combinaison permet donc de déclencher un switch des ressources dès que l’on détecte que le serveur apache ne répond plu (et ce en dehors de tout problème réseau) ConclusionLe duo Heartbeat, Mon est donc parfait pour assurer la redondance de deux machines proches physiquement avec surveillance des défaillance des services et des systèmes. |
|||
|
|
| Da Trucs for Linux | PLAN DU SITE | ADMIN |