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 :
Cricket & RRDtools, le couple idéal pour le monitoring
Cyrus, un système de mail évolué


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.

Fonctionnement

Le scénario type est le suivant :
- Défaillance du serveur
- L’esclave détecte l’absence du serveur
- Récupération des ressources par l’esclave

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’adresses

Lors 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 Mon

Heartbeat 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 communs

Plusieurs 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’ Heartbeat

La 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 Heartbeat

Il est nécessaire de créer un fichier permettant de gérer les alertes envoyées par mon, heartbeat.alert.


#!/bin/bash

HEARTBEAT="/etc/rc.d/init.d/heartbeat"
if [ "$9" = "-u" ]; then
       $HEARTBEAT start
else
       $HEARTBEAT stop
fi

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 :


hostgroup server localhost

watch server
       service http
               interval 10s
               monitor http.monitor
               period NORMAL: wd {Sun-Sat}
                       numalerts 1
                       alert heartbeat.alert
                       upalert heartbeat.alert

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)

Conclusion

Le 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.

Répondre à cet article

regit





Il y a 7 contribution(s) au forum.

Redondance sous Linux : Heartbeat et Mon
(1/4) 14 avril 2007, par biowan
Redondance sous Linux : Heartbeat et Mon
(2/4) 9 novembre 2006, par lhay
Suggestions sur la haute dispo de proxys mandrake
(3/4) 18 août 2004, par kalaghan
> Redondance sous Linux : Heartbeat et Mon
(4/4) 5 août 2004, par kamea




Redondance sous Linux : Heartbeat et Mon
14 avril 2007, par biowan   [retour au début des forums]

Salut ! J’ai fait un tour sur le site de linux-ha.org. Il me semble qu’il parle maintenant d’un cluster heartbeat à n-noeuds. Et je pense qu’il y a d’autres évolutions et améliorations également. Y-a-t il un article plus à jour à ce sujet ?

Merci d’avance.

[Répondre à ce message]

Redondance sous Linux : Heartbeat et Mon
9 novembre 2006, par lhay   [retour au début des forums]
heartbeat

bonjour

je cherche a connaitre lenom du script qui detecte la chute du maitre, afin de recuperer l’ip de ce maitre et agir en consequence en effet j’ai 2 maitres et 1 seul esclave qui doit réagir differemment en fonction du maitre tombé

[Répondre à ce message]

Suggestions sur la haute dispo de proxys mandrake
18 août 2004, par kalaghan   [retour au début des forums]

Bonjour, j’ai deux proxys en parallelle sous Mandrake, proxy1 (xxx.xxx.111.111) et proxy2 (xxx.xxx.112.112)

voila ce que je veux faire : afin de faire du load-balancing tres primaire, je vais faire deux pools dhcp qui distriburont soit l’une soit l’autre adresse du proxy/passerelle. ça, ça ne va pas me poser probleme.

Maintenant, je veux implémenter une technique de haute disponibilité. Par exemple, si proxy1 tombe, proxy2 le spoofe afin de recuperer son traffic, de telle sorte que la panne soit invisible pour les utilisateurs.

J’ai essayé d’utiliser Heartbeat, ce soft qui verifie que l’autre machine est vivante et la spoofe dans le cas ou celle ci ne repond plus (la machine survivante va donc avoir une ip de base et un alias) Ce qui est embetant c’est que dans ce cas, un des deux serveurs patiente gentiment en attendant que l’autre tombe, ce qui n’est pas ce que je cherche a realiser

Vous avez des idées à me proposer ? Même si elles ne sont pas finalisées, elles peuvent être développées et discutées..

Merci d’avance !!

Kalaghan

PS : j’ai essayé de faire en sorte que cchaque machine soit a la fois maitre et esclave, mais cette solution n’est pas apparemment viable. Lancer deux instances de heartbeat ne marche pas non plus, j’avais l’intention de doubler la liaison série pour respecter mon objectif.

[Répondre à ce message]

> Redondance sous Linux : Heartbeat et Mon
5 août 2004, par kamea   [retour au début des forums]

Moi j’aurai une question, j’ai entendu dire qu’il faut deux cartes réseaux par machine ainsi qu’un port série pour mettre en oeuvre heartbeat, ne possédant qu’un carte réseaux et les serveurs étant distant par conséquence la liaisaon série trop éloignée puis je utiliser uniquement une seule carte réseau pour mettre en oeuvre heartbeat ? Quel sont les risque dans ce cas ?

[Répondre à ce message]

Da Trucs for Linux | PLAN DU SITE | ADMIN