Je souhaite structurer un cluster de serveurs à haute disponibilité. Maintenant, je veux en savoir plus sur Keepalive et Heartbeat, quelle est la différence entre les deux et comment en choisir une.
la source
Je souhaite structurer un cluster de serveurs à haute disponibilité. Maintenant, je veux en savoir plus sur Keepalive et Heartbeat, quelle est la différence entre les deux et comment en choisir une.
Croyez que la question a été très précisément répondue par Willy Tarreau, l'auteur de HAProxy, dans http://www.formilux.org/archives/haproxy/1003/3259.html .
Citation du lien ci-dessus
Heartbeat n'est pas le meilleur outil pour obtenir une configuration haproxy redondante, il a été conçu pour créer des clusters, ce qui est très différent d'avoir deux équipements réseau sans état redondants. Les outils orientés réseau tels que keepalived ou ucarp sont les mieux adaptés à cette tâche
La différence entre ces deux familles est simple
- un produit orienté cluster tel que heartbeat garantira qu'une ressource partagée sera présente à au plus un endroit. Ceci est très important pour les systèmes de fichiers partagés, les disques, etc. Il est conçu pour supprimer un service sur un nœud et sur un autre lors d'un basculement. De cette façon, la ressource partagée ne sera jamais accessible simultanément. C'est une tâche très difficile à accomplir et elle le fait bien.
- un produit orienté réseau tel que keepalived garantira qu'une adresse IP partagée sera présente à au moins un endroit. Veuillez noter que je ne parle plus d'un service ou d'une ressource, il ne fait que jouer avec les adresses IP. Il n'essaiera pas de baisser ou d'augmenter un service, il considérera simplement un certain nombre de critères pour décider quel nœud est le plus apte à offrir le service. Mais le service doit déjà être opérationnel sur les deux nœuds. En tant que tel, il est très bien adapté aux routeurs, pare-feu et proxys redondants, mais pas du tout aux baies de disques ni aux systèmes de fichiers.
(Ouais je sais que c'est une vieille question, mais pour référence future)
Il n'y a pas de différenciation claire et cohérente. Ces mots sont parfois utilisés de manière plus ou moins interchangeable.
Il existe un démon de l'espace utilisateur commun pour les configurations à haute disponibilité appelé Keepalived , et le projet Linux HA avait un démon appelé Heartbeat, qui est maintenant devenu Pacemaker . (J'espère que vous n'avez pas demandé un aperçu complet de ces deux systèmes, et quelles sont toutes les différences, cela serait à mon humble avis hors sujet.)
Dans l'utilisation quotidienne des termes , je dirais que l'utilisation la plus courante est la suivante:
"Keepalive" se réfère plus généralement à un système qui maintient un service hautement disponible.
"Heartbeat" se réfère plus spécifiquement à un protocole de communication, auquel ou plusieurs membres d'une configuration à haute disponibilité envoient périodiquement "Oui, je suis toujours en vie!" messages. Leurs pairs prennent alors des mesures s'ils ne voient pas un message "Oui, je suis vivant" avant une heure définie (c'est-à-dire que l'autre hôte est tombé en panne). C'est un peu comme ressentir une impulsion, d'où le nom.
la source